From f71c2688e1a839f8429f7e94ec5e56bb182d82cf Mon Sep 17 00:00:00 2001 From: Dimitry Date: Tue, 1 Aug 2017 09:11:00 +0300 Subject: regenerate hive tests --- .../stAttackTest/ContractCreationSpam.json | 60053 ++++++++++++++++++- .../stCallCodes/call_OOG_additionalGasCosts1.json | 128 +- .../stCallCodes/call_OOG_additionalGasCosts2.json | 118 +- GeneralStateTests/stCallCodes/callcall_00.json | 131 +- .../stCallCodes/callcall_00_OOGE.json | 134 +- .../callcall_00_OOGE_valueTransfer.json | 198 +- .../stCallCodes/callcall_00_SuicideEnd.json | 125 +- .../stCallCodes/callcallcall_000.json | 136 +- .../stCallCodes/callcallcall_000_OOGE.json | 150 +- .../stCallCodes/callcallcall_000_OOGMAfter.json | 186 +- .../stCallCodes/callcallcall_000_OOGMBefore.json | 150 +- .../stCallCodes/callcallcall_000_SuicideEnd.json | 133 +- .../callcallcall_000_SuicideMiddle.json | 136 +- .../stCallCodes/callcallcall_ABCB_RECURSIVE.json | 168 +- .../stCallCodes/callcallcallcode_001.json | 137 +- .../stCallCodes/callcallcallcode_001_OOGE.json | 153 +- .../callcallcallcode_001_OOGMAfter.json | 186 +- .../callcallcallcode_001_OOGMBefore.json | 150 +- .../callcallcallcode_001_SuicideEnd.json | 133 +- .../callcallcallcode_001_SuicideMiddle.json | 137 +- .../callcallcallcode_ABCB_RECURSIVE.json | 168 +- GeneralStateTests/stCallCodes/callcallcode_01.json | 129 +- .../stCallCodes/callcallcode_01_OOGE.json | 134 +- .../stCallCodes/callcallcode_01_SuicideEnd.json | 125 +- .../stCallCodes/callcallcodecall_010.json | 142 +- .../stCallCodes/callcallcodecall_010_OOGE.json | 153 +- .../callcallcodecall_010_OOGMAfter.json | 192 +- .../callcallcodecall_010_OOGMBefore.json | 153 +- .../callcallcodecall_010_SuicideEnd.json | 137 +- .../callcallcodecall_010_SuicideMiddle.json | 143 +- .../callcallcodecall_ABCB_RECURSIVE.json | 168 +- .../stCallCodes/callcallcodecallcode_011.json | 138 +- .../stCallCodes/callcallcodecallcode_011_OOGE.json | 151 +- .../callcallcodecallcode_011_OOGMAfter.json | 186 +- .../callcallcodecallcode_011_OOGMBefore.json | 150 +- .../callcallcodecallcode_011_SuicideEnd.json | 132 +- .../callcallcodecallcode_011_SuicideMiddle.json | 146 +- .../callcallcodecallcode_ABCB_RECURSIVE.json | 168 +- .../stCallCodes/callcodeDynamicCode.json | 141 +- .../stCallCodes/callcodeDynamicCode2SelfCall.json | 107 +- .../stCallCodes/callcodeEmptycontract.json | 103 +- .../callcodeInInitcodeToEmptyContract.json | 104 +- ...InitcodeToExisContractWithVTransferNEMoney.json | 113 +- .../callcodeInInitcodeToExistingContract.json | 122 +- ...nitcodeToExistingContractWithValueTransfer.json | 113 +- .../stCallCodes/callcode_checkPC.json | 116 +- GeneralStateTests/stCallCodes/callcodecall_10.json | 134 +- .../stCallCodes/callcodecall_10_OOGE.json | 135 +- .../stCallCodes/callcodecall_10_SuicideEnd.json | 129 +- .../stCallCodes/callcodecallcall_100.json | 147 +- .../stCallCodes/callcodecallcall_100_OOGE.json | 151 +- .../callcodecallcall_100_OOGMAfter.json | 188 +- .../callcodecallcall_100_OOGMBefore.json | 156 +- .../callcodecallcall_100_SuicideEnd.json | 143 +- .../callcodecallcall_100_SuicideMiddle.json | 137 +- .../callcodecallcall_ABCB_RECURSIVE.json | 168 +- .../stCallCodes/callcodecallcallcode_101.json | 143 +- .../stCallCodes/callcodecallcallcode_101_OOGE.json | 151 +- .../callcodecallcallcode_101_OOGMAfter.json | 192 +- .../callcodecallcallcode_101_OOGMBefore.json | 153 +- .../callcodecallcallcode_101_SuicideEnd.json | 136 +- .../callcodecallcallcode_101_SuicideMiddle.json | 145 +- .../callcodecallcallcode_ABCB_RECURSIVE.json | 168 +- .../stCallCodes/callcodecallcode_11.json | 130 +- .../stCallCodes/callcodecallcode_11_OOGE.json | 140 +- .../callcodecallcode_11_SuicideEnd.json | 129 +- .../stCallCodes/callcodecallcodecall_110.json | 143 +- .../stCallCodes/callcodecallcodecall_110_OOGE.json | 152 +- .../callcodecallcodecall_110_OOGMAfter.json | 192 +- .../callcodecallcodecall_110_OOGMBefore.json | 154 +- .../callcodecallcodecall_110_SuicideEnd.json | 133 +- .../callcodecallcodecall_110_SuicideMiddle.json | 144 +- .../callcodecallcodecall_ABCB_RECURSIVE.json | 168 +- .../stCallCodes/callcodecallcodecallcode_111.json | 139 +- .../callcodecallcodecallcode_111_OOGE.json | 151 +- .../callcodecallcodecallcode_111_OOGMAfter.json | 192 +- .../callcodecallcodecallcode_111_OOGMBefore.json | 152 +- .../callcodecallcodecallcode_111_SuicideEnd.json | 135 +- ...callcodecallcodecallcode_111_SuicideMiddle.json | 147 +- .../callcodecallcodecallcode_ABCB_RECURSIVE.json | 168 +- .../Call1024BalanceTooLow.json | 123 +- .../stCallCreateCallCodeTest/Call1024OOG.json | 126 +- .../stCallCreateCallCodeTest/Call1024PreCalls.json | 127 +- .../stCallCreateCallCodeTest/CallLoseGasOOG.json | 109 +- .../CallRecursiveBombPreCall.json | 116 +- .../Callcode1024BalanceTooLow.json | 121 +- .../stCallCreateCallCodeTest/Callcode1024OOG.json | 126 +- .../CallcodeLoseGasOOG.json | 124 +- .../stCallCreateCallCodeTest/callOutput1.json | 116 +- .../stCallCreateCallCodeTest/callOutput2.json | 116 +- .../stCallCreateCallCodeTest/callOutput3.json | 116 +- .../stCallCreateCallCodeTest/callOutput3Fail.json | 116 +- .../callOutput3partial.json | 116 +- .../callOutput3partialFail.json | 116 +- .../callWithHighValue.json | 113 +- .../callWithHighValueAndGasOOG.json | 113 +- .../callWithHighValueAndOOGatTxLevel.json | 130 +- .../callWithHighValueOOGinCall.json | 138 +- .../stCallCreateCallCodeTest/callcodeOutput1.json | 116 +- .../stCallCreateCallCodeTest/callcodeOutput2.json | 116 +- .../stCallCreateCallCodeTest/callcodeOutput3.json | 116 +- .../callcodeOutput3Fail.json | 116 +- .../callcodeOutput3partial.json | 116 +- .../callcodeOutput3partialFail.json | 116 +- .../callcodeWithHighValue.json | 113 +- .../callcodeWithHighValueAndGasOOG.json | 113 +- .../createFailBalanceTooLow.json | 116 +- .../createInitFailBadJumpDestination.json | 106 +- .../createInitFailStackSizeLargerThan1024.json | 106 +- .../createInitFailStackUnderflow.json | 106 +- .../createInitFailUndefinedInstruction.json | 106 +- .../createInitFail_OOGduringInit.json | 116 +- .../createInitOOGforCREATE.json | 106 +- .../createJS_ExampleContract.json | 140 +- .../createJS_NoCollision.json | 121 +- .../createNameRegistratorPerTxs.json | 145 +- .../createNameRegistratorPerTxsNotEnoughGas.json | 144 +- ...createNameRegistratorPreStore1NotEnoughGas.json | 109 +- .../createNameRegistratorendowmentTooHigh.json | 107 +- .../callcallcallcode_001.json | 210 +- .../callcallcallcode_001_OOGE.json | 188 +- .../callcallcallcode_001_OOGMAfter.json | 210 +- .../callcallcallcode_001_OOGMBefore.json | 192 +- .../callcallcallcode_001_SuicideEnd.json | 183 +- .../callcallcallcode_001_SuicideMiddle.json | 192 +- .../callcallcallcode_ABCB_RECURSIVE.json | 194 +- .../callcallcode_01.json | 176 +- .../callcallcode_01_OOGE.json | 158 +- .../callcallcode_01_SuicideEnd.json | 169 +- .../callcallcodecall_010.json | 200 +- .../callcallcodecall_010_OOGE.json | 188 +- .../callcallcodecall_010_OOGMAfter.json | 226 +- .../callcallcodecall_010_OOGMBefore.json | 194 +- .../callcallcodecall_010_SuicideEnd.json | 173 +- .../callcallcodecall_010_SuicideMiddle.json | 177 +- .../callcallcodecall_ABCB_RECURSIVE.json | 194 +- .../callcallcodecallcode_011.json | 178 +- .../callcallcodecallcode_011_OOGE.json | 192 +- .../callcallcodecallcode_011_OOGMAfter.json | 194 +- .../callcallcodecallcode_011_OOGMBefore.json | 196 +- .../callcallcodecallcode_011_SuicideEnd.json | 183 +- .../callcallcodecallcode_011_SuicideMiddle.json | 158 +- .../callcallcodecallcode_ABCB_RECURSIVE.json | 194 +- .../callcodecall_10.json | 164 +- .../callcodecall_10_OOGE.json | 170 +- .../callcodecall_10_SuicideEnd.json | 153 +- .../callcodecallcall_100.json | 186 +- .../callcodecallcall_100_OOGE.json | 194 +- .../callcodecallcall_100_OOGMAfter.json | 198 +- .../callcodecallcall_100_OOGMBefore.json | 196 +- .../callcodecallcall_100_SuicideEnd.json | 187 +- .../callcodecallcall_100_SuicideMiddle.json | 171 +- .../callcodecallcall_ABCB_RECURSIVE.json | 209 +- .../callcodecallcallcode_101.json | 206 +- .../callcodecallcallcode_101_OOGE.json | 194 +- .../callcodecallcallcode_101_OOGMAfter.json | 241 +- .../callcodecallcallcode_101_OOGMBefore.json | 192 +- .../callcodecallcallcode_101_SuicideEnd.json | 185 +- .../callcodecallcallcode_101_SuicideMiddle.json | 183 +- .../callcodecallcallcode_ABCB_RECURSIVE.json | 209 +- .../callcodecallcode_11.json | 194 +- .../callcodecallcode_11_OOGE.json | 170 +- .../callcodecallcode_11_SuicideEnd.json | 155 +- .../callcodecallcodecall_110.json | 190 +- .../callcodecallcodecall_110_OOGE.json | 194 +- .../callcodecallcodecall_110_OOGMAfter.json | 238 +- .../callcodecallcodecall_110_OOGMBefore.json | 194 +- .../callcodecallcodecall_110_SuicideEnd.json | 171 +- .../callcodecallcodecall_110_SuicideMiddle.json | 173 +- .../callcodecallcodecall_ABCB_RECURSIVE.json | 209 +- .../callcodecallcodecallcode_111.json | 176 +- .../callcodecallcodecallcode_111_OOGE.json | 194 +- .../callcodecallcodecallcode_111_OOGMAfter.json | 198 +- .../callcodecallcodecallcode_111_OOGMBefore.json | 194 +- .../callcodecallcodecallcode_111_SuicideEnd.json | 179 +- ...callcodecallcodecallcode_111_SuicideMiddle.json | 174 +- .../callcodecallcodecallcode_ABCB_RECURSIVE.json | 209 +- .../callcallcallcode_001.json | 202 +- .../callcallcallcode_001_OOGE.json | 192 +- .../callcallcallcode_001_OOGMAfter.json | 202 +- .../callcallcallcode_001_OOGMBefore.json | 196 +- .../callcallcallcode_001_SuicideEnd.json | 183 +- .../callcallcallcode_001_SuicideMiddle.json | 184 +- .../callcallcallcode_ABCB_RECURSIVE.json | 194 +- .../callcallcode_01.json | 170 +- .../callcallcode_01_OOGE.json | 160 +- .../callcallcode_01_SuicideEnd.json | 167 +- .../callcallcodecall_010.json | 192 +- .../callcallcodecall_010_OOGE.json | 192 +- .../callcallcodecall_010_OOGMAfter.json | 198 +- .../callcallcodecall_010_OOGMBefore.json | 196 +- .../callcallcodecall_010_SuicideEnd.json | 173 +- .../callcallcodecall_010_SuicideMiddle.json | 175 +- .../callcallcodecall_ABCB_RECURSIVE.json | 194 +- .../callcallcodecallcode_011.json | 176 +- .../callcallcodecallcode_011_OOGE.json | 192 +- .../callcallcodecallcode_011_OOGMAfter.json | 198 +- .../callcallcodecallcode_011_OOGMBefore.json | 196 +- .../callcallcodecallcode_011_SuicideEnd.json | 181 +- .../callcallcodecallcode_011_SuicideMiddle.json | 158 +- .../callcallcodecallcode_ABCB_RECURSIVE.json | 194 +- .../callcodecall_10.json | 160 +- .../callcodecall_10_OOGE.json | 168 +- .../callcodecall_10_SuicideEnd.json | 153 +- .../callcodecallcall_100.json | 180 +- .../callcodecallcall_100_OOGE.json | 194 +- .../callcodecallcall_100_OOGMAfter.json | 198 +- .../callcodecallcall_100_OOGMBefore.json | 196 +- .../callcodecallcall_100_SuicideEnd.json | 185 +- .../callcodecallcall_100_SuicideMiddle.json | 173 +- .../callcodecallcall_ABCB_RECURSIVE.json | 209 +- .../callcodecallcallcode_101.json | 198 +- .../callcodecallcallcode_101_OOGE.json | 194 +- .../callcodecallcallcode_101_OOGMAfter.json | 198 +- .../callcodecallcallcode_101_OOGMBefore.json | 196 +- .../callcodecallcallcode_101_SuicideEnd.json | 189 +- .../callcodecallcallcode_101_SuicideMiddle.json | 173 +- .../callcodecallcallcode_ABCB_RECURSIVE.json | 209 +- .../callcodecallcode_11.json | 190 +- .../callcodecallcode_11_OOGE.json | 170 +- .../callcodecallcode_11_SuicideEnd.json | 155 +- .../callcodecallcodecall_110.json | 186 +- .../callcodecallcodecall_110_OOGE.json | 196 +- .../callcodecallcodecall_110_OOGMAfter.json | 198 +- .../callcodecallcodecall_110_OOGMBefore.json | 196 +- .../callcodecallcodecall_110_SuicideEnd.json | 171 +- .../callcodecallcodecall_110_SuicideMiddle.json | 173 +- .../callcodecallcodecall_ABCB_RECURSIVE.json | 209 +- .../callcodecallcodecallcode_111.json | 176 +- .../callcodecallcodecallcode_111_OOGE.json | 196 +- .../callcodecallcodecallcode_111_OOGMAfter.json | 198 +- .../callcodecallcodecallcode_111_OOGMBefore.json | 194 +- .../callcodecallcodecallcode_111_SuicideEnd.json | 166 +- ...callcodecallcodecallcode_111_SuicideMiddle.json | 174 +- .../callcodecallcodecallcode_ABCB_RECURSIVE.json | 209 +- .../stChangedEIP150/Call1024BalanceTooLow.json | 124 +- .../stChangedEIP150/Call1024PreCalls.json | 128 +- .../stChangedEIP150/Callcode1024BalanceTooLow.json | 122 +- .../stChangedEIP150/callcall_00_OOGE_1.json | 138 +- .../stChangedEIP150/callcall_00_OOGE_2.json | 138 +- .../callcall_00_OOGE_valueTransfer.json | 144 +- .../callcallcall_000_OOGMAfter.json | 186 +- .../callcallcallcode_001_OOGMAfter_1.json | 210 +- .../callcallcallcode_001_OOGMAfter_2.json | 202 +- .../callcallcallcode_001_OOGMAfter_3.json | 186 +- .../callcallcodecall_010_OOGMAfter_1.json | 192 +- .../callcallcodecall_010_OOGMAfter_2.json | 198 +- .../callcallcodecall_010_OOGMAfter_3.json | 192 +- .../callcallcodecallcode_011_OOGMAfter_1.json | 198 +- .../callcallcodecallcode_011_OOGMAfter_2.json | 188 +- .../callcodecallcall_100_OOGMAfter_1.json | 198 +- .../callcodecallcall_100_OOGMAfter_2.json | 198 +- .../callcodecallcall_100_OOGMAfter_3.json | 184 +- .../callcodecallcallcode_101_OOGMAfter_1.json | 182 +- .../callcodecallcallcode_101_OOGMAfter_2.json | 202 +- .../callcodecallcallcode_101_OOGMAfter_3.json | 198 +- .../callcodecallcodecall_110_OOGMAfter_1.json | 200 +- .../callcodecallcodecall_110_OOGMAfter_2.json | 198 +- .../callcodecallcodecall_110_OOGMAfter_3.json | 192 +- .../callcodecallcodecallcode_111_OOGMAfter.json | 164 +- .../callcodecallcodecallcode_111_OOGMAfter_1.json | 198 +- .../callcodecallcodecallcode_111_OOGMAfter_2.json | 198 +- .../callcodecallcodecallcode_111_OOGMAfter_3.json | 198 +- ...eCallThatAskMoreGasThenTransactionProvided.json | 241 +- .../createInitFail_OOGduringInit.json | 132 +- .../stCodeSizeLimit/codesizeOOGInvalidSize.json | 106 +- .../stCodeSizeLimit/codesizeValid.json | 107 +- .../CREATE_AcreateB_BSuicide_BStore.json | 126 +- .../CREATE_ContractSuicideDuringInit.json | 126 +- ...tractSuicideDuringInit_ThenStoreThenReturn.json | 146 +- ...CREATE_ContractSuicideDuringInit_WithValue.json | 126 +- ...ontractSuicideDuringInit_WithValueToItself.json | 208 +- .../CREATE_EContractCreateEContractInInit_Tr.json | 140 +- ...EATE_EContractCreateNEContractInInitOOG_Tr.json | 206 +- .../CREATE_EContractCreateNEContractInInit_Tr.json | 149 +- .../CREATE_EContract_ThenCALLToNonExistentAcc.json | 162 +- .../stCreateTest/CREATE_EmptyContract.json | 134 +- .../CREATE_EmptyContractAndCallIt_0wei.json | 153 +- .../CREATE_EmptyContractAndCallIt_1wei.json | 156 +- .../CREATE_EmptyContractWithBalance.json | 110 +- .../CREATE_EmptyContractWithStorage.json | 170 +- ...ATE_EmptyContractWithStorageAndCallIt_0wei.json | 176 +- ...ATE_EmptyContractWithStorageAndCallIt_1wei.json | 158 +- ...REATE_empty000CreateinInitCode_Transaction.json | 153 +- .../Call1024BalanceTooLow.json | 133 +- .../stDelegatecallTestHomestead/Call1024OOG.json | 138 +- .../Call1024PreCalls.json | 139 +- .../CallLoseGasOOG.json | 120 +- .../CallRecursiveBombPreCall.json | 142 +- .../CallcodeLoseGasOOG.json | 124 +- .../Delegatecall1024.json | 131 +- .../Delegatecall1024OOG.json | 138 +- .../stDelegatecallTestHomestead/callOutput1.json | 184 +- .../stDelegatecallTestHomestead/callOutput2.json | 186 +- .../stDelegatecallTestHomestead/callOutput3.json | 184 +- .../callOutput3Fail.json | 184 +- .../callOutput3partial.json | 184 +- .../callOutput3partialFail.json | 184 +- .../callWithHighValueAndGasOOG.json | 126 +- .../callcodeOutput1.json | 124 +- .../callcodeOutput2.json | 124 +- .../callcodeOutput3.json | 124 +- .../callcodeOutput3Fail.json | 124 +- .../callcodeOutput3partial.json | 124 +- .../callcodeOutput3partialFail.json | 124 +- .../callcodeWithHighValueAndGasOOG.json | 126 +- .../deleagateCallAfterValueTransfer.json | 144 +- .../delegatecallAndOOGatTxLevel.json | 132 +- .../delegatecallBasic.json | 126 +- .../delegatecallEmptycontract.json | 118 +- .../delegatecallInInitcodeToEmptyContract.json | 117 +- .../delegatecallInInitcodeToExistingContract.json | 136 +- ...elegatecallInInitcodeToExistingContractOOG.json | 123 +- .../delegatecallOOGinCall.json | 144 +- .../delegatecallSenderCheck.json | 128 +- .../delegatecallValueCheck.json | 128 +- .../delegatecodeDynamicCode.json | 170 +- .../delegatecodeDynamicCode2SelfCall.json | 118 +- ...ndCallcodeConsumeMoreGasThenTransactionHas.json | 134 +- .../CallAskMoreGasOnDepth2ThenTransactionHas.json | 148 +- .../stEIP150Specific/CallGoesOOGOnSecondLevel.json | 150 +- .../CallGoesOOGOnSecondLevel2.json | 150 +- .../stEIP150Specific/CreateAndGasInsideCreate.json | 134 +- .../stEIP150Specific/DelegateCallOnEIP.json | 132 +- ...xecuteCallThatAskForeGasThenTrabsactionHas.json | 128 +- .../stEIP150Specific/NewGasPriceForCodes.json | 190 +- .../SuicideToExistingContract.json | 134 +- .../SuicideToNotExistingContract.json | 149 +- .../stEIP150Specific/Transaction64Rule_d64e0.json | 140 +- .../stEIP150Specific/Transaction64Rule_d64m1.json | 140 +- .../stEIP150Specific/Transaction64Rule_d64p1.json | 140 +- .../stEIP150singleCodeGasPrices/RawBalanceGas.json | 122 +- .../RawCallCodeGas.json | 158 +- .../RawCallCodeGasAsk.json | 140 +- .../RawCallCodeGasMemory.json | 140 +- .../RawCallCodeGasMemoryAsk.json | 140 +- .../RawCallCodeGasValueTransfer.json | 140 +- .../RawCallCodeGasValueTransferAsk.json | 140 +- .../RawCallCodeGasValueTransferMemory.json | 140 +- .../RawCallCodeGasValueTransferMemoryAsk.json | 140 +- .../stEIP150singleCodeGasPrices/RawCallGas.json | 140 +- .../stEIP150singleCodeGasPrices/RawCallGasAsk.json | 140 +- .../RawCallGasValueTransfer.json | 140 +- .../RawCallGasValueTransferAsk.json | 140 +- .../RawCallGasValueTransferMemory.json | 140 +- .../RawCallGasValueTransferMemoryAsk.json | 140 +- .../RawCallMemoryGas.json | 140 +- .../RawCallMemoryGasAsk.json | 140 +- .../RawCreateFailGasValueTransfer.json | 128 +- .../RawCreateFailGasValueTransfer2.json | 128 +- .../stEIP150singleCodeGasPrices/RawCreateGas.json | 128 +- .../RawCreateGasMemory.json | 128 +- .../RawCreateGasValueTransfer.json | 128 +- .../RawCreateGasValueTransferMemory.json | 128 +- .../RawDelegateCallGas.json | 158 +- .../RawDelegateCallGasAsk.json | 140 +- .../RawDelegateCallGasMemory.json | 158 +- .../RawDelegateCallGasMemoryAsk.json | 140 +- .../RawExtCodeCopyGas.json | 128 +- .../RawExtCodeCopyMemoryGas.json | 128 +- .../RawExtCodeSizeGas.json | 128 +- .../stEIP158Specific/CALL_OneVCallSuicide.json | 138 +- .../stEIP158Specific/CALL_ZeroVCallSuicide.json | 138 +- GeneralStateTests/stEIP158Specific/EXP_Empty.json | 170 +- .../stEIP158Specific/EXTCODESIZE_toEpmty.json | 142 +- .../EXTCODESIZE_toNonExistent.json | 128 +- .../stEIP158Specific/vitalikTransactionTest.json | 241 +- GeneralStateTests/stExample/add11.json | 121 +- .../contractCreationOOGdontLeaveEmptyContract.json | 106 +- ...ionOOGdontLeaveEmptyContractViaTransaction.json | 133 +- .../createContractViaContract.json | 107 +- .../createContractViaContractOOGInitCode.json | 106 +- .../createContractViaTransactionCost53000.json | 109 +- .../CallContractToCreateContractAndCallItOOG.json | 166 +- .../CallContractToCreateContractNoCash.json | 110 +- .../CallContractToCreateContractOOG.json | 110 +- .../CallContractToCreateContractOOGBonusGas.json | 166 +- ...teContractWhichWouldCreateContractIfCalled.json | 175 +- ...ContractWhichWouldCreateContractInInitCode.json | 166 +- .../stInitCodeTest/CallRecursiveContract.json | 162 +- .../CallTheContractToCreateEmptyContract.json | 159 +- .../NotEnoughCashContractCreation.json | 96 +- .../stInitCodeTest/OutOfGasContractCreation.json | 104 +- .../OutOfGasPrefundedContractCreation.json | 118 +- GeneralStateTests/stInitCodeTest/ReturnTest.json | 116 +- GeneralStateTests/stInitCodeTest/ReturnTest2.json | 117 +- .../StackUnderFlowContractCreation.json | 100 +- .../TransactionCreateAutoSuicideContract.json | 106 +- .../TransactionCreateRandomInitCode.json | 100 +- .../TransactionCreateStopInInitcode.json | 113 +- .../TransactionCreateSuicideInInitcode.json | 99 +- GeneralStateTests/stLogTests/log0_emptyMem.json | 116 +- .../stLogTests/log0_logMemStartTooHigh.json | 115 +- .../stLogTests/log0_logMemsizeTooHigh.json | 115 +- .../stLogTests/log0_logMemsizeZero.json | 116 +- GeneralStateTests/stLogTests/log0_nonEmptyMem.json | 116 +- .../stLogTests/log0_nonEmptyMem_logMemSize1.json | 116 +- ...log0_nonEmptyMem_logMemSize1_logMemStart31.json | 116 +- GeneralStateTests/stLogTests/log1_Caller.json | 116 +- GeneralStateTests/stLogTests/log1_MaxTopic.json | 116 +- GeneralStateTests/stLogTests/log1_emptyMem.json | 116 +- .../stLogTests/log1_logMemStartTooHigh.json | 115 +- .../stLogTests/log1_logMemsizeTooHigh.json | 115 +- .../stLogTests/log1_logMemsizeZero.json | 116 +- GeneralStateTests/stLogTests/log1_nonEmptyMem.json | 116 +- .../stLogTests/log1_nonEmptyMem_logMemSize1.json | 116 +- ...log1_nonEmptyMem_logMemSize1_logMemStart31.json | 116 +- GeneralStateTests/stLogTests/log2_Caller.json | 116 +- GeneralStateTests/stLogTests/log2_MaxTopic.json | 116 +- GeneralStateTests/stLogTests/log2_emptyMem.json | 116 +- .../stLogTests/log2_logMemStartTooHigh.json | 115 +- .../stLogTests/log2_logMemsizeTooHigh.json | 115 +- .../stLogTests/log2_logMemsizeZero.json | 116 +- GeneralStateTests/stLogTests/log2_nonEmptyMem.json | 116 +- .../stLogTests/log2_nonEmptyMem_logMemSize1.json | 116 +- ...log2_nonEmptyMem_logMemSize1_logMemStart31.json | 116 +- GeneralStateTests/stLogTests/log3_Caller.json | 116 +- GeneralStateTests/stLogTests/log3_MaxTopic.json | 116 +- GeneralStateTests/stLogTests/log3_PC.json | 116 +- GeneralStateTests/stLogTests/log3_emptyMem.json | 116 +- .../stLogTests/log3_logMemStartTooHigh.json | 115 +- .../stLogTests/log3_logMemsizeTooHigh.json | 115 +- .../stLogTests/log3_logMemsizeZero.json | 116 +- GeneralStateTests/stLogTests/log3_nonEmptyMem.json | 116 +- .../stLogTests/log3_nonEmptyMem_logMemSize1.json | 116 +- ...log3_nonEmptyMem_logMemSize1_logMemStart31.json | 116 +- GeneralStateTests/stLogTests/log4_Caller.json | 116 +- GeneralStateTests/stLogTests/log4_MaxTopic.json | 116 +- GeneralStateTests/stLogTests/log4_PC.json | 116 +- GeneralStateTests/stLogTests/log4_emptyMem.json | 116 +- .../stLogTests/log4_logMemStartTooHigh.json | 115 +- .../stLogTests/log4_logMemsizeTooHigh.json | 115 +- .../stLogTests/log4_logMemsizeZero.json | 116 +- GeneralStateTests/stLogTests/log4_nonEmptyMem.json | 116 +- .../stLogTests/log4_nonEmptyMem_logMemSize1.json | 116 +- ...log4_nonEmptyMem_logMemSize1_logMemStart31.json | 116 +- GeneralStateTests/stLogTests/logInOOG_Call.json | 116 +- ...GasThenTransactionHasWithMemExpandingCalls.json | 136 +- ...th2ThenTransactionHasWithMemExpandingCalls.json | 146 +- ...GoesOOGOnSecondLevel2WithMemExpandingCalls.json | 136 +- ...lGoesOOGOnSecondLevelWithMemExpandingCalls.json | 136 +- ...ateAndGasInsideCreateWithMemExpandingCalls.json | 134 +- .../DelegateCallOnEIPWithMemExpandingCalls.json | 132 +- ...GasThenTransactionHasWithMemExpandingCalls.json | 138 +- .../NewGasPriceForCodesWithMemExpandingCalls.json | 198 +- .../stMemoryStressTest/CALLCODE_Bounds.json | 150 +- .../stMemoryStressTest/CALLCODE_Bounds2.json | 150 +- .../stMemoryStressTest/CALLCODE_Bounds3.json | 150 +- .../stMemoryStressTest/CALLCODE_Bounds4.json | 192 +- .../stMemoryStressTest/CALL_Bounds.json | 152 +- .../stMemoryStressTest/CALL_Bounds2.json | 152 +- .../stMemoryStressTest/CALL_Bounds2a.json | 152 +- .../stMemoryStressTest/CALL_Bounds3.json | 194 +- .../stMemoryStressTest/CREATE_Bounds.json | 147 +- .../stMemoryStressTest/CREATE_Bounds2.json | 144 +- .../stMemoryStressTest/CREATE_Bounds3.json | 186 +- .../stMemoryStressTest/DELEGATECALL_Bounds.json | 150 +- .../stMemoryStressTest/DELEGATECALL_Bounds2.json | 149 +- .../stMemoryStressTest/DELEGATECALL_Bounds3.json | 192 +- .../stMemoryStressTest/DUP_Bounds.json | 181 +- .../stMemoryStressTest/FillStack.json | 192 +- .../stMemoryStressTest/JUMPI_Bounds.json | 140 +- .../stMemoryStressTest/JUMP_Bounds.json | 139 +- .../stMemoryStressTest/JUMP_Bounds2.json | 138 +- .../stMemoryStressTest/MLOAD_Bounds.json | 141 +- .../stMemoryStressTest/MLOAD_Bounds2.json | 141 +- .../stMemoryStressTest/MLOAD_Bounds3.json | 141 +- .../stMemoryStressTest/MSTORE_Bounds.json | 139 +- .../stMemoryStressTest/MSTORE_Bounds2.json | 139 +- .../stMemoryStressTest/MSTORE_Bounds2a.json | 139 +- .../stMemoryStressTest/POP_Bounds.json | 141 +- .../stMemoryStressTest/RETURN_Bounds.json | 294 +- .../stMemoryStressTest/SLOAD_Bounds.json | 141 +- .../stMemoryStressTest/SSTORE_Bounds.json | 151 +- .../stMemoryStressTest/mload32bitBound.json | 160 +- .../stMemoryStressTest/mload32bitBound2.json | 189 +- .../stMemoryStressTest/mload32bitBound_Msize.json | 161 +- .../stMemoryStressTest/mload32bitBound_return.json | 154 +- .../mload32bitBound_return2.json | 154 +- .../stMemoryStressTest/static_CALL_Bounds.json | 152 +- .../stMemoryStressTest/static_CALL_Bounds2.json | 152 +- .../stMemoryStressTest/static_CALL_Bounds2a.json | 151 +- .../stMemoryStressTest/static_CALL_Bounds3.json | 152 +- .../stMemoryTest/calldatacopy_dejavu.json | 150 +- .../stMemoryTest/calldatacopy_dejavu2.json | 150 +- .../stMemoryTest/codecopy_dejavu.json | 150 +- .../stMemoryTest/codecopy_dejavu2.json | 148 +- .../stMemoryTest/extcodecopy_dejavu.json | 150 +- GeneralStateTests/stMemoryTest/log1_dejavu.json | 150 +- GeneralStateTests/stMemoryTest/log2_dejavu.json | 150 +- GeneralStateTests/stMemoryTest/log3_dejavu.json | 150 +- GeneralStateTests/stMemoryTest/log4_dejavu.json | 150 +- .../stMemoryTest/mem0b_singleByte.json | 152 +- .../stMemoryTest/mem31b_singleByte.json | 152 +- .../stMemoryTest/mem32b_singleByte.json | 152 +- GeneralStateTests/stMemoryTest/mem32kb+1.json | 154 +- GeneralStateTests/stMemoryTest/mem32kb+31.json | 154 +- GeneralStateTests/stMemoryTest/mem32kb+32.json | 154 +- GeneralStateTests/stMemoryTest/mem32kb+33.json | 154 +- GeneralStateTests/stMemoryTest/mem32kb-1.json | 154 +- GeneralStateTests/stMemoryTest/mem32kb-31.json | 154 +- GeneralStateTests/stMemoryTest/mem32kb-32.json | 154 +- GeneralStateTests/stMemoryTest/mem32kb-33.json | 154 +- GeneralStateTests/stMemoryTest/mem32kb.json | 154 +- .../stMemoryTest/mem32kb_singleByte+1.json | 152 +- .../stMemoryTest/mem32kb_singleByte+31.json | 152 +- .../stMemoryTest/mem32kb_singleByte+32.json | 152 +- .../stMemoryTest/mem32kb_singleByte+33.json | 152 +- .../stMemoryTest/mem32kb_singleByte-1.json | 152 +- .../stMemoryTest/mem32kb_singleByte-31.json | 152 +- .../stMemoryTest/mem32kb_singleByte-32.json | 152 +- .../stMemoryTest/mem32kb_singleByte-33.json | 152 +- .../stMemoryTest/mem32kb_singleByte.json | 152 +- .../stMemoryTest/mem33b_singleByte.json | 152 +- GeneralStateTests/stMemoryTest/mem64kb+1.json | 154 +- GeneralStateTests/stMemoryTest/mem64kb+31.json | 154 +- GeneralStateTests/stMemoryTest/mem64kb+32.json | 154 +- GeneralStateTests/stMemoryTest/mem64kb+33.json | 154 +- GeneralStateTests/stMemoryTest/mem64kb-1.json | 154 +- GeneralStateTests/stMemoryTest/mem64kb-31.json | 154 +- GeneralStateTests/stMemoryTest/mem64kb-32.json | 154 +- GeneralStateTests/stMemoryTest/mem64kb-33.json | 154 +- GeneralStateTests/stMemoryTest/mem64kb.json | 154 +- .../stMemoryTest/mem64kb_singleByte+1.json | 152 +- .../stMemoryTest/mem64kb_singleByte+31.json | 152 +- .../stMemoryTest/mem64kb_singleByte+32.json | 152 +- .../stMemoryTest/mem64kb_singleByte+33.json | 152 +- .../stMemoryTest/mem64kb_singleByte-1.json | 152 +- .../stMemoryTest/mem64kb_singleByte-31.json | 152 +- .../stMemoryTest/mem64kb_singleByte-32.json | 152 +- .../stMemoryTest/mem64kb_singleByte-33.json | 152 +- .../stMemoryTest/mem64kb_singleByte.json | 152 +- GeneralStateTests/stMemoryTest/memReturn.json | 150 +- .../stMemoryTest/mload16bitBound.json | 150 +- GeneralStateTests/stMemoryTest/mload8bitBound.json | 150 +- GeneralStateTests/stMemoryTest/mload_dejavu.json | 150 +- GeneralStateTests/stMemoryTest/mstore_dejavu.json | 150 +- GeneralStateTests/stMemoryTest/mstroe8_dejavu.json | 150 +- GeneralStateTests/stMemoryTest/sha3_dejavu.json | 150 +- .../stMemoryTest/stackLimitGas_1023.json | 150 +- .../stMemoryTest/stackLimitGas_1024.json | 150 +- .../stMemoryTest/stackLimitGas_1025.json | 150 +- .../stMemoryTest/stackLimitPush31_1023.json | 150 +- .../stMemoryTest/stackLimitPush31_1024.json | 150 +- .../stMemoryTest/stackLimitPush31_1025.json | 150 +- .../stMemoryTest/stackLimitPush32_1023.json | 150 +- .../stMemoryTest/stackLimitPush32_1024.json | 150 +- .../stMemoryTest/stackLimitPush32_1025.json | 150 +- .../stNonZeroCallsTest/NonZeroValue_CALL.json | 132 +- .../stNonZeroCallsTest/NonZeroValue_CALLCODE.json | 130 +- .../NonZeroValue_CALLCODE_ToEmpty.json | 146 +- .../NonZeroValue_CALLCODE_ToNonNonZeroBalance.json | 134 +- .../NonZeroValue_CALLCODE_ToOneStorageKey.json | 142 +- .../NonZeroValue_CALL_ToEmpty.json | 153 +- .../NonZeroValue_CALL_ToNonNonZeroBalance.json | 134 +- .../NonZeroValue_CALL_ToOneStorageKey.json | 162 +- .../NonZeroValue_DELEGATECALL.json | 147 +- .../NonZeroValue_DELEGATECALL_ToEmpty.json | 165 +- ...ZeroValue_DELEGATECALL_ToNonNonZeroBalance.json | 153 +- .../NonZeroValue_DELEGATECALL_ToOneStorageKey.json | 162 +- .../stNonZeroCallsTest/NonZeroValue_SUICIDE.json | 125 +- .../NonZeroValue_SUICIDE_ToEmpty.json | 128 +- .../NonZeroValue_SUICIDE_ToNonNonZeroBalance.json | 128 +- .../NonZeroValue_SUICIDE_ToOneStorageKey.json | 134 +- .../NonZeroValue_TransactionCALL.json | 124 +- .../NonZeroValue_TransactionCALL_ToEmpty.json | 114 +- ...oValue_TransactionCALL_ToNonNonZeroBalance.json | 114 +- ...nZeroValue_TransactionCALL_ToOneStorageKey.json | 120 +- .../NonZeroValue_TransactionCALLwithData.json | 124 +- ...nZeroValue_TransactionCALLwithData_ToEmpty.json | 114 +- ...ransactionCALLwithData_ToNonNonZeroBalance.json | 114 +- ...ue_TransactionCALLwithData_ToOneStorageKey.json | 120 +- .../stPreCompiledContracts/CALLCODEEcrecover0.json | 107 +- .../CALLCODEEcrecover0_0input.json | 105 +- .../CALLCODEEcrecover0_Gas2999.json | 105 +- .../CALLCODEEcrecover0_NoGas.json | 138 +- .../CALLCODEEcrecover0_completeReturnValue.json | 106 +- .../CALLCODEEcrecover0_gas3000.json | 107 +- .../CALLCODEEcrecover0_overlappingInputOutput.json | 107 +- .../stPreCompiledContracts/CALLCODEEcrecover1.json | 105 +- .../stPreCompiledContracts/CALLCODEEcrecover2.json | 105 +- .../stPreCompiledContracts/CALLCODEEcrecover3.json | 106 +- .../CALLCODEEcrecover80.json | 107 +- .../CALLCODEEcrecoverH_prefixed0.json | 107 +- .../CALLCODEEcrecoverR_prefixed0.json | 107 +- .../CALLCODEEcrecoverS_prefixed0.json | 107 +- .../CALLCODEEcrecoverV_prefixed0.json | 107 +- .../CALLCODEEcrecoverV_prefixedf0.json | 145 +- .../CALLCODEIdentitiy_0.json | 103 +- .../CALLCODEIdentitiy_1.json | 106 +- .../CALLCODEIdentity_1_nonzeroValue.json | 106 +- .../stPreCompiledContracts/CALLCODEIdentity_2.json | 106 +- .../stPreCompiledContracts/CALLCODEIdentity_3.json | 106 +- .../stPreCompiledContracts/CALLCODEIdentity_4.json | 106 +- .../CALLCODEIdentity_4_gas17.json | 106 +- .../CALLCODEIdentity_4_gas18.json | 106 +- .../stPreCompiledContracts/CALLCODEIdentity_5.json | 105 +- .../CALLCODERipemd160_0.json | 103 +- .../CALLCODERipemd160_1.json | 106 +- .../CALLCODERipemd160_2.json | 106 +- .../CALLCODERipemd160_3.json | 106 +- .../CALLCODERipemd160_3_postfixed0.json | 106 +- .../CALLCODERipemd160_3_prefixed0.json | 106 +- .../CALLCODERipemd160_4.json | 106 +- .../CALLCODERipemd160_4_gas719.json | 105 +- .../CALLCODERipemd160_5.json | 105 +- .../stPreCompiledContracts/CALLCODESha256_0.json | 103 +- .../stPreCompiledContracts/CALLCODESha256_1.json | 106 +- .../CALLCODESha256_1_nonzeroValue.json | 106 +- .../stPreCompiledContracts/CALLCODESha256_2.json | 106 +- .../stPreCompiledContracts/CALLCODESha256_3.json | 106 +- .../CALLCODESha256_3_postfix0.json | 106 +- .../CALLCODESha256_3_prefix0.json | 106 +- .../stPreCompiledContracts/CALLCODESha256_4.json | 106 +- .../CALLCODESha256_4_gas99.json | 106 +- .../stPreCompiledContracts/CALLCODESha256_5.json | 105 +- .../stPreCompiledContracts/CallEcrecover0.json | 107 +- .../CallEcrecover0_0input.json | 105 +- .../CallEcrecover0_Gas2999.json | 105 +- .../CallEcrecover0_NoGas.json | 126 +- .../CallEcrecover0_completeReturnValue.json | 106 +- .../CallEcrecover0_gas3000.json | 107 +- .../CallEcrecover0_overlappingInputOutput.json | 107 +- .../stPreCompiledContracts/CallEcrecover1.json | 105 +- .../stPreCompiledContracts/CallEcrecover2.json | 105 +- .../stPreCompiledContracts/CallEcrecover3.json | 106 +- .../stPreCompiledContracts/CallEcrecover80.json | 107 +- .../CallEcrecoverCheckLength.json | 107 +- .../CallEcrecoverCheckLengthWrongV.json | 107 +- .../CallEcrecoverH_prefixed0.json | 107 +- .../CallEcrecoverR_prefixed0.json | 107 +- .../CallEcrecoverS_prefixed0.json | 107 +- .../CallEcrecoverV_prefixed0.json | 107 +- .../stPreCompiledContracts/CallIdentitiy_0.json | 103 +- .../stPreCompiledContracts/CallIdentitiy_1.json | 106 +- .../CallIdentity_1_nonzeroValue.json | 109 +- .../stPreCompiledContracts/CallIdentity_2.json | 106 +- .../stPreCompiledContracts/CallIdentity_3.json | 106 +- .../stPreCompiledContracts/CallIdentity_4.json | 106 +- .../CallIdentity_4_gas17.json | 106 +- .../CallIdentity_4_gas18.json | 106 +- .../stPreCompiledContracts/CallIdentity_5.json | 105 +- .../stPreCompiledContracts/CallRipemd160_0.json | 103 +- .../stPreCompiledContracts/CallRipemd160_1.json | 106 +- .../stPreCompiledContracts/CallRipemd160_2.json | 106 +- .../stPreCompiledContracts/CallRipemd160_3.json | 106 +- .../CallRipemd160_3_postfixed0.json | 106 +- .../CallRipemd160_3_prefixed0.json | 106 +- .../stPreCompiledContracts/CallRipemd160_4.json | 106 +- .../CallRipemd160_4_gas719.json | 105 +- .../stPreCompiledContracts/CallRipemd160_5.json | 105 +- .../stPreCompiledContracts/CallSha256_0.json | 103 +- .../stPreCompiledContracts/CallSha256_1.json | 106 +- .../CallSha256_1_nonzeroValue.json | 109 +- .../stPreCompiledContracts/CallSha256_2.json | 106 +- .../stPreCompiledContracts/CallSha256_3.json | 106 +- .../CallSha256_3_postfix0.json | 106 +- .../CallSha256_3_prefix0.json | 106 +- .../stPreCompiledContracts/CallSha256_4.json | 106 +- .../stPreCompiledContracts/CallSha256_4_gas99.json | 106 +- .../stPreCompiledContracts/CallSha256_5.json | 105 +- .../stPreCompiledContracts/modexp.json | 1466 +- .../modexp_0_0_0_1000000.json | 232 +- .../modexp_0_0_0_155000.json | 232 +- .../stPreCompiledContracts/modexp_0_0_0_20500.json | 231 +- .../stPreCompiledContracts/modexp_0_0_0_22000.json | 232 +- .../stPreCompiledContracts/modexp_0_0_0_25000.json | 232 +- .../stPreCompiledContracts/modexp_0_0_0_35000.json | 232 +- .../modexp_0_1_0_1000000.json | 232 +- .../modexp_0_1_0_155000.json | 232 +- .../stPreCompiledContracts/modexp_0_1_0_20500.json | 231 +- .../stPreCompiledContracts/modexp_0_1_0_22000.json | 232 +- .../stPreCompiledContracts/modexp_0_1_0_25000.json | 232 +- .../stPreCompiledContracts/modexp_0_1_0_35000.json | 232 +- .../modexp_0_3_100_1000000.json | 232 +- .../modexp_0_3_100_155000.json | 232 +- .../modexp_0_3_100_20500.json | 231 +- .../modexp_0_3_100_22000.json | 232 +- .../modexp_0_3_100_25000.json | 232 +- .../modexp_0_3_100_35000.json | 232 +- .../modexp_1_0_0_1000000.json | 232 +- .../modexp_1_0_0_155000.json | 232 +- .../stPreCompiledContracts/modexp_1_0_0_20500.json | 231 +- .../stPreCompiledContracts/modexp_1_0_0_22000.json | 232 +- .../stPreCompiledContracts/modexp_1_0_0_25000.json | 232 +- .../stPreCompiledContracts/modexp_1_0_0_35000.json | 232 +- .../modexp_1_0_1_1000000.json | 232 +- .../modexp_1_0_1_155000.json | 232 +- .../stPreCompiledContracts/modexp_1_0_1_20500.json | 231 +- .../stPreCompiledContracts/modexp_1_0_1_22000.json | 232 +- .../stPreCompiledContracts/modexp_1_0_1_25000.json | 232 +- .../stPreCompiledContracts/modexp_1_0_1_35000.json | 232 +- .../modexp_1_1_1_1000000.json | 232 +- .../modexp_1_1_1_155000.json | 232 +- .../stPreCompiledContracts/modexp_1_1_1_20500.json | 231 +- .../stPreCompiledContracts/modexp_1_1_1_22000.json | 232 +- .../stPreCompiledContracts/modexp_1_1_1_25000.json | 232 +- .../stPreCompiledContracts/modexp_1_1_1_35000.json | 232 +- .../modexp_37120_22411_22000.json | 231 +- .../modexp_37120_37111_0_1000000.json | 234 +- .../modexp_37120_37111_0_155000.json | 231 +- .../modexp_37120_37111_0_20500.json | 231 +- .../modexp_37120_37111_0_22000.json | 231 +- .../modexp_37120_37111_0_25000.json | 231 +- .../modexp_37120_37111_0_35000.json | 231 +- .../modexp_37120_37111_1_1000000.json | 234 +- .../modexp_37120_37111_1_155000.json | 231 +- .../modexp_37120_37111_1_20500.json | 231 +- .../modexp_37120_37111_1_25000.json | 231 +- .../modexp_37120_37111_1_35000.json | 231 +- .../modexp_37120_37111_37111_1000000.json | 234 +- .../modexp_37120_37111_37111_155000.json | 231 +- .../modexp_37120_37111_37111_20500.json | 231 +- .../modexp_37120_37111_37111_22000.json | 231 +- .../modexp_37120_37111_37111_25000.json | 231 +- .../modexp_37120_37111_37111_35000.json | 231 +- .../modexp_37120_37111_97_1000000.json | 234 +- .../modexp_37120_37111_97_155000.json | 231 +- .../modexp_37120_37111_97_20500.json | 231 +- .../modexp_37120_37111_97_22000.json | 231 +- .../modexp_37120_37111_97_25000.json | 231 +- .../modexp_37120_37111_97_35000.json | 231 +- .../modexp_39936_1_55201_1000000.json | 232 +- .../modexp_39936_1_55201_155000.json | 232 +- .../modexp_39936_1_55201_20500.json | 231 +- .../modexp_39936_1_55201_22000.json | 232 +- .../modexp_39936_1_55201_25000.json | 232 +- .../modexp_39936_1_55201_35000.json | 232 +- .../modexp_3_09984_39936_1000000.json | 232 +- .../modexp_3_09984_39936_155000.json | 232 +- .../modexp_3_09984_39936_22000.json | 231 +- .../modexp_3_09984_39936_25000.json | 232 +- .../modexp_3_09984_39936_35000.json | 232 +- .../modexp_3_28948_11579_20500.json | 231 +- .../modexp_3_5_100_1000000.json | 232 +- .../modexp_3_5_100_155000.json | 232 +- .../modexp_3_5_100_20500.json | 231 +- .../modexp_3_5_100_22000.json | 232 +- .../modexp_3_5_100_25000.json | 232 +- .../modexp_3_5_100_35000.json | 232 +- .../modexp_49_2401_2401_1000000.json | 232 +- .../modexp_49_2401_2401_155000.json | 232 +- .../modexp_49_2401_2401_20500.json | 231 +- .../modexp_49_2401_2401_22000.json | 232 +- .../modexp_49_2401_2401_25000.json | 232 +- .../modexp_49_2401_2401_35000.json | 232 +- .../modexp_55190_55190_42965_1000000.json | 232 +- .../modexp_55190_55190_42965_155000.json | 232 +- .../modexp_55190_55190_42965_20500.json | 231 +- .../modexp_55190_55190_42965_22000.json | 231 +- .../modexp_55190_55190_42965_25000.json | 232 +- .../modexp_55190_55190_42965_35000.json | 232 +- .../modexp_9_37111_37111_1000000.json | 234 +- .../modexp_9_37111_37111_155000.json | 231 +- .../modexp_9_37111_37111_20500.json | 231 +- .../modexp_9_37111_37111_22000.json | 231 +- .../modexp_9_37111_37111_35000.json | 231 +- .../modexp_9_3711_37111_25000.json | 231 +- .../stPreCompiledContracts/sec80.json | 103 +- .../Call1MB1024Calldepth.json | 209 +- .../stQuadraticComplexityTest/Call50000.json | 172 +- .../stQuadraticComplexityTest/Call50000_ecrec.json | 158 +- .../Call50000_identity.json | 160 +- .../Call50000_identity2.json | 160 +- .../Call50000_rip160.json | 160 +- .../Call50000_sha256.json | 197 +- .../Call50000bytesContract50_1.json | 211 +- .../Call50000bytesContract50_2.json | 211 +- .../Call50000bytesContract50_3.json | 211 +- .../stQuadraticComplexityTest/Callcode50000.json | 172 +- .../stQuadraticComplexityTest/Create1000.json | 14194 ++++- .../QuadraticComplexitySolidity_CallDataCopy.json | 163 +- .../stQuadraticComplexityTest/Return50000.json | 174 +- .../stQuadraticComplexityTest/Return50000_2.json | 174 +- GeneralStateTests/stRandom/randomStatetest.json | 129 +- GeneralStateTests/stRandom/randomStatetest0.json | 128 +- GeneralStateTests/stRandom/randomStatetest1.json | 130 +- GeneralStateTests/stRandom/randomStatetest10.json | 128 +- GeneralStateTests/stRandom/randomStatetest100.json | 131 +- GeneralStateTests/stRandom/randomStatetest101.json | 128 +- GeneralStateTests/stRandom/randomStatetest102.json | 129 +- GeneralStateTests/stRandom/randomStatetest103.json | 128 +- GeneralStateTests/stRandom/randomStatetest104.json | 129 +- GeneralStateTests/stRandom/randomStatetest105.json | 129 +- GeneralStateTests/stRandom/randomStatetest106.json | 129 +- GeneralStateTests/stRandom/randomStatetest107.json | 129 +- GeneralStateTests/stRandom/randomStatetest108.json | 130 +- GeneralStateTests/stRandom/randomStatetest11.json | 129 +- GeneralStateTests/stRandom/randomStatetest110.json | 129 +- GeneralStateTests/stRandom/randomStatetest111.json | 134 +- GeneralStateTests/stRandom/randomStatetest112.json | 129 +- GeneralStateTests/stRandom/randomStatetest114.json | 129 +- GeneralStateTests/stRandom/randomStatetest115.json | 129 +- GeneralStateTests/stRandom/randomStatetest116.json | 129 +- GeneralStateTests/stRandom/randomStatetest117.json | 129 +- GeneralStateTests/stRandom/randomStatetest118.json | 129 +- GeneralStateTests/stRandom/randomStatetest119.json | 129 +- GeneralStateTests/stRandom/randomStatetest12.json | 129 +- GeneralStateTests/stRandom/randomStatetest120.json | 129 +- GeneralStateTests/stRandom/randomStatetest121.json | 129 +- GeneralStateTests/stRandom/randomStatetest122.json | 129 +- GeneralStateTests/stRandom/randomStatetest123.json | 132 +- GeneralStateTests/stRandom/randomStatetest124.json | 129 +- GeneralStateTests/stRandom/randomStatetest125.json | 128 +- GeneralStateTests/stRandom/randomStatetest126.json | 130 +- GeneralStateTests/stRandom/randomStatetest129.json | 129 +- GeneralStateTests/stRandom/randomStatetest13.json | 128 +- GeneralStateTests/stRandom/randomStatetest130.json | 129 +- GeneralStateTests/stRandom/randomStatetest131.json | 129 +- GeneralStateTests/stRandom/randomStatetest133.json | 128 +- GeneralStateTests/stRandom/randomStatetest134.json | 128 +- GeneralStateTests/stRandom/randomStatetest135.json | 128 +- GeneralStateTests/stRandom/randomStatetest136.json | 129 +- GeneralStateTests/stRandom/randomStatetest137.json | 129 +- GeneralStateTests/stRandom/randomStatetest138.json | 135 +- GeneralStateTests/stRandom/randomStatetest139.json | 109 +- GeneralStateTests/stRandom/randomStatetest14.json | 128 +- GeneralStateTests/stRandom/randomStatetest142.json | 129 +- GeneralStateTests/stRandom/randomStatetest143.json | 131 +- GeneralStateTests/stRandom/randomStatetest144.json | 121 +- GeneralStateTests/stRandom/randomStatetest145.json | 129 +- GeneralStateTests/stRandom/randomStatetest146.json | 130 +- GeneralStateTests/stRandom/randomStatetest147.json | 128 +- GeneralStateTests/stRandom/randomStatetest148.json | 129 +- GeneralStateTests/stRandom/randomStatetest149.json | 128 +- GeneralStateTests/stRandom/randomStatetest15.json | 129 +- GeneralStateTests/stRandom/randomStatetest150.json | 108 +- GeneralStateTests/stRandom/randomStatetest151.json | 130 +- GeneralStateTests/stRandom/randomStatetest153.json | 132 +- GeneralStateTests/stRandom/randomStatetest154.json | 108 +- GeneralStateTests/stRandom/randomStatetest155.json | 129 +- GeneralStateTests/stRandom/randomStatetest156.json | 129 +- GeneralStateTests/stRandom/randomStatetest157.json | 128 +- GeneralStateTests/stRandom/randomStatetest158.json | 109 +- GeneralStateTests/stRandom/randomStatetest159.json | 109 +- GeneralStateTests/stRandom/randomStatetest16.json | 128 +- GeneralStateTests/stRandom/randomStatetest160.json | 131 +- GeneralStateTests/stRandom/randomStatetest161.json | 129 +- GeneralStateTests/stRandom/randomStatetest162.json | 129 +- GeneralStateTests/stRandom/randomStatetest163.json | 128 +- GeneralStateTests/stRandom/randomStatetest164.json | 130 +- GeneralStateTests/stRandom/randomStatetest166.json | 129 +- GeneralStateTests/stRandom/randomStatetest167.json | 129 +- GeneralStateTests/stRandom/randomStatetest169.json | 109 +- GeneralStateTests/stRandom/randomStatetest17.json | 131 +- GeneralStateTests/stRandom/randomStatetest170.json | 131 +- GeneralStateTests/stRandom/randomStatetest171.json | 128 +- GeneralStateTests/stRandom/randomStatetest172.json | 128 +- GeneralStateTests/stRandom/randomStatetest173.json | 128 +- GeneralStateTests/stRandom/randomStatetest174.json | 131 +- GeneralStateTests/stRandom/randomStatetest175.json | 129 +- GeneralStateTests/stRandom/randomStatetest176.json | 128 +- GeneralStateTests/stRandom/randomStatetest177.json | 108 +- GeneralStateTests/stRandom/randomStatetest178.json | 108 +- GeneralStateTests/stRandom/randomStatetest179.json | 129 +- GeneralStateTests/stRandom/randomStatetest18.json | 108 +- GeneralStateTests/stRandom/randomStatetest180.json | 129 +- GeneralStateTests/stRandom/randomStatetest183.json | 129 +- GeneralStateTests/stRandom/randomStatetest184.json | 110 +- GeneralStateTests/stRandom/randomStatetest185.json | 128 +- GeneralStateTests/stRandom/randomStatetest187.json | 129 +- GeneralStateTests/stRandom/randomStatetest188.json | 109 +- GeneralStateTests/stRandom/randomStatetest189.json | 128 +- GeneralStateTests/stRandom/randomStatetest19.json | 129 +- GeneralStateTests/stRandom/randomStatetest190.json | 128 +- GeneralStateTests/stRandom/randomStatetest191.json | 129 +- GeneralStateTests/stRandom/randomStatetest192.json | 129 +- GeneralStateTests/stRandom/randomStatetest194.json | 129 +- GeneralStateTests/stRandom/randomStatetest195.json | 129 +- GeneralStateTests/stRandom/randomStatetest196.json | 129 +- GeneralStateTests/stRandom/randomStatetest197.json | 128 +- GeneralStateTests/stRandom/randomStatetest198.json | 128 +- GeneralStateTests/stRandom/randomStatetest199.json | 131 +- GeneralStateTests/stRandom/randomStatetest2.json | 129 +- GeneralStateTests/stRandom/randomStatetest20.json | 128 +- GeneralStateTests/stRandom/randomStatetest200.json | 129 +- GeneralStateTests/stRandom/randomStatetest201.json | 128 +- GeneralStateTests/stRandom/randomStatetest202.json | 109 +- GeneralStateTests/stRandom/randomStatetest204.json | 129 +- GeneralStateTests/stRandom/randomStatetest205.json | 108 +- GeneralStateTests/stRandom/randomStatetest206.json | 129 +- GeneralStateTests/stRandom/randomStatetest207.json | 131 +- GeneralStateTests/stRandom/randomStatetest208.json | 129 +- GeneralStateTests/stRandom/randomStatetest209.json | 128 +- GeneralStateTests/stRandom/randomStatetest210.json | 129 +- GeneralStateTests/stRandom/randomStatetest211.json | 108 +- GeneralStateTests/stRandom/randomStatetest212.json | 128 +- GeneralStateTests/stRandom/randomStatetest214.json | 129 +- GeneralStateTests/stRandom/randomStatetest215.json | 129 +- GeneralStateTests/stRandom/randomStatetest216.json | 129 +- GeneralStateTests/stRandom/randomStatetest217.json | 129 +- GeneralStateTests/stRandom/randomStatetest219.json | 129 +- GeneralStateTests/stRandom/randomStatetest22.json | 128 +- GeneralStateTests/stRandom/randomStatetest220.json | 129 +- GeneralStateTests/stRandom/randomStatetest221.json | 129 +- GeneralStateTests/stRandom/randomStatetest222.json | 129 +- GeneralStateTests/stRandom/randomStatetest223.json | 110 +- GeneralStateTests/stRandom/randomStatetest225.json | 129 +- GeneralStateTests/stRandom/randomStatetest226.json | 109 +- GeneralStateTests/stRandom/randomStatetest227.json | 129 +- GeneralStateTests/stRandom/randomStatetest228.json | 131 +- GeneralStateTests/stRandom/randomStatetest229.json | 132 +- GeneralStateTests/stRandom/randomStatetest23.json | 129 +- GeneralStateTests/stRandom/randomStatetest230.json | 128 +- GeneralStateTests/stRandom/randomStatetest231.json | 129 +- GeneralStateTests/stRandom/randomStatetest232.json | 128 +- GeneralStateTests/stRandom/randomStatetest233.json | 128 +- GeneralStateTests/stRandom/randomStatetest236.json | 130 +- GeneralStateTests/stRandom/randomStatetest237.json | 130 +- GeneralStateTests/stRandom/randomStatetest238.json | 129 +- GeneralStateTests/stRandom/randomStatetest24.json | 128 +- GeneralStateTests/stRandom/randomStatetest241.json | 132 +- GeneralStateTests/stRandom/randomStatetest242.json | 129 +- GeneralStateTests/stRandom/randomStatetest243.json | 129 +- GeneralStateTests/stRandom/randomStatetest244.json | 131 +- GeneralStateTests/stRandom/randomStatetest245.json | 130 +- GeneralStateTests/stRandom/randomStatetest246.json | 132 +- GeneralStateTests/stRandom/randomStatetest247.json | 129 +- GeneralStateTests/stRandom/randomStatetest248.json | 129 +- GeneralStateTests/stRandom/randomStatetest249.json | 129 +- GeneralStateTests/stRandom/randomStatetest25.json | 108 +- GeneralStateTests/stRandom/randomStatetest250.json | 128 +- GeneralStateTests/stRandom/randomStatetest251.json | 128 +- GeneralStateTests/stRandom/randomStatetest252.json | 130 +- GeneralStateTests/stRandom/randomStatetest254.json | 129 +- GeneralStateTests/stRandom/randomStatetest257.json | 128 +- GeneralStateTests/stRandom/randomStatetest259.json | 129 +- GeneralStateTests/stRandom/randomStatetest26.json | 131 +- GeneralStateTests/stRandom/randomStatetest260.json | 128 +- GeneralStateTests/stRandom/randomStatetest261.json | 108 +- GeneralStateTests/stRandom/randomStatetest263.json | 129 +- GeneralStateTests/stRandom/randomStatetest264.json | 129 +- GeneralStateTests/stRandom/randomStatetest265.json | 108 +- GeneralStateTests/stRandom/randomStatetest266.json | 128 +- GeneralStateTests/stRandom/randomStatetest267.json | 129 +- GeneralStateTests/stRandom/randomStatetest268.json | 129 +- GeneralStateTests/stRandom/randomStatetest269.json | 129 +- GeneralStateTests/stRandom/randomStatetest27.json | 129 +- GeneralStateTests/stRandom/randomStatetest270.json | 130 +- GeneralStateTests/stRandom/randomStatetest271.json | 128 +- GeneralStateTests/stRandom/randomStatetest273.json | 130 +- GeneralStateTests/stRandom/randomStatetest274.json | 128 +- GeneralStateTests/stRandom/randomStatetest275.json | 128 +- GeneralStateTests/stRandom/randomStatetest276.json | 129 +- GeneralStateTests/stRandom/randomStatetest278.json | 129 +- GeneralStateTests/stRandom/randomStatetest279.json | 109 +- GeneralStateTests/stRandom/randomStatetest28.json | 129 +- GeneralStateTests/stRandom/randomStatetest280.json | 129 +- GeneralStateTests/stRandom/randomStatetest281.json | 129 +- GeneralStateTests/stRandom/randomStatetest282.json | 121 +- GeneralStateTests/stRandom/randomStatetest283.json | 129 +- GeneralStateTests/stRandom/randomStatetest285.json | 130 +- GeneralStateTests/stRandom/randomStatetest286.json | 129 +- GeneralStateTests/stRandom/randomStatetest287.json | 121 +- GeneralStateTests/stRandom/randomStatetest288.json | 130 +- GeneralStateTests/stRandom/randomStatetest29.json | 129 +- GeneralStateTests/stRandom/randomStatetest290.json | 129 +- GeneralStateTests/stRandom/randomStatetest291.json | 110 +- GeneralStateTests/stRandom/randomStatetest292.json | 128 +- GeneralStateTests/stRandom/randomStatetest293.json | 130 +- GeneralStateTests/stRandom/randomStatetest294.json | 128 +- GeneralStateTests/stRandom/randomStatetest295.json | 128 +- GeneralStateTests/stRandom/randomStatetest296.json | 128 +- GeneralStateTests/stRandom/randomStatetest297.json | 129 +- GeneralStateTests/stRandom/randomStatetest298.json | 129 +- GeneralStateTests/stRandom/randomStatetest299.json | 129 +- GeneralStateTests/stRandom/randomStatetest3.json | 109 +- GeneralStateTests/stRandom/randomStatetest30.json | 131 +- GeneralStateTests/stRandom/randomStatetest300.json | 128 +- GeneralStateTests/stRandom/randomStatetest301.json | 129 +- GeneralStateTests/stRandom/randomStatetest302.json | 108 +- GeneralStateTests/stRandom/randomStatetest303.json | 108 +- GeneralStateTests/stRandom/randomStatetest304.json | 108 +- GeneralStateTests/stRandom/randomStatetest305.json | 129 +- GeneralStateTests/stRandom/randomStatetest306.json | 108 +- GeneralStateTests/stRandom/randomStatetest307.json | 143 +- GeneralStateTests/stRandom/randomStatetest308.json | 129 +- GeneralStateTests/stRandom/randomStatetest309.json | 130 +- GeneralStateTests/stRandom/randomStatetest31.json | 130 +- GeneralStateTests/stRandom/randomStatetest310.json | 129 +- GeneralStateTests/stRandom/randomStatetest311.json | 129 +- GeneralStateTests/stRandom/randomStatetest312.json | 128 +- GeneralStateTests/stRandom/randomStatetest313.json | 128 +- GeneralStateTests/stRandom/randomStatetest315.json | 129 +- GeneralStateTests/stRandom/randomStatetest316.json | 129 +- GeneralStateTests/stRandom/randomStatetest318.json | 129 +- GeneralStateTests/stRandom/randomStatetest32.json | 130 +- GeneralStateTests/stRandom/randomStatetest320.json | 128 +- GeneralStateTests/stRandom/randomStatetest321.json | 128 +- GeneralStateTests/stRandom/randomStatetest322.json | 129 +- GeneralStateTests/stRandom/randomStatetest323.json | 128 +- GeneralStateTests/stRandom/randomStatetest324.json | 129 +- GeneralStateTests/stRandom/randomStatetest325.json | 129 +- GeneralStateTests/stRandom/randomStatetest326.json | 128 +- GeneralStateTests/stRandom/randomStatetest327.json | 128 +- GeneralStateTests/stRandom/randomStatetest328.json | 131 +- GeneralStateTests/stRandom/randomStatetest329.json | 129 +- GeneralStateTests/stRandom/randomStatetest33.json | 129 +- GeneralStateTests/stRandom/randomStatetest332.json | 129 +- GeneralStateTests/stRandom/randomStatetest333.json | 129 +- GeneralStateTests/stRandom/randomStatetest334.json | 129 +- GeneralStateTests/stRandom/randomStatetest335.json | 128 +- GeneralStateTests/stRandom/randomStatetest336.json | 130 +- GeneralStateTests/stRandom/randomStatetest337.json | 110 +- GeneralStateTests/stRandom/randomStatetest338.json | 130 +- GeneralStateTests/stRandom/randomStatetest339.json | 129 +- GeneralStateTests/stRandom/randomStatetest340.json | 128 +- GeneralStateTests/stRandom/randomStatetest341.json | 128 +- GeneralStateTests/stRandom/randomStatetest342.json | 129 +- GeneralStateTests/stRandom/randomStatetest343.json | 130 +- GeneralStateTests/stRandom/randomStatetest345.json | 128 +- GeneralStateTests/stRandom/randomStatetest346.json | 128 +- GeneralStateTests/stRandom/randomStatetest347.json | 108 +- GeneralStateTests/stRandom/randomStatetest348.json | 129 +- GeneralStateTests/stRandom/randomStatetest349.json | 131 +- GeneralStateTests/stRandom/randomStatetest350.json | 129 +- GeneralStateTests/stRandom/randomStatetest351.json | 129 +- GeneralStateTests/stRandom/randomStatetest352.json | 108 +- GeneralStateTests/stRandom/randomStatetest353.json | 128 +- GeneralStateTests/stRandom/randomStatetest354.json | 129 +- GeneralStateTests/stRandom/randomStatetest355.json | 108 +- GeneralStateTests/stRandom/randomStatetest356.json | 129 +- GeneralStateTests/stRandom/randomStatetest357.json | 128 +- GeneralStateTests/stRandom/randomStatetest358.json | 129 +- GeneralStateTests/stRandom/randomStatetest359.json | 128 +- GeneralStateTests/stRandom/randomStatetest36.json | 129 +- GeneralStateTests/stRandom/randomStatetest360.json | 129 +- GeneralStateTests/stRandom/randomStatetest361.json | 129 +- GeneralStateTests/stRandom/randomStatetest362.json | 129 +- GeneralStateTests/stRandom/randomStatetest363.json | 129 +- GeneralStateTests/stRandom/randomStatetest364.json | 129 +- GeneralStateTests/stRandom/randomStatetest365.json | 130 +- GeneralStateTests/stRandom/randomStatetest366.json | 129 +- GeneralStateTests/stRandom/randomStatetest367.json | 129 +- GeneralStateTests/stRandom/randomStatetest368.json | 135 +- GeneralStateTests/stRandom/randomStatetest369.json | 129 +- GeneralStateTests/stRandom/randomStatetest37.json | 129 +- GeneralStateTests/stRandom/randomStatetest370.json | 128 +- GeneralStateTests/stRandom/randomStatetest371.json | 130 +- GeneralStateTests/stRandom/randomStatetest372.json | 129 +- GeneralStateTests/stRandom/randomStatetest375.json | 132 +- GeneralStateTests/stRandom/randomStatetest376.json | 128 +- GeneralStateTests/stRandom/randomStatetest377.json | 132 +- GeneralStateTests/stRandom/randomStatetest378.json | 129 +- GeneralStateTests/stRandom/randomStatetest379.json | 132 +- GeneralStateTests/stRandom/randomStatetest38.json | 131 +- GeneralStateTests/stRandom/randomStatetest380.json | 129 +- GeneralStateTests/stRandom/randomStatetest381.json | 129 +- GeneralStateTests/stRandom/randomStatetest382.json | 129 +- GeneralStateTests/stRandom/randomStatetest383.json | 129 +- GeneralStateTests/stRandom/randomStatetest384.json | 129 +- GeneralStateTests/stRandom/randomStatetest385.json | 129 +- GeneralStateTests/stRandom/randomStatetest386.json | 129 +- GeneralStateTests/stRandom/randomStatetest387.json | 128 +- GeneralStateTests/stRandom/randomStatetest388.json | 129 +- GeneralStateTests/stRandom/randomStatetest389.json | 129 +- GeneralStateTests/stRandom/randomStatetest39.json | 130 +- GeneralStateTests/stRandom/randomStatetest391.json | 130 +- GeneralStateTests/stRandom/randomStatetest393.json | 128 +- GeneralStateTests/stRandom/randomStatetest395.json | 129 +- GeneralStateTests/stRandom/randomStatetest396.json | 108 +- GeneralStateTests/stRandom/randomStatetest397.json | 130 +- GeneralStateTests/stRandom/randomStatetest398.json | 129 +- GeneralStateTests/stRandom/randomStatetest399.json | 129 +- GeneralStateTests/stRandom/randomStatetest4.json | 128 +- GeneralStateTests/stRandom/randomStatetest401.json | 121 +- GeneralStateTests/stRandom/randomStatetest402.json | 129 +- GeneralStateTests/stRandom/randomStatetest404.json | 128 +- GeneralStateTests/stRandom/randomStatetest405.json | 129 +- GeneralStateTests/stRandom/randomStatetest406.json | 130 +- GeneralStateTests/stRandom/randomStatetest407.json | 129 +- GeneralStateTests/stRandom/randomStatetest408.json | 129 +- GeneralStateTests/stRandom/randomStatetest409.json | 128 +- GeneralStateTests/stRandom/randomStatetest41.json | 129 +- GeneralStateTests/stRandom/randomStatetest410.json | 128 +- GeneralStateTests/stRandom/randomStatetest411.json | 129 +- GeneralStateTests/stRandom/randomStatetest412.json | 129 +- GeneralStateTests/stRandom/randomStatetest413.json | 129 +- GeneralStateTests/stRandom/randomStatetest414.json | 128 +- GeneralStateTests/stRandom/randomStatetest415.json | 134 +- GeneralStateTests/stRandom/randomStatetest416.json | 109 +- GeneralStateTests/stRandom/randomStatetest417.json | 130 +- GeneralStateTests/stRandom/randomStatetest418.json | 128 +- GeneralStateTests/stRandom/randomStatetest419.json | 129 +- GeneralStateTests/stRandom/randomStatetest42.json | 109 +- GeneralStateTests/stRandom/randomStatetest420.json | 128 +- GeneralStateTests/stRandom/randomStatetest421.json | 129 +- GeneralStateTests/stRandom/randomStatetest422.json | 128 +- GeneralStateTests/stRandom/randomStatetest423.json | 128 +- GeneralStateTests/stRandom/randomStatetest424.json | 129 +- GeneralStateTests/stRandom/randomStatetest425.json | 129 +- GeneralStateTests/stRandom/randomStatetest426.json | 129 +- GeneralStateTests/stRandom/randomStatetest428.json | 130 +- GeneralStateTests/stRandom/randomStatetest429.json | 129 +- GeneralStateTests/stRandom/randomStatetest43.json | 130 +- GeneralStateTests/stRandom/randomStatetest430.json | 129 +- GeneralStateTests/stRandom/randomStatetest433.json | 128 +- GeneralStateTests/stRandom/randomStatetest435.json | 130 +- GeneralStateTests/stRandom/randomStatetest436.json | 129 +- GeneralStateTests/stRandom/randomStatetest437.json | 130 +- GeneralStateTests/stRandom/randomStatetest438.json | 129 +- GeneralStateTests/stRandom/randomStatetest439.json | 129 +- GeneralStateTests/stRandom/randomStatetest440.json | 129 +- GeneralStateTests/stRandom/randomStatetest441.json | 131 +- GeneralStateTests/stRandom/randomStatetest442.json | 130 +- GeneralStateTests/stRandom/randomStatetest443.json | 128 +- GeneralStateTests/stRandom/randomStatetest444.json | 128 +- GeneralStateTests/stRandom/randomStatetest445.json | 128 +- GeneralStateTests/stRandom/randomStatetest446.json | 129 +- GeneralStateTests/stRandom/randomStatetest447.json | 109 +- GeneralStateTests/stRandom/randomStatetest448.json | 128 +- GeneralStateTests/stRandom/randomStatetest449.json | 128 +- GeneralStateTests/stRandom/randomStatetest45.json | 128 +- GeneralStateTests/stRandom/randomStatetest450.json | 109 +- GeneralStateTests/stRandom/randomStatetest451.json | 129 +- GeneralStateTests/stRandom/randomStatetest452.json | 129 +- GeneralStateTests/stRandom/randomStatetest454.json | 128 +- GeneralStateTests/stRandom/randomStatetest455.json | 129 +- GeneralStateTests/stRandom/randomStatetest456.json | 130 +- GeneralStateTests/stRandom/randomStatetest457.json | 129 +- GeneralStateTests/stRandom/randomStatetest458.json | 108 +- GeneralStateTests/stRandom/randomStatetest46.json | 109 +- GeneralStateTests/stRandom/randomStatetest460.json | 129 +- GeneralStateTests/stRandom/randomStatetest461.json | 129 +- GeneralStateTests/stRandom/randomStatetest462.json | 129 +- GeneralStateTests/stRandom/randomStatetest464.json | 129 +- GeneralStateTests/stRandom/randomStatetest465.json | 109 +- GeneralStateTests/stRandom/randomStatetest466.json | 110 +- GeneralStateTests/stRandom/randomStatetest467.json | 108 +- GeneralStateTests/stRandom/randomStatetest468.json | 130 +- GeneralStateTests/stRandom/randomStatetest469.json | 128 +- GeneralStateTests/stRandom/randomStatetest47.json | 129 +- GeneralStateTests/stRandom/randomStatetest470.json | 129 +- GeneralStateTests/stRandom/randomStatetest471.json | 129 +- GeneralStateTests/stRandom/randomStatetest472.json | 128 +- GeneralStateTests/stRandom/randomStatetest473.json | 129 +- GeneralStateTests/stRandom/randomStatetest474.json | 129 +- GeneralStateTests/stRandom/randomStatetest475.json | 129 +- GeneralStateTests/stRandom/randomStatetest476.json | 129 +- GeneralStateTests/stRandom/randomStatetest477.json | 129 +- GeneralStateTests/stRandom/randomStatetest478.json | 128 +- GeneralStateTests/stRandom/randomStatetest48.json | 108 +- GeneralStateTests/stRandom/randomStatetest480.json | 129 +- GeneralStateTests/stRandom/randomStatetest481.json | 128 +- GeneralStateTests/stRandom/randomStatetest482.json | 129 +- GeneralStateTests/stRandom/randomStatetest483.json | 129 +- GeneralStateTests/stRandom/randomStatetest484.json | 128 +- GeneralStateTests/stRandom/randomStatetest485.json | 128 +- GeneralStateTests/stRandom/randomStatetest487.json | 128 +- GeneralStateTests/stRandom/randomStatetest488.json | 129 +- GeneralStateTests/stRandom/randomStatetest489.json | 129 +- GeneralStateTests/stRandom/randomStatetest49.json | 109 +- GeneralStateTests/stRandom/randomStatetest491.json | 129 +- GeneralStateTests/stRandom/randomStatetest493.json | 130 +- GeneralStateTests/stRandom/randomStatetest494.json | 128 +- GeneralStateTests/stRandom/randomStatetest495.json | 128 +- GeneralStateTests/stRandom/randomStatetest496.json | 128 +- GeneralStateTests/stRandom/randomStatetest497.json | 129 +- GeneralStateTests/stRandom/randomStatetest498.json | 109 +- GeneralStateTests/stRandom/randomStatetest499.json | 128 +- GeneralStateTests/stRandom/randomStatetest5.json | 128 +- GeneralStateTests/stRandom/randomStatetest50.json | 128 +- GeneralStateTests/stRandom/randomStatetest500.json | 129 +- GeneralStateTests/stRandom/randomStatetest501.json | 130 +- GeneralStateTests/stRandom/randomStatetest502.json | 129 +- GeneralStateTests/stRandom/randomStatetest503.json | 129 +- GeneralStateTests/stRandom/randomStatetest504.json | 128 +- GeneralStateTests/stRandom/randomStatetest505.json | 129 +- GeneralStateTests/stRandom/randomStatetest506.json | 130 +- GeneralStateTests/stRandom/randomStatetest507.json | 129 +- GeneralStateTests/stRandom/randomStatetest508.json | 130 +- GeneralStateTests/stRandom/randomStatetest509.json | 130 +- GeneralStateTests/stRandom/randomStatetest51.json | 128 +- GeneralStateTests/stRandom/randomStatetest510.json | 129 +- GeneralStateTests/stRandom/randomStatetest511.json | 129 +- GeneralStateTests/stRandom/randomStatetest512.json | 129 +- GeneralStateTests/stRandom/randomStatetest513.json | 128 +- GeneralStateTests/stRandom/randomStatetest514.json | 109 +- GeneralStateTests/stRandom/randomStatetest516.json | 129 +- GeneralStateTests/stRandom/randomStatetest517.json | 130 +- GeneralStateTests/stRandom/randomStatetest518.json | 129 +- GeneralStateTests/stRandom/randomStatetest519.json | 129 +- GeneralStateTests/stRandom/randomStatetest52.json | 129 +- GeneralStateTests/stRandom/randomStatetest520.json | 129 +- GeneralStateTests/stRandom/randomStatetest521.json | 130 +- GeneralStateTests/stRandom/randomStatetest523.json | 128 +- GeneralStateTests/stRandom/randomStatetest524.json | 128 +- GeneralStateTests/stRandom/randomStatetest525.json | 128 +- GeneralStateTests/stRandom/randomStatetest526.json | 129 +- GeneralStateTests/stRandom/randomStatetest527.json | 128 +- GeneralStateTests/stRandom/randomStatetest528.json | 128 +- GeneralStateTests/stRandom/randomStatetest53.json | 128 +- GeneralStateTests/stRandom/randomStatetest531.json | 130 +- GeneralStateTests/stRandom/randomStatetest532.json | 129 +- GeneralStateTests/stRandom/randomStatetest533.json | 109 +- GeneralStateTests/stRandom/randomStatetest534.json | 129 +- GeneralStateTests/stRandom/randomStatetest535.json | 109 +- GeneralStateTests/stRandom/randomStatetest536.json | 128 +- GeneralStateTests/stRandom/randomStatetest537.json | 129 +- GeneralStateTests/stRandom/randomStatetest538.json | 128 +- GeneralStateTests/stRandom/randomStatetest539.json | 129 +- GeneralStateTests/stRandom/randomStatetest54.json | 128 +- GeneralStateTests/stRandom/randomStatetest541.json | 129 +- GeneralStateTests/stRandom/randomStatetest542.json | 130 +- GeneralStateTests/stRandom/randomStatetest543.json | 108 +- GeneralStateTests/stRandom/randomStatetest544.json | 129 +- GeneralStateTests/stRandom/randomStatetest545.json | 129 +- GeneralStateTests/stRandom/randomStatetest546.json | 129 +- GeneralStateTests/stRandom/randomStatetest547.json | 128 +- GeneralStateTests/stRandom/randomStatetest548.json | 129 +- GeneralStateTests/stRandom/randomStatetest549.json | 130 +- GeneralStateTests/stRandom/randomStatetest55.json | 128 +- GeneralStateTests/stRandom/randomStatetest550.json | 129 +- GeneralStateTests/stRandom/randomStatetest552.json | 129 +- GeneralStateTests/stRandom/randomStatetest553.json | 129 +- GeneralStateTests/stRandom/randomStatetest554.json | 108 +- GeneralStateTests/stRandom/randomStatetest555.json | 129 +- GeneralStateTests/stRandom/randomStatetest556.json | 129 +- GeneralStateTests/stRandom/randomStatetest558.json | 130 +- GeneralStateTests/stRandom/randomStatetest559.json | 128 +- GeneralStateTests/stRandom/randomStatetest560.json | 128 +- GeneralStateTests/stRandom/randomStatetest562.json | 108 +- GeneralStateTests/stRandom/randomStatetest563.json | 128 +- GeneralStateTests/stRandom/randomStatetest564.json | 129 +- GeneralStateTests/stRandom/randomStatetest565.json | 129 +- GeneralStateTests/stRandom/randomStatetest566.json | 128 +- GeneralStateTests/stRandom/randomStatetest567.json | 128 +- GeneralStateTests/stRandom/randomStatetest569.json | 128 +- GeneralStateTests/stRandom/randomStatetest57.json | 128 +- GeneralStateTests/stRandom/randomStatetest571.json | 129 +- GeneralStateTests/stRandom/randomStatetest572.json | 128 +- GeneralStateTests/stRandom/randomStatetest573.json | 128 +- GeneralStateTests/stRandom/randomStatetest574.json | 129 +- GeneralStateTests/stRandom/randomStatetest575.json | 128 +- GeneralStateTests/stRandom/randomStatetest576.json | 108 +- GeneralStateTests/stRandom/randomStatetest577.json | 131 +- GeneralStateTests/stRandom/randomStatetest578.json | 130 +- GeneralStateTests/stRandom/randomStatetest579.json | 128 +- GeneralStateTests/stRandom/randomStatetest58.json | 129 +- GeneralStateTests/stRandom/randomStatetest580.json | 129 +- GeneralStateTests/stRandom/randomStatetest581.json | 128 +- GeneralStateTests/stRandom/randomStatetest582.json | 128 +- GeneralStateTests/stRandom/randomStatetest583.json | 128 +- GeneralStateTests/stRandom/randomStatetest584.json | 130 +- GeneralStateTests/stRandom/randomStatetest585.json | 129 +- GeneralStateTests/stRandom/randomStatetest586.json | 129 +- GeneralStateTests/stRandom/randomStatetest587.json | 129 +- GeneralStateTests/stRandom/randomStatetest588.json | 130 +- GeneralStateTests/stRandom/randomStatetest589.json | 128 +- GeneralStateTests/stRandom/randomStatetest59.json | 129 +- GeneralStateTests/stRandom/randomStatetest592.json | 129 +- GeneralStateTests/stRandom/randomStatetest594.json | 129 +- GeneralStateTests/stRandom/randomStatetest596.json | 129 +- GeneralStateTests/stRandom/randomStatetest597.json | 108 +- GeneralStateTests/stRandom/randomStatetest599.json | 129 +- GeneralStateTests/stRandom/randomStatetest6.json | 129 +- GeneralStateTests/stRandom/randomStatetest60.json | 129 +- GeneralStateTests/stRandom/randomStatetest600.json | 129 +- GeneralStateTests/stRandom/randomStatetest601.json | 128 +- GeneralStateTests/stRandom/randomStatetest602.json | 109 +- GeneralStateTests/stRandom/randomStatetest603.json | 129 +- GeneralStateTests/stRandom/randomStatetest604.json | 128 +- GeneralStateTests/stRandom/randomStatetest605.json | 129 +- GeneralStateTests/stRandom/randomStatetest607.json | 129 +- GeneralStateTests/stRandom/randomStatetest608.json | 129 +- GeneralStateTests/stRandom/randomStatetest609.json | 128 +- GeneralStateTests/stRandom/randomStatetest610.json | 129 +- GeneralStateTests/stRandom/randomStatetest611.json | 128 +- GeneralStateTests/stRandom/randomStatetest612.json | 130 +- GeneralStateTests/stRandom/randomStatetest615.json | 129 +- GeneralStateTests/stRandom/randomStatetest616.json | 129 +- GeneralStateTests/stRandom/randomStatetest618.json | 128 +- GeneralStateTests/stRandom/randomStatetest619.json | 130 +- GeneralStateTests/stRandom/randomStatetest62.json | 129 +- GeneralStateTests/stRandom/randomStatetest620.json | 129 +- GeneralStateTests/stRandom/randomStatetest621.json | 129 +- GeneralStateTests/stRandom/randomStatetest624.json | 130 +- GeneralStateTests/stRandom/randomStatetest625.json | 128 +- GeneralStateTests/stRandom/randomStatetest626.json | 128 +- GeneralStateTests/stRandom/randomStatetest627.json | 131 +- GeneralStateTests/stRandom/randomStatetest628.json | 131 +- GeneralStateTests/stRandom/randomStatetest629.json | 129 +- GeneralStateTests/stRandom/randomStatetest63.json | 129 +- GeneralStateTests/stRandom/randomStatetest630.json | 129 +- GeneralStateTests/stRandom/randomStatetest632.json | 130 +- GeneralStateTests/stRandom/randomStatetest633.json | 129 +- GeneralStateTests/stRandom/randomStatetest635.json | 128 +- GeneralStateTests/stRandom/randomStatetest636.json | 109 +- GeneralStateTests/stRandom/randomStatetest637.json | 129 +- GeneralStateTests/stRandom/randomStatetest638.json | 129 +- GeneralStateTests/stRandom/randomStatetest639.json | 108 +- GeneralStateTests/stRandom/randomStatetest64.json | 130 +- GeneralStateTests/stRandom/randomStatetest640.json | 128 +- GeneralStateTests/stRandom/randomStatetest641.json | 129 +- GeneralStateTests/stRandom/randomStatetest66.json | 129 +- GeneralStateTests/stRandom/randomStatetest67.json | 129 +- GeneralStateTests/stRandom/randomStatetest69.json | 129 +- GeneralStateTests/stRandom/randomStatetest7.json | 128 +- GeneralStateTests/stRandom/randomStatetest72.json | 108 +- GeneralStateTests/stRandom/randomStatetest73.json | 129 +- GeneralStateTests/stRandom/randomStatetest74.json | 129 +- GeneralStateTests/stRandom/randomStatetest75.json | 129 +- GeneralStateTests/stRandom/randomStatetest77.json | 129 +- GeneralStateTests/stRandom/randomStatetest78.json | 128 +- GeneralStateTests/stRandom/randomStatetest80.json | 129 +- GeneralStateTests/stRandom/randomStatetest81.json | 129 +- GeneralStateTests/stRandom/randomStatetest82.json | 128 +- GeneralStateTests/stRandom/randomStatetest83.json | 129 +- GeneralStateTests/stRandom/randomStatetest84.json | 128 +- GeneralStateTests/stRandom/randomStatetest85.json | 129 +- GeneralStateTests/stRandom/randomStatetest87.json | 129 +- GeneralStateTests/stRandom/randomStatetest88.json | 130 +- GeneralStateTests/stRandom/randomStatetest89.json | 129 +- GeneralStateTests/stRandom/randomStatetest9.json | 129 +- GeneralStateTests/stRandom/randomStatetest90.json | 129 +- GeneralStateTests/stRandom/randomStatetest92.json | 129 +- GeneralStateTests/stRandom/randomStatetest94.json | 131 +- GeneralStateTests/stRandom/randomStatetest95.json | 109 +- GeneralStateTests/stRandom/randomStatetest96.json | 129 +- GeneralStateTests/stRandom/randomStatetest97.json | 128 +- GeneralStateTests/stRandom/randomStatetest98.json | 130 +- .../stRecursiveCreate/recursiveCreate.json | 135 +- .../recursiveCreateReturnValue.json | 135 +- GeneralStateTests/stRefundTest/refund50_1.json | 111 +- GeneralStateTests/stRefundTest/refund50_2.json | 113 +- .../stRefundTest/refund50percentCap.json | 153 +- GeneralStateTests/stRefundTest/refund600.json | 150 +- .../stRefundTest/refundSuicide50procentCap.json | 184 +- GeneralStateTests/stRefundTest/refund_CallA.json | 154 +- .../stRefundTest/refund_CallA_OOG.json | 126 +- .../refund_CallA_notEnoughGasInCall.json | 154 +- .../refund_CallToSuicideNoStorage.json | 182 +- .../stRefundTest/refund_CallToSuicideStorage.json | 185 +- .../stRefundTest/refund_CallToSuicideTwice.json | 188 +- GeneralStateTests/stRefundTest/refund_NoOOG_1.json | 111 +- GeneralStateTests/stRefundTest/refund_OOG.json | 113 +- .../stRefundTest/refund_TxToSuicide.json | 178 +- .../stRefundTest/refund_TxToSuicideOOG.json | 113 +- .../stRefundTest/refund_changeNonZeroStorage.json | 113 +- .../stRefundTest/refund_getEtherBack.json | 112 +- .../stRefundTest/refund_multimpleSuicide.json | 145 +- .../stRefundTest/refund_singleSuicide.json | 145 +- ...rndatacopy_0_0_following_successful_create.json | 95 +- .../returndatacopy_following_call.json | 89 +- .../returndatacopy_following_create.json | 73 +- .../returndatacopy_following_failing_call.json | 71 +- ...returndatacopy_following_successful_create.json | 71 +- .../stReturnDataTest/returndatacopy_initial.json | 71 +- .../returndatacopy_initial_256.json | 149 +- .../returndatacopy_initial_big_sum.json | 71 +- .../stReturnDataTest/returndatacopy_overrun.json | 73 +- .../stReturnDataTest/returndatasize_initial.json | 87 +- .../returndatasize_initial_zero_read.json | 123 +- .../stRevertTest/LoopCallsDepthThenRevert.json | 139 +- .../stRevertTest/LoopCallsDepthThenRevert2.json | 100 +- .../stRevertTest/LoopCallsDepthThenRevert3.json | 104 +- .../stRevertTest/LoopCallsThenRevert.json | 194 +- .../LoopDelegateCallsDepthThenRevert.json | 138 +- .../stRevertTest/NashatyrevSuicideRevert.json | 106 +- GeneralStateTests/stRevertTest/RevertDepth2.json | 152 +- .../RevertDepthCreateAddressCollision.json | 543 +- .../stRevertTest/RevertDepthCreateOOG.json | 500 +- GeneralStateTests/stRevertTest/RevertOpcode.json | 261 +- .../stRevertTest/RevertOpcodeCalls.json | 626 +- .../stRevertTest/RevertOpcodeCreate.json | 177 +- .../stRevertTest/RevertOpcodeDirectCall.json | 196 +- .../stRevertTest/RevertOpcodeInCreateReturns.json | 87 +- .../stRevertTest/RevertOpcodeInInit.json | 271 +- .../stRevertTest/RevertOpcodeMultipleSubCalls.json | 1709 +- .../stRevertTest/RevertOpcodeReturn.json | 649 +- .../stRevertTest/RevertPrecompiledTouch.json | 172 +- .../stRevertTest/RevertPrecompiledTouchCC.json | 172 +- .../stRevertTest/RevertPrecompiledTouchDC.json | 172 +- GeneralStateTests/stRevertTest/RevertPrefound.json | 144 +- .../stRevertTest/RevertPrefoundCall.json | 144 +- .../stRevertTest/RevertPrefoundCallOOG.json | 113 +- .../stRevertTest/RevertPrefoundEmpty.json | 144 +- .../stRevertTest/RevertPrefoundEmptyCall.json | 140 +- .../stRevertTest/RevertPrefoundEmptyCallOOG.json | 113 +- .../stRevertTest/RevertPrefoundEmptyOOG.json | 113 +- .../stRevertTest/RevertPrefoundOOG.json | 113 +- .../RevertRemoteSubCallStorageOOG.json | 213 +- .../RevertRemoteSubCallStorageOOG2.json | 214 +- .../stRevertTest/RevertSubCallStorageOOG.json | 241 +- .../stRevertTest/RevertSubCallStorageOOG2.json | 240 +- .../stRevertTest/TouchToEmptyAccountRevert.json | 121 +- .../stRevertTest/TouchToEmptyAccountRevert2.json | 121 +- .../stRevertTest/TouchToEmptyAccountRevert3.json | 137 +- .../stSolidityTest/AmbiguousMethod.json | 104 +- .../stSolidityTest/CallInfiniteLoop.json | 102 +- .../CallLowLevelCreatesSolidity.json | 106 +- .../stSolidityTest/CallRecursiveMethods.json | 102 +- .../stSolidityTest/ContractInheritance.json | 102 +- .../stSolidityTest/CreateContractFromMethod.json | 146 +- .../stSolidityTest/RecursiveCreateContracts.json | 159 +- .../RecursiveCreateContractsCreate4Contracts.json | 170 +- .../TestBlockAndTransactionProperties.json | 102 +- .../stSolidityTest/TestContractInteraction.json | 105 +- .../stSolidityTest/TestContractSuicide.json | 105 +- .../stSolidityTest/TestCryptographicFunctions.json | 102 +- GeneralStateTests/stSolidityTest/TestKeywords.json | 104 +- GeneralStateTests/stSolidityTest/TestOverflow.json | 102 +- .../stSolidityTest/TestStoreGasPrices.json | 107 +- .../TestStructuresAndVariabless.json | 107 +- .../stSpecialTest/JUMPDEST_Attack.json | 118 +- .../stSpecialTest/JUMPDEST_AttackwithJump.json | 118 +- .../stSpecialTest/OverflowGasMakeMoney.json | 91 +- .../stSpecialTest/StackDepthLimitSEC.json | 129 +- GeneralStateTests/stSpecialTest/block504980.json | 391 +- .../stSpecialTest/deploymentError.json | 107 +- .../stSpecialTest/failed_tx_xcf416c53.json | 113 +- GeneralStateTests/stSpecialTest/gasPrice0.json | 103 +- GeneralStateTests/stSpecialTest/makeMoney.json | 134 +- GeneralStateTests/stSpecialTest/sha3_deja.json | 103 +- GeneralStateTests/stSpecialTest/txCost-sec73.json | 104 +- GeneralStateTests/stSpecialTest/tx_e1c174e2.json | 143 +- GeneralStateTests/stStackTests/shallowStack.json | 3293 +- GeneralStateTests/stStackTests/stackOverflow.json | 699 +- .../stStackTests/stackOverflowDUP.json | 699 +- .../stStackTests/stackOverflowM1.json | 715 +- .../stStackTests/stackOverflowM1DUP.json | 715 +- .../stStackTests/stackOverflowM1PUSH.json | 1315 +- .../stStackTests/stackOverflowPUSH.json | 1299 +- .../stStaticCall/static_ABAcalls0.json | 210 +- .../stStaticCall/static_ABAcalls1.json | 208 +- .../stStaticCall/static_ABAcalls2.json | 225 +- .../stStaticCall/static_ABAcalls3.json | 225 +- .../stStaticCall/static_ABAcallsSuicide0.json | 198 +- .../stStaticCall/static_ABAcallsSuicide1.json | 163 +- .../stStaticCall/static_CALL_OneVCallSuicide.json | 117 +- .../stStaticCall/static_CALL_ZeroVCallSuicide.json | 117 +- .../static_CREATE_ContractSuicideDuringInit.json | 249 +- ...tractSuicideDuringInit_ThenStoreThenReturn.json | 187 +- ...CREATE_ContractSuicideDuringInit_WithValue.json | 153 +- .../static_CREATE_EmptyContractAndCallIt_0wei.json | 112 +- ...ATE_EmptyContractWithStorageAndCallIt_0wei.json | 125 +- GeneralStateTests/stStaticCall/static_Call10.json | 184 +- .../stStaticCall/static_Call1024BalanceTooLow.json | 186 +- .../static_Call1024BalanceTooLow2.json | 184 +- .../stStaticCall/static_Call1024OOG.json | 188 +- .../stStaticCall/static_Call1024PreCalls.json | 190 +- .../stStaticCall/static_Call1024PreCalls2.json | 192 +- .../stStaticCall/static_Call1024PreCalls3.json | 190 +- .../stStaticCall/static_Call1MB1024Calldepth.json | 196 +- .../stStaticCall/static_Call50000.json | 232 +- .../stStaticCall/static_Call50000_ecrec.json | 208 +- .../stStaticCall/static_Call50000_identity.json | 212 +- .../stStaticCall/static_Call50000_identity2.json | 179 +- .../stStaticCall/static_Call50000_rip160.json | 181 +- .../stStaticCall/static_Call50000_sha256.json | 222 +- .../static_Call50000bytesContract50_1.json | 234 +- .../static_Call50000bytesContract50_2.json | 236 +- .../static_Call50000bytesContract50_3.json | 234 +- ...ndCallcodeConsumeMoreGasThenTransactionHas.json | 204 +- ...c_CallAskMoreGasOnDepth2ThenTransactionHas.json | 238 +- ...c_CallContractToCreateContractAndCallItOOG.json | 177 +- .../static_CallContractToCreateContractOOG.json | 150 +- ...ic_CallContractToCreateContractOOGBonusGas.json | 158 +- ...teContractWhichWouldCreateContractIfCalled.json | 121 +- .../stStaticCall/static_CallEcrecover0.json | 107 +- .../stStaticCall/static_CallEcrecover0_0input.json | 460 +- .../static_CallEcrecover0_Gas2999.json | 105 +- .../stStaticCall/static_CallEcrecover0_NoGas.json | 103 +- .../static_CallEcrecover0_completeReturnValue.json | 106 +- .../static_CallEcrecover0_gas3000.json | 107 +- ...atic_CallEcrecover0_overlappingInputOutput.json | 107 +- .../stStaticCall/static_CallEcrecover1.json | 105 +- .../stStaticCall/static_CallEcrecover2.json | 105 +- .../stStaticCall/static_CallEcrecover3.json | 106 +- .../stStaticCall/static_CallEcrecover80.json | 107 +- .../static_CallEcrecoverCheckLength.json | 107 +- .../static_CallEcrecoverCheckLengthWrongV.json | 107 +- .../static_CallEcrecoverH_prefixed0.json | 107 +- .../static_CallEcrecoverR_prefixed0.json | 107 +- .../static_CallEcrecoverS_prefixed0.json | 107 +- .../static_CallEcrecoverV_prefixed0.json | 107 +- .../static_CallGoesOOGOnSecondLevel.json | 128 +- .../static_CallGoesOOGOnSecondLevel2.json | 168 +- .../stStaticCall/static_CallIdentitiy_1.json | 106 +- .../static_CallIdentity_1_nonzeroValue.json | 109 +- .../stStaticCall/static_CallIdentity_2.json | 106 +- .../stStaticCall/static_CallIdentity_3.json | 106 +- .../stStaticCall/static_CallIdentity_4.json | 106 +- .../stStaticCall/static_CallIdentity_4_gas17.json | 106 +- .../stStaticCall/static_CallIdentity_4_gas18.json | 106 +- .../stStaticCall/static_CallIdentity_5.json | 105 +- .../stStaticCall/static_CallLoseGasOOG.json | 106 +- .../stStaticCall/static_CallRecursiveBomb0.json | 117 +- ...atic_CallRecursiveBomb0_OOG_atMaxCallDepth.json | 113 +- .../stStaticCall/static_CallRecursiveBomb1.json | 114 +- .../stStaticCall/static_CallRecursiveBomb2.json | 114 +- .../stStaticCall/static_CallRecursiveBomb3.json | 114 +- .../stStaticCall/static_CallRecursiveBombLog.json | 114 +- .../stStaticCall/static_CallRecursiveBombLog2.json | 117 +- .../static_CallRecursiveBombPreCall.json | 113 +- .../static_CallRecursiveBombPreCall2.json | 113 +- .../stStaticCall/static_CallRipemd160_1.json | 106 +- .../stStaticCall/static_CallRipemd160_2.json | 106 +- .../stStaticCall/static_CallRipemd160_3.json | 106 +- .../static_CallRipemd160_3_postfixed0.json | 106 +- .../static_CallRipemd160_3_prefixed0.json | 106 +- .../stStaticCall/static_CallRipemd160_4.json | 106 +- .../static_CallRipemd160_4_gas719.json | 105 +- .../stStaticCall/static_CallRipemd160_5.json | 105 +- .../stStaticCall/static_CallSha256_1.json | 106 +- .../static_CallSha256_1_nonzeroValue.json | 109 +- .../stStaticCall/static_CallSha256_2.json | 106 +- .../stStaticCall/static_CallSha256_3.json | 106 +- .../stStaticCall/static_CallSha256_3_postfix0.json | 106 +- .../stStaticCall/static_CallSha256_3_prefix0.json | 106 +- .../stStaticCall/static_CallSha256_4.json | 106 +- .../stStaticCall/static_CallSha256_4_gas99.json | 106 +- .../stStaticCall/static_CallSha256_5.json | 105 +- .../static_CallToNameRegistrator0.json | 112 +- .../stStaticCall/static_CallToReturn1.json | 113 +- .../stStaticCall/static_CalltoReturn2.json | 113 +- .../stStaticCall/static_CheckCallCostOOG.json | 166 +- .../stStaticCall/static_CheckOpcodes.json | 416 +- .../stStaticCall/static_CheckOpcodes2.json | 973 +- .../stStaticCall/static_CheckOpcodes3.json | 981 +- .../stStaticCall/static_CheckOpcodes4.json | 269 +- .../stStaticCall/static_CheckOpcodes5.json | 1009 +- ...xecuteCallThatAskForeGasThenTrabsactionHas.json | 210 +- .../static_InternalCallHittingGasLimit.json | 111 +- .../static_InternalCallHittingGasLimit2.json | 113 +- .../static_InternlCallStoreClearsOOG.json | 135 +- .../static_LoopCallsDepthThenRevert.json | 122 +- .../static_LoopCallsDepthThenRevert2.json | 99 +- .../static_LoopCallsDepthThenRevert3.json | 102 +- .../stStaticCall/static_LoopCallsThenRevert.json | 163 +- .../stStaticCall/static_PostToReturn1.json | 112 +- .../stStaticCall/static_RETURN_Bounds.json | 239 +- .../stStaticCall/static_RETURN_BoundsOOG.json | 229 +- .../stStaticCall/static_RawCallGasAsk.json | 296 +- .../stStaticCall/static_Return50000_2.json | 126 +- .../stStaticCall/static_ReturnTest.json | 113 +- .../stStaticCall/static_ReturnTest2.json | 114 +- .../stStaticCall/static_RevertDepth2.json | 152 +- .../stStaticCall/static_RevertOpcodeCalls.json | 153 +- .../static_ZeroValue_CALL_OOGRevert.json | 113 +- .../static_ZeroValue_SUICIDE_OOGRevert.json | 119 +- .../stStaticCall/static_callBasic.json | 307 +- .../stStaticCall/static_callChangeRevert.json | 260 +- .../stStaticCall/static_callCreate.json | 272 +- .../stStaticCall/static_callCreate2.json | 237 +- .../stStaticCall/static_callCreate3.json | 115 +- .../stStaticCall/static_callOutput1.json | 113 +- .../stStaticCall/static_callOutput2.json | 113 +- .../stStaticCall/static_callOutput3.json | 113 +- .../stStaticCall/static_callOutput3Fail.json | 113 +- .../stStaticCall/static_callOutput3partial.json | 113 +- .../static_callOutput3partialFail.json | 113 +- .../static_callToCallCodeOpCodeCheck.json | 121 +- .../stStaticCall/static_callToCallOpCodeCheck.json | 121 +- .../static_callToDelCallOpCodeCheck.json | 121 +- .../static_callToStaticOpCodeCheck.json | 121 +- .../stStaticCall/static_callWithHighValue.json | 112 +- .../static_callWithHighValueAndGasOOG.json | 112 +- .../static_callWithHighValueAndOOGatTxLevel.json | 114 +- .../static_callWithHighValueOOGinCall.json | 111 +- .../static_call_OOG_additionalGasCosts1.json | 103 +- .../static_call_OOG_additionalGasCosts2.json | 116 +- .../stStaticCall/static_call_value_inherit.json | 116 +- .../static_call_value_inherit_from_call.json | 124 +- .../stStaticCall/static_callcall_00.json | 238 +- .../stStaticCall/static_callcall_00_OOGE.json | 240 +- .../stStaticCall/static_callcall_00_OOGE_1.json | 226 +- .../stStaticCall/static_callcall_00_OOGE_2.json | 203 +- .../static_callcall_00_SuicideEnd.json | 128 +- .../stStaticCall/static_callcallcall_000.json | 270 +- .../stStaticCall/static_callcallcall_000_OOGE.json | 246 +- .../static_callcallcall_000_OOGMAfter.json | 151 +- .../static_callcallcall_000_OOGMAfter2.json | 151 +- .../static_callcallcall_000_OOGMBefore.json | 150 +- .../static_callcallcall_000_SuicideEnd.json | 133 +- .../static_callcallcall_000_SuicideMiddle.json | 137 +- .../static_callcallcall_ABCB_RECURSIVE.json | 137 +- .../stStaticCall/static_callcallcallcode_001.json | 248 +- .../static_callcallcallcode_001_2.json | 246 +- .../static_callcallcallcode_001_OOGE.json | 154 +- .../static_callcallcallcode_001_OOGE_2.json | 208 +- .../static_callcallcallcode_001_OOGMAfter.json | 204 +- .../static_callcallcallcode_001_OOGMAfter2.json | 196 +- .../static_callcallcallcode_001_OOGMAfter_2.json | 204 +- .../static_callcallcallcode_001_OOGMAfter_3.json | 196 +- .../static_callcallcallcode_001_OOGMBefore.json | 202 +- .../static_callcallcallcode_001_OOGMBefore2.json | 196 +- .../static_callcallcallcode_001_SuicideEnd.json | 152 +- .../static_callcallcallcode_001_SuicideEnd2.json | 139 +- .../static_callcallcallcode_001_SuicideMiddle.json | 151 +- ...static_callcallcallcode_001_SuicideMiddle2.json | 138 +- .../static_callcallcallcode_ABCB_RECURSIVE.json | 137 +- .../static_callcallcallcode_ABCB_RECURSIVE2.json | 137 +- .../stStaticCall/static_callcallcode_01_2.json | 204 +- .../static_callcallcode_01_OOGE_2.json | 168 +- .../static_callcallcode_01_SuicideEnd.json | 138 +- .../static_callcallcode_01_SuicideEnd2.json | 129 +- .../stStaticCall/static_callcallcodecall_010.json | 130 +- .../static_callcallcodecall_010_2.json | 188 +- .../static_callcallcodecall_010_OOGE.json | 176 +- .../static_callcallcodecall_010_OOGE_2.json | 176 +- .../static_callcallcodecall_010_OOGMAfter.json | 178 +- .../static_callcallcodecall_010_OOGMAfter2.json | 176 +- .../static_callcallcodecall_010_OOGMAfter_2.json | 178 +- .../static_callcallcodecall_010_OOGMAfter_3.json | 178 +- .../static_callcallcodecall_010_OOGMBefore.json | 178 +- .../static_callcallcodecall_010_OOGMBefore2.json | 178 +- .../static_callcallcodecall_010_SuicideEnd.json | 145 +- .../static_callcallcodecall_010_SuicideEnd2.json | 136 +- .../static_callcallcodecall_010_SuicideMiddle.json | 130 +- ...static_callcallcodecall_010_SuicideMiddle2.json | 143 +- .../static_callcallcodecall_ABCB_RECURSIVE.json | 134 +- .../static_callcallcodecall_ABCB_RECURSIVE2.json | 134 +- .../static_callcallcodecallcode_011.json | 132 +- .../static_callcallcodecallcode_011_2.json | 188 +- .../static_callcallcodecallcode_011_OOGE.json | 176 +- .../static_callcallcodecallcode_011_OOGE_2.json | 188 +- .../static_callcallcodecallcode_011_OOGMAfter.json | 176 +- ...static_callcallcodecallcode_011_OOGMAfter2.json | 176 +- ...tatic_callcallcodecallcode_011_OOGMAfter_1.json | 176 +- ...tatic_callcallcodecallcode_011_OOGMAfter_2.json | 176 +- ...static_callcallcodecallcode_011_OOGMBefore.json | 174 +- ...tatic_callcallcodecallcode_011_OOGMBefore2.json | 241 +- ...static_callcallcodecallcode_011_SuicideEnd.json | 131 +- ...tatic_callcallcodecallcode_011_SuicideEnd2.json | 130 +- ...tic_callcallcodecallcode_011_SuicideMiddle.json | 133 +- ...ic_callcallcodecallcode_011_SuicideMiddle2.json | 133 +- ...static_callcallcodecallcode_ABCB_RECURSIVE.json | 134 +- ...tatic_callcallcodecallcode_ABCB_RECURSIVE2.json | 134 +- .../stStaticCall/static_callcode_checkPC.json | 113 +- .../stStaticCall/static_callcodecall_10.json | 122 +- .../stStaticCall/static_callcodecall_10_2.json | 122 +- .../stStaticCall/static_callcodecall_10_OOGE.json | 168 +- .../static_callcodecall_10_OOGE_2.json | 181 +- .../static_callcodecall_10_SuicideEnd.json | 165 +- .../static_callcodecall_10_SuicideEnd2.json | 159 +- .../stStaticCall/static_callcodecallcall_100.json | 130 +- .../static_callcodecallcall_100_2.json | 186 +- .../static_callcodecallcall_100_OOGE.json | 176 +- .../static_callcodecallcall_100_OOGE2.json | 176 +- .../static_callcodecallcall_100_OOGMAfter.json | 130 +- .../static_callcodecallcall_100_OOGMAfter2.json | 186 +- .../static_callcodecallcall_100_OOGMAfter_2.json | 130 +- .../static_callcodecallcall_100_OOGMAfter_3.json | 186 +- .../static_callcodecallcall_100_OOGMBefore.json | 176 +- .../static_callcodecallcall_100_OOGMBefore2.json | 270 +- .../static_callcodecallcall_100_SuicideEnd.json | 130 +- .../static_callcodecallcall_100_SuicideEnd2.json | 130 +- .../static_callcodecallcall_100_SuicideMiddle.json | 130 +- ...static_callcodecallcall_100_SuicideMiddle2.json | 170 +- .../static_callcodecallcall_ABCB_RECURSIVE.json | 122 +- .../static_callcodecallcall_ABCB_RECURSIVE2.json | 174 +- .../static_callcodecallcallcode_101.json | 130 +- .../static_callcodecallcallcode_101_2.json | 188 +- .../static_callcodecallcallcode_101_OOGE.json | 130 +- .../static_callcodecallcallcode_101_OOGE_2.json | 130 +- .../static_callcodecallcallcode_101_OOGMAfter.json | 130 +- ...static_callcodecallcallcode_101_OOGMAfter2.json | 170 +- ...tatic_callcodecallcallcode_101_OOGMAfter_1.json | 220 +- ...tatic_callcodecallcallcode_101_OOGMAfter_3.json | 220 +- ...static_callcodecallcallcode_101_OOGMBefore.json | 130 +- ...tatic_callcodecallcallcode_101_OOGMBefore2.json | 170 +- ...static_callcodecallcallcode_101_SuicideEnd.json | 130 +- ...tatic_callcodecallcallcode_101_SuicideEnd2.json | 170 +- ...tic_callcodecallcallcode_101_SuicideMiddle.json | 130 +- ...ic_callcodecallcallcode_101_SuicideMiddle2.json | 170 +- ...static_callcodecallcallcode_ABCB_RECURSIVE.json | 122 +- ...tatic_callcodecallcallcode_ABCB_RECURSIVE2.json | 270 +- .../static_callcodecallcodecall_110.json | 130 +- .../static_callcodecallcodecall_1102.json | 212 +- .../static_callcodecallcodecall_110_2.json | 236 +- .../static_callcodecallcodecall_110_OOGE.json | 130 +- .../static_callcodecallcodecall_110_OOGE2.json | 212 +- .../static_callcodecallcodecall_110_OOGMAfter.json | 130 +- ...static_callcodecallcodecall_110_OOGMAfter2.json | 227 +- ...tatic_callcodecallcodecall_110_OOGMAfter_2.json | 130 +- ...tatic_callcodecallcodecall_110_OOGMAfter_3.json | 130 +- ...static_callcodecallcodecall_110_OOGMBefore.json | 130 +- ...tatic_callcodecallcodecall_110_OOGMBefore2.json | 212 +- ...static_callcodecallcodecall_110_SuicideEnd.json | 167 +- ...tatic_callcodecallcodecall_110_SuicideEnd2.json | 167 +- ...tic_callcodecallcodecall_110_SuicideMiddle.json | 127 +- ...ic_callcodecallcodecall_110_SuicideMiddle2.json | 127 +- ...static_callcodecallcodecall_ABCB_RECURSIVE.json | 122 +- ...tatic_callcodecallcodecall_ABCB_RECURSIVE2.json | 162 +- ...ic_callcodecallcodecallcode_111_SuicideEnd.json | 130 +- .../stStaticCall/static_calldelcode_01.json | 122 +- .../stStaticCall/static_calldelcode_01_OOGE.json | 168 +- ...eCallThatAskMoreGasThenTransactionProvided.json | 294 +- ...ionOOGdontLeaveEmptyContractViaTransaction.json | 117 +- .../stStaticCall/static_log0_emptyMem.json | 114 +- .../static_log0_logMemStartTooHigh.json | 112 +- .../static_log0_logMemsizeTooHigh.json | 112 +- .../stStaticCall/static_log0_logMemsizeZero.json | 113 +- .../stStaticCall/static_log0_nonEmptyMem.json | 113 +- .../static_log0_nonEmptyMem_logMemSize1.json | 113 +- ...log0_nonEmptyMem_logMemSize1_logMemStart31.json | 113 +- .../stStaticCall/static_log1_MaxTopic.json | 113 +- .../stStaticCall/static_log1_emptyMem.json | 113 +- .../static_log1_logMemStartTooHigh.json | 112 +- .../static_log1_logMemsizeTooHigh.json | 112 +- .../stStaticCall/static_log1_logMemsizeZero.json | 113 +- .../stStaticCall/static_log_Caller.json | 305 +- .../stStaticCall/static_makeMoney.json | 115 +- .../stStaticCall/static_refund_CallA.json | 120 +- .../static_refund_CallToSuicideNoStorage.json | 154 +- .../static_refund_CallToSuicideTwice.json | 156 +- .../stSystemOperationsTest/ABAcalls0.json | 118 +- .../stSystemOperationsTest/ABAcalls1.json | 118 +- .../stSystemOperationsTest/ABAcalls2.json | 138 +- .../stSystemOperationsTest/ABAcalls3.json | 138 +- .../stSystemOperationsTest/ABAcallsSuicide0.json | 113 +- .../stSystemOperationsTest/ABAcallsSuicide1.json | 182 +- .../stSystemOperationsTest/Call10.json | 106 +- .../stSystemOperationsTest/CallRecursiveBomb0.json | 136 +- .../CallRecursiveBomb0_OOG_atMaxCallDepth.json | 122 +- .../stSystemOperationsTest/CallRecursiveBomb1.json | 122 +- .../stSystemOperationsTest/CallRecursiveBomb2.json | 122 +- .../stSystemOperationsTest/CallRecursiveBomb3.json | 120 +- .../CallRecursiveBombLog.json | 136 +- .../CallRecursiveBombLog2.json | 136 +- .../CallToNameRegistrator0.json | 112 +- .../CallToNameRegistratorAddressTooBigLeft.json | 111 +- .../CallToNameRegistratorAddressTooBigRight.json | 112 +- ...ameRegistratorMemOOGAndInsufficientBalance.json | 111 +- .../CallToNameRegistratorNotMuchMemory0.json | 111 +- .../CallToNameRegistratorNotMuchMemory1.json | 111 +- .../CallToNameRegistratorOutOfGas.json | 111 +- .../CallToNameRegistratorTooMuchMemory0.json | 111 +- .../CallToNameRegistratorTooMuchMemory1.json | 111 +- .../CallToNameRegistratorTooMuchMemory2.json | 111 +- .../CallToNameRegistratorZeorSizeMemExpansion.json | 111 +- .../stSystemOperationsTest/CallToReturn1.json | 111 +- .../CallToReturn1ForDynamicJump0.json | 109 +- .../CallToReturn1ForDynamicJump1.json | 109 +- .../stSystemOperationsTest/CalltoReturn2.json | 112 +- .../CreateHashCollision.json | 139 +- .../stSystemOperationsTest/PostToReturn1.json | 112 +- .../TestNameRegistrator.json | 103 +- .../balanceInputAddressTooBig.json | 105 +- .../stSystemOperationsTest/callValue.json | 105 +- .../stSystemOperationsTest/callcodeTo0.json | 106 +- .../callcodeToNameRegistrator0.json | 110 +- .../callcodeToNameRegistratorAddresTooBigLeft.json | 110 +- ...callcodeToNameRegistratorAddresTooBigRight.json | 111 +- .../callcodeToNameRegistratorZeroMemExpanion.json | 110 +- .../stSystemOperationsTest/callcodeToReturn1.json | 113 +- .../callerAccountBalance.json | 105 +- .../createNameRegistrator.json | 106 +- .../createNameRegistratorOOG_MemExpansionOOV.json | 105 +- .../createNameRegistratorOutOfMemoryBonds0.json | 105 +- .../createNameRegistratorOutOfMemoryBonds1.json | 105 +- .../createNameRegistratorValueTooHigh.json | 103 +- .../createNameRegistratorZeroMem.json | 106 +- .../createNameRegistratorZeroMem2.json | 106 +- .../createNameRegistratorZeroMemExpansion.json | 106 +- .../createWithInvalidOpcode.json | 103 +- .../currentAccountBalance.json | 105 +- .../stSystemOperationsTest/extcodecopy.json | 130 +- .../stSystemOperationsTest/return0.json | 103 +- .../stSystemOperationsTest/return1.json | 103 +- .../stSystemOperationsTest/return2.json | 103 +- .../stSystemOperationsTest/suicideAddress.json | 122 +- .../stSystemOperationsTest/suicideCaller.json | 124 +- .../suicideCallerAddresTooBigLeft.json | 124 +- .../suicideCallerAddresTooBigRight.json | 103 +- .../stSystemOperationsTest/suicideCoinbase.json | 118 +- .../suicideNotExistingAccount.json | 103 +- .../stSystemOperationsTest/suicideOrigin.json | 122 +- .../suicideSendEtherPostDeath.json | 110 +- .../suicideSendEtherToMe.json | 124 +- .../stSystemOperationsTest/testRandomTest.json | 106 +- .../stTransactionTest/ContractStoreClearsOOG.json | 119 +- .../ContractStoreClearsSuccess.json | 107 +- .../stTransactionTest/CreateMessageReverted.json | 107 +- .../stTransactionTest/CreateMessageSuccess.json | 109 +- .../CreateTransactionReverted.json | 94 +- .../CreateTransactionSuccess.json | 143 +- .../stTransactionTest/EmptyTransaction.json | 94 +- .../stTransactionTest/EmptyTransaction2.json | 155 +- .../stTransactionTest/EmptyTransaction3.json | 138 +- .../stTransactionTest/HighGasLimit.json | 96 +- .../InternalCallHittingGasLimit.json | 113 +- .../InternalCallHittingGasLimit2.json | 113 +- .../InternalCallHittingGasLimitSuccess.json | 114 +- .../InternlCallStoreClearsOOG.json | 132 +- .../InternlCallStoreClearsSucces.json | 122 +- .../stTransactionTest/OverflowGasRequire.json | 94 +- .../stTransactionTest/OverflowGasRequire2.json | 94 +- .../stTransactionTest/RefundOverflow.json | 94 +- .../stTransactionTest/RefundOverflow2.json | 94 +- .../StoreClearsAndInternlCallStoreClearsOOG.json | 136 +- ...toreClearsAndInternlCallStoreClearsSuccess.json | 124 +- .../stTransactionTest/StoreGasOnCreate.json | 120 +- ...icidesAndInternlCallSuicidesBonusGasAtCall.json | 130 +- ...AndInternlCallSuicidesBonusGasAtCallFailed.json | 112 +- .../SuicidesAndInternlCallSuicidesOOG.json | 118 +- .../SuicidesAndInternlCallSuicidesSuccess.json | 164 +- ...SuicidesAndSendMoneyToItselfEtherDestroyed.json | 124 +- .../stTransactionTest/SuicidesMixingCoinbase.json | 166 +- .../SuicidesStopAfterSuicide.json | 119 +- .../stTransactionTest/TransactionDataCosts652.json | 95 +- ...ransactionFromCoinbaseHittingBlockGasLimit.json | 95 +- ...ansactionFromCoinbaseHittingBlockGasLimit1.json | 96 +- .../TransactionFromCoinbaseNotEnoughFounds.json | 95 +- .../stTransactionTest/TransactionNonceCheck.json | 95 +- .../stTransactionTest/TransactionNonceCheck2.json | 95 +- .../TransactionSendingToEmpty.json | 113 +- .../TransactionSendingToZero.json | 98 +- .../TransactionToAddressh160minusOne.json | 93 +- .../stTransactionTest/TransactionToItself.json | 96 +- .../TransactionToItselfNotEnoughFounds.json | 95 +- ...serTransactionGasLimitIsTooLowWhenZeroCost.json | 96 +- .../stTransactionTest/UserTransactionZeroCost.json | 139 +- .../UserTransactionZeroCostWithData.json | 172 +- .../zeroSigTransacrionCreate.json | 626 +- .../zeroSigTransacrionCreatePrice0.json | 627 +- .../stTransactionTest/zeroSigTransaction.json | 1101 +- .../zeroSigTransaction0Price.json | 780 +- .../zeroSigTransactionInvChainID.json | 558 +- .../zeroSigTransactionInvNonce.json | 577 +- .../zeroSigTransactionInvNonce2.json | 577 +- .../stTransactionTest/zeroSigTransactionOOG.json | 783 +- .../zeroSigTransactionOrigin.json | 612 +- .../zeroSigTransactionToZero.json | 1051 +- .../zeroSigTransactionToZero2.json | 992 +- .../createNameRegistratorPerTxsAfter.json | 130 +- .../createNameRegistratorPerTxsAt.json | 130 +- .../createNameRegistratorPerTxsBefore.json | 130 +- ...eateNameRegistratorPerTxsNotEnoughGasAfter.json | 113 +- .../createNameRegistratorPerTxsNotEnoughGasAt.json | 109 +- ...ateNameRegistratorPerTxsNotEnoughGasBefore.json | 109 +- .../delegatecallAfterTransition.json | 130 +- .../stTransitionTest/delegatecallAtTransition.json | 128 +- .../delegatecallBeforeTransition.json | 126 +- .../stWalletTest/dayLimitConstruction.json | 202 +- .../stWalletTest/dayLimitConstructionOOG.json | 125 +- .../stWalletTest/dayLimitConstructionPartial.json | 158 +- .../stWalletTest/dayLimitResetSpentToday.json | 109 +- .../stWalletTest/dayLimitSetDailyLimit.json | 109 +- .../stWalletTest/dayLimitSetDailyLimitNoData.json | 108 +- .../stWalletTest/multiOwnedAddOwner.json | 110 +- .../stWalletTest/multiOwnedAddOwnerAddMyself.json | 109 +- .../stWalletTest/multiOwnedChangeOwner.json | 108 +- .../multiOwnedChangeOwnerNoArgument.json | 107 +- .../multiOwnedChangeOwner_fromNotOwner.json | 109 +- .../multiOwnedChangeOwner_toIsOwner.json | 109 +- .../multiOwnedChangeRequirementTo0.json | 107 +- .../multiOwnedChangeRequirementTo1.json | 108 +- .../multiOwnedChangeRequirementTo2.json | 109 +- .../multiOwnedConstructionCorrect.json | 161 +- .../multiOwnedConstructionNotEnoughGas.json | 104 +- .../multiOwnedConstructionNotEnoughGasPartial.json | 130 +- .../stWalletTest/multiOwnedIsOwnerFalse.json | 108 +- .../stWalletTest/multiOwnedIsOwnerTrue.json | 108 +- .../stWalletTest/multiOwnedRemoveOwner.json | 108 +- .../multiOwnedRemoveOwnerByNonOwner.json | 182 +- .../stWalletTest/multiOwnedRemoveOwner_mySelf.json | 109 +- .../multiOwnedRemoveOwner_ownerIsNotOwner.json | 109 +- .../stWalletTest/multiOwnedRevokeNothing.json | 108 +- .../walletAddOwnerRemovePendingTransaction.json | 201 +- .../walletChangeOwnerRemovePendingTransaction.json | 195 +- ...tChangeRequirementRemovePendingTransaction.json | 195 +- GeneralStateTests/stWalletTest/walletConfirm.json | 219 +- .../stWalletTest/walletConstruction.json | 202 +- .../stWalletTest/walletConstructionOOG.json | 218 +- .../stWalletTest/walletConstructionPartial.json | 157 +- GeneralStateTests/stWalletTest/walletDefault.json | 109 +- .../stWalletTest/walletDefaultWithOutValue.json | 118 +- .../walletExecuteOverDailyLimitMultiOwner.json | 117 +- .../walletExecuteOverDailyLimitOnlyOneOwner.json | 113 +- ...walletExecuteOverDailyLimitOnlyOneOwnerNew.json | 113 +- .../stWalletTest/walletExecuteUnderDailyLimit.json | 114 +- GeneralStateTests/stWalletTest/walletKill.json | 100 +- .../stWalletTest/walletKillNotByOwner.json | 185 +- .../stWalletTest/walletKillToWallet.json | 100 +- .../walletRemoveOwnerRemovePendingTransaction.json | 189 +- .../ZeroValue_CALLCODE_OOGRevert.json | 113 +- .../ZeroValue_CALLCODE_ToEmpty_OOGRevert.json | 123 +- ...oValue_CALLCODE_ToNonZeroBalance_OOGRevert.json | 119 +- ...roValue_CALLCODE_ToOneStorageKey_OOGRevert.json | 121 +- .../ZeroValue_CALL_OOGRevert.json | 113 +- .../ZeroValue_CALL_ToEmpty_OOGRevert.json | 120 +- .../ZeroValue_CALL_ToNonZeroBalance_OOGRevert.json | 119 +- .../ZeroValue_CALL_ToOneStorageKey_OOGRevert.json | 121 +- .../ZeroValue_DELEGATECALL_OOGRevert.json | 113 +- .../ZeroValue_DELEGATECALL_ToEmpty_OOGRevert.json | 123 +- ...ue_DELEGATECALL_ToNonZeroBalance_OOGRevert.json | 119 +- ...lue_DELEGATECALL_ToOneStorageKey_OOGRevert.json | 121 +- .../ZeroValue_SUICIDE_OOGRevert.json | 119 +- .../ZeroValue_SUICIDE_ToEmpty_OOGRevert.json | 125 +- ...roValue_SUICIDE_ToNonZeroBalance_OOGRevert.json | 124 +- ...eroValue_SUICIDE_ToOneStorageKey_OOGRevert.json | 127 +- .../ZeroValue_TransactionCALL_OOGRevert.json | 98 +- ...eroValue_TransactionCALL_ToEmpty_OOGRevert.json | 105 +- ...TransactionCALL_ToNonZeroBalance_OOGRevert.json | 104 +- ..._TransactionCALL_ToOneStorageKey_OOGRevert.json | 106 +- ...eroValue_TransactionCALLwithData_OOGRevert.json | 98 +- ..._TransactionCALLwithData_ToEmpty_OOGRevert.json | 105 +- ...ionCALLwithData_ToNonZeroBalance_OOGRevert.json | 104 +- ...tionCALLwithData_ToOneStorageKey_OOGRevert.json | 106 +- .../stZeroCallsTest/ZeroValue_CALL.json | 156 +- .../stZeroCallsTest/ZeroValue_CALLCODE.json | 131 +- .../ZeroValue_CALLCODE_ToEmpty.json | 144 +- .../ZeroValue_CALLCODE_ToNonZeroBalance.json | 136 +- .../ZeroValue_CALLCODE_ToOneStorageKey.json | 140 +- .../stZeroCallsTest/ZeroValue_CALL_ToEmpty.json | 162 +- .../ZeroValue_CALL_ToNonZeroBalance.json | 137 +- .../ZeroValue_CALL_ToOneStorageKey.json | 164 +- .../stZeroCallsTest/ZeroValue_DELEGATECALL.json | 147 +- .../ZeroValue_DELEGATECALL_ToEmpty.json | 165 +- .../ZeroValue_DELEGATECALL_ToNonZeroBalance.json | 153 +- .../ZeroValue_DELEGATECALL_ToOneStorageKey.json | 159 +- .../stZeroCallsTest/ZeroValue_SUICIDE.json | 126 +- .../stZeroCallsTest/ZeroValue_SUICIDE_ToEmpty.json | 132 +- .../ZeroValue_SUICIDE_ToNonZeroBalance.json | 128 +- .../ZeroValue_SUICIDE_ToOneStorageKey.json | 130 +- .../stZeroCallsTest/ZeroValue_TransactionCALL.json | 118 +- .../ZeroValue_TransactionCALL_ToEmpty.json | 118 +- ...ZeroValue_TransactionCALL_ToNonZeroBalance.json | 114 +- .../ZeroValue_TransactionCALL_ToOneStorageKey.json | 114 +- .../ZeroValue_TransactionCALLwithData.json | 118 +- .../ZeroValue_TransactionCALLwithData_ToEmpty.json | 118 +- ...e_TransactionCALLwithData_ToNonZeroBalance.json | 114 +- ...ue_TransactionCALLwithData_ToOneStorageKey.json | 119 +- .../stZeroKnowledge/ecadd_0-0_0-0_21000_0.json | 368 +- .../stZeroKnowledge/ecadd_0-0_0-0_21000_128.json | 366 +- .../stZeroKnowledge/ecadd_0-0_0-0_21000_192.json | 366 +- .../stZeroKnowledge/ecadd_0-0_0-0_21000_64.json | 368 +- .../stZeroKnowledge/ecadd_0-0_0-0_21000_80.json | 366 +- .../stZeroKnowledge/ecadd_0-0_0-0_25000_0.json | 367 +- .../stZeroKnowledge/ecadd_0-0_0-0_25000_128.json | 367 +- .../stZeroKnowledge/ecadd_0-0_0-0_25000_192.json | 367 +- .../stZeroKnowledge/ecadd_0-0_0-0_25000_64.json | 367 +- .../stZeroKnowledge/ecadd_0-0_0-0_25000_80.json | 367 +- .../stZeroKnowledge/ecadd_0-0_1-2_21000_128.json | 366 +- .../stZeroKnowledge/ecadd_0-0_1-2_21000_192.json | 366 +- .../stZeroKnowledge/ecadd_0-0_1-2_25000_128.json | 367 +- .../stZeroKnowledge/ecadd_0-0_1-2_25000_192.json | 367 +- .../stZeroKnowledge/ecadd_0-0_1-3_21000_128.json | 366 +- .../stZeroKnowledge/ecadd_0-0_1-3_25000_128.json | 367 +- .../stZeroKnowledge/ecadd_0-3_1-2_21000_128.json | 366 +- .../stZeroKnowledge/ecadd_0-3_1-2_25000_128.json | 367 +- .../stZeroKnowledge/ecadd_1-2_0-0_21000_128.json | 366 +- .../stZeroKnowledge/ecadd_1-2_0-0_21000_192.json | 366 +- .../stZeroKnowledge/ecadd_1-2_0-0_21000_64.json | 366 +- .../stZeroKnowledge/ecadd_1-2_0-0_25000_128.json | 367 +- .../stZeroKnowledge/ecadd_1-2_0-0_25000_192.json | 367 +- .../stZeroKnowledge/ecadd_1-2_0-0_25000_64.json | 367 +- .../stZeroKnowledge/ecadd_1-2_1-2_21000_128.json | 366 +- .../stZeroKnowledge/ecadd_1-2_1-2_21000_192.json | 366 +- .../stZeroKnowledge/ecadd_1-2_1-2_25000_128.json | 367 +- .../stZeroKnowledge/ecadd_1-2_1-2_25000_192.json | 367 +- .../stZeroKnowledge/ecadd_1-3_0-0_21000_80.json | 366 +- .../stZeroKnowledge/ecadd_1-3_0-0_25000_80.json | 367 +- .../ecadd_1145-3932_1145-4651_21000_192.json | 366 +- .../ecadd_1145-3932_1145-4651_25000_192.json | 367 +- .../ecadd_1145-3932_2969-1336_21000_128.json | 366 +- .../ecadd_1145-3932_2969-1336_25000_128.json | 367 +- .../ecadd_6-9_19274124-124124_21000_128.json | 366 +- .../ecadd_6-9_19274124-124124_25000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-0_0_21000_0.json | 366 +- .../stZeroKnowledge/ecmul_0-0_0_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-0_0_21000_40.json | 366 +- .../stZeroKnowledge/ecmul_0-0_0_21000_64.json | 366 +- .../stZeroKnowledge/ecmul_0-0_0_21000_80.json | 366 +- .../stZeroKnowledge/ecmul_0-0_0_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-0_0_28000_0.json | 367 +- .../stZeroKnowledge/ecmul_0-0_0_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-0_0_28000_40.json | 367 +- .../stZeroKnowledge/ecmul_0-0_0_28000_64.json | 367 +- .../stZeroKnowledge/ecmul_0-0_0_28000_80.json | 367 +- .../stZeroKnowledge/ecmul_0-0_0_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-0_1_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-0_1_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-0_1_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-0_1_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-0_2_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-0_2_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-0_2_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-0_2_28000_96.json | 367 +- ...66920938463463374607431768211456_21000_128.json | 366 +- ...366920938463463374607431768211456_21000_80.json | 366 +- ...366920938463463374607431768211456_21000_96.json | 366 +- ...66920938463463374607431768211456_28000_128.json | 367 +- ...366920938463463374607431768211456_28000_80.json | 367 +- ...366920938463463374607431768211456_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-0_5616_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-0_5616_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-0_5616_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-0_5616_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-0_5617_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-0_5617_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-0_5617_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-0_5617_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-0_9935_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-0_9935_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-0_9935_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-0_9935_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-0_9_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-0_9_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-0_9_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-0_9_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-3_0_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-3_0_21000_64.json | 366 +- .../stZeroKnowledge/ecmul_0-3_0_21000_80.json | 366 +- .../stZeroKnowledge/ecmul_0-3_0_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-3_0_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-3_0_28000_64.json | 367 +- .../stZeroKnowledge/ecmul_0-3_0_28000_80.json | 367 +- .../stZeroKnowledge/ecmul_0-3_0_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-3_1_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-3_1_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-3_1_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-3_1_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-3_2_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-3_2_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-3_2_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-3_2_28000_96.json | 367 +- ...66920938463463374607431768211456_21000_128.json | 366 +- ...366920938463463374607431768211456_21000_80.json | 366 +- ...366920938463463374607431768211456_21000_96.json | 366 +- ...66920938463463374607431768211456_28000_128.json | 367 +- ...366920938463463374607431768211456_28000_80.json | 367 +- ...366920938463463374607431768211456_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-3_5616_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-3_5616_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-3_5616_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-3_5616_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-3_5617_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-3_5617_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-3_5617_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-3_5617_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-3_9935_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-3_9935_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-3_9935_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-3_9935_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_0-3_9_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_0-3_9_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_0-3_9_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_0-3_9_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-2_0_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-2_0_21000_64.json | 366 +- .../stZeroKnowledge/ecmul_1-2_0_21000_80.json | 366 +- .../stZeroKnowledge/ecmul_1-2_0_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-2_0_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-2_0_28000_64.json | 367 +- .../stZeroKnowledge/ecmul_1-2_0_28000_80.json | 367 +- .../stZeroKnowledge/ecmul_1-2_0_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-2_1_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-2_1_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-2_1_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-2_1_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-2_2_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-2_2_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-2_2_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-2_2_28000_96.json | 367 +- ...66920938463463374607431768211456_21000_128.json | 366 +- ...366920938463463374607431768211456_21000_80.json | 366 +- ...366920938463463374607431768211456_21000_96.json | 366 +- ...66920938463463374607431768211456_28000_128.json | 367 +- ...366920938463463374607431768211456_28000_80.json | 367 +- ...366920938463463374607431768211456_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-2_5616_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-2_5616_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-2_5616_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-2_5617_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-2_5617_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-2_5617_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-2_5617_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-2_616_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-2_9935_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-2_9935_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-2_9935_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-2_9935_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-2_9_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-2_9_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-2_9_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-2_9_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-3_0_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-3_0_21000_64.json | 366 +- .../stZeroKnowledge/ecmul_1-3_0_21000_80.json | 366 +- .../stZeroKnowledge/ecmul_1-3_0_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-3_0_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-3_0_28000_64.json | 367 +- .../stZeroKnowledge/ecmul_1-3_0_28000_80.json | 367 +- .../stZeroKnowledge/ecmul_1-3_0_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-3_1_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-3_1_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-3_1_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-3_1_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-3_2_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-3_2_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-3_2_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-3_2_28000_96.json | 367 +- ...66920938463463374607431768211456_21000_128.json | 366 +- ...366920938463463374607431768211456_21000_80.json | 366 +- ...366920938463463374607431768211456_21000_96.json | 366 +- ...66920938463463374607431768211456_28000_128.json | 367 +- ...366920938463463374607431768211456_28000_80.json | 367 +- ...366920938463463374607431768211456_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-3_5616_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-3_5616_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-3_5616_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-3_5616_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-3_5617_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-3_5617_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-3_5617_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-3_5617_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-3_9935_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-3_9935_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-3_9935_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-3_9935_28000_96.json | 367 +- .../stZeroKnowledge/ecmul_1-3_9_21000_128.json | 366 +- .../stZeroKnowledge/ecmul_1-3_9_21000_96.json | 366 +- .../stZeroKnowledge/ecmul_1-3_9_28000_128.json | 367 +- .../stZeroKnowledge/ecmul_1-3_9_28000_96.json | 367 +- .../ecmul_7827-6598_0_21000_128.json | 366 +- .../ecmul_7827-6598_0_21000_64.json | 366 +- .../ecmul_7827-6598_0_21000_80.json | 366 +- .../ecmul_7827-6598_0_21000_96.json | 366 +- .../ecmul_7827-6598_0_28000_128.json | 367 +- .../ecmul_7827-6598_0_28000_64.json | 367 +- .../ecmul_7827-6598_0_28000_80.json | 367 +- .../ecmul_7827-6598_0_28000_96.json | 367 +- .../ecmul_7827-6598_1456_21000_128.json | 366 +- .../ecmul_7827-6598_1456_21000_80.json | 366 +- .../ecmul_7827-6598_1456_21000_96.json | 366 +- .../ecmul_7827-6598_1456_28000_128.json | 367 +- .../ecmul_7827-6598_1456_28000_80.json | 367 +- .../ecmul_7827-6598_1456_28000_96.json | 367 +- .../ecmul_7827-6598_1_21000_128.json | 366 +- .../ecmul_7827-6598_1_21000_96.json | 366 +- .../ecmul_7827-6598_1_28000_128.json | 367 +- .../ecmul_7827-6598_1_28000_96.json | 367 +- .../ecmul_7827-6598_2_21000_128.json | 366 +- .../ecmul_7827-6598_2_21000_96.json | 366 +- .../ecmul_7827-6598_2_28000_128.json | 367 +- .../ecmul_7827-6598_2_28000_96.json | 367 +- .../ecmul_7827-6598_5616_21000_128.json | 366 +- .../ecmul_7827-6598_5616_21000_96.json | 366 +- .../ecmul_7827-6598_5616_28000_128.json | 367 +- .../ecmul_7827-6598_5616_28000_96.json | 367 +- .../ecmul_7827-6598_5617_21000_128.json | 366 +- .../ecmul_7827-6598_5617_21000_96.json | 366 +- .../ecmul_7827-6598_5617_28000_128.json | 367 +- .../ecmul_7827-6598_5617_28000_96.json | 367 +- .../ecmul_7827-6598_9935_21000_128.json | 366 +- .../ecmul_7827-6598_9935_21000_96.json | 366 +- .../ecmul_7827-6598_9935_28000_128.json | 367 +- .../ecmul_7827-6598_9935_28000_96.json | 367 +- .../ecmul_7827-6598_9_21000_128.json | 366 +- .../ecmul_7827-6598_9_21000_96.json | 366 +- .../ecmul_7827-6598_9_28000_128.json | 367 +- .../ecmul_7827-6598_9_28000_96.json | 367 +- .../stZeroKnowledge/ecpairing_bad_length_191.json | 367 +- .../stZeroKnowledge/ecpairing_bad_length_193.json | 367 +- .../stZeroKnowledge/ecpairing_empty_data.json | 367 +- .../ecpairing_empty_data_insufficient_gas.json | 366 +- .../stZeroKnowledge/ecpairing_one_point_fail.json | 367 +- .../ecpairing_one_point_insufficient_gas.json | 367 +- .../ecpairing_one_point_not_in_subgroup.json | 367 +- .../ecpairing_one_point_with_g1_zero.json | 367 +- .../ecpairing_one_point_with_g2_zero.json | 367 +- .../ecpairing_perturb_g2_by_curve_order.json | 367 +- .../ecpairing_perturb_g2_by_field_modulus.json | 367 +- ...cpairing_perturb_g2_by_field_modulus_again.json | 367 +- .../ecpairing_perturb_g2_by_one.json | 367 +- ...ecpairing_perturb_zeropoint_by_curve_order.json | 367 +- ...pairing_perturb_zeropoint_by_field_modulus.json | 367 +- .../ecpairing_perturb_zeropoint_by_one.json | 367 +- .../ecpairing_three_point_fail_1.json | 367 +- .../ecpairing_three_point_match_1.json | 367 +- .../ecpairing_two_point_fail_1.json | 367 +- .../ecpairing_two_point_fail_2.json | 367 +- .../ecpairing_two_point_match_1.json | 367 +- .../ecpairing_two_point_match_2.json | 367 +- .../ecpairing_two_point_match_3.json | 367 +- .../ecpairing_two_point_match_4.json | 367 +- .../ecpairing_two_point_match_5.json | 367 +- .../stZeroKnowledge/ecpairing_two_point_oog.json | 367 +- .../ecpairing_two_points_with_one_g2_zero.json | 367 +- GeneralStateTests/stZeroKnowledge/pairingTest.json | 362 +- GeneralStateTests/stZeroKnowledge/pointAdd.json | 598 +- .../stZeroKnowledge/pointAddTrunc.json | 634 +- GeneralStateTests/stZeroKnowledge/pointMulAdd.json | 629 +- .../stZeroKnowledge/pointMulAdd2.json | 2211 +- 2187 files changed, 261306 insertions(+), 208078 deletions(-) (limited to 'GeneralStateTests') diff --git a/GeneralStateTests/stAttackTest/ContractCreationSpam.json b/GeneralStateTests/stAttackTest/ContractCreationSpam.json index 3ee5c6888..84bc2c517 100644 --- a/GeneralStateTests/stAttackTest/ContractCreationSpam.json +++ b/GeneralStateTests/stAttackTest/ContractCreationSpam.json @@ -2,81 +2,60002 @@ "ContractCreationSpam" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stAttackTest/ContractCreationSpamFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x174876e800", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000000", + "currentNumber" : "1", + "currentTimestamp" : 1000, + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7e7ff82e1c33ffbeb3dedb679498c9716f83c697f497d75aca467ae936b8ae45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "6a0a0fc761c612c340a0e98d33b37a75e5268472" : { + "balance" : "0x0de0b6b3a7640000", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xe8d498db00", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7e7ff82e1c33ffbeb3dedb679498c9716f83c697f497d75aca467ae936b8ae45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe6b8c416b01e463186ae6661211f5e6c3ee69a1975e8f4a4d2d65ed0ff1faf2d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe6b8c416b01e463186ae6661211f5e6c3ee69a1975e8f4a4d2d65ed0ff1faf2d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7e7ff82e1c33ffbeb3dedb679498c9716f83c697f497d75aca467ae936b8ae45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000009" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000000a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000000b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000000c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000000d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000000e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000000f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000010" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000011" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000012" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000013" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000014" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000015" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000016" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000017" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000018" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000019" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000001a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000001b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000001c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000001d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000001e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000001f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000020" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000021" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000022" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000023" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000024" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000025" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000026" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000027" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000028" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000029" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000002a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000002b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000002c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000002d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000002e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000002f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000030" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000031" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000032" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000033" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000034" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000035" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000036" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000037" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000038" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000039" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000003a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000003b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000003c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000003d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000003e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000003f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000040" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000041" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000042" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000043" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000044" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000045" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000046" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000047" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000048" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000049" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000004a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000004b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000004c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000004d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000004e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000004f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000050" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000051" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000052" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000053" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000054" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000055" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000056" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000057" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000058" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000059" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000005a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000005b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000005c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000005d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000005e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000005f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000060" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000061" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000062" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000063" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000064" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000065" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000066" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000067" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000068" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000069" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000006a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000006b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000006c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000006d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000006e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000006f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000070" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000071" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000072" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000073" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000074" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000075" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000076" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000077" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000078" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000079" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000007a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000007b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000007c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000007d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000007e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000007f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000080" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000081" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000082" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000083" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000084" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000085" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000086" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000087" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000088" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000089" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000008a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000008b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000008c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000008d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000008e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000008f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000090" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000091" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000092" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000093" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000094" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000095" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000096" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000097" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000098" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000099" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000009a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000009b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000009c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000009d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000009e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000009f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000000ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000100" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000101" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000102" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000103" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000104" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000105" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000106" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000107" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000108" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000109" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000010a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000010b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000010c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000010d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000010e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000010f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000110" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000111" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000112" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000113" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000114" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000115" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000116" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000117" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000118" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000119" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000011a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000011b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000011c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000011d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000011e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000011f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000120" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000121" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000122" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000123" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000124" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000125" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000126" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000127" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000128" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000129" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000012a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000012b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000012c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000012d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000012e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000012f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000130" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000131" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000132" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000133" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000134" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000135" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000136" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000137" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000138" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000139" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000013a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000013b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000013c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000013d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000013e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000013f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000140" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000141" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000142" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000143" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000144" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000145" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000146" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000147" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000148" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000149" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000014a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000014b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000014c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000014d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000014e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000014f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000150" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000151" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000152" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000153" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000154" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000155" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000156" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000157" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000158" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000159" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000015a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000015b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000015c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000015d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000015e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000015f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000160" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000161" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000162" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000163" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000164" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000165" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000166" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000167" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000168" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000169" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000016a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000016b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000016c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000016d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000016e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000016f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000170" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000171" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000172" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000173" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000174" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000175" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000176" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000177" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000178" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000179" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000017a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000017b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000017c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000017d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000017e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000017f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000180" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000181" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000182" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000183" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000184" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000185" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000186" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000187" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000188" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000189" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000018a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000018b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000018c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000018d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000018e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000018f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000190" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000191" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000192" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000193" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000194" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000195" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000196" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000197" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000198" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000199" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000019a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000019b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000019c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000019d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000019e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000019f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000001ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000200" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000201" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000202" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000203" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000204" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000205" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000206" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000207" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000208" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000209" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000020a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000020b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000020c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000020d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000020e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000020f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000210" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000211" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000212" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000213" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000214" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000215" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000216" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000217" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000218" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000219" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000021a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000021b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000021c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000021d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000021e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000021f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000220" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000221" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000222" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000223" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000224" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000225" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000226" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000227" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000228" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000229" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000022a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000022b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000022c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000022d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000022e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000022f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000230" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000231" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000232" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000233" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000234" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000235" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000236" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000237" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000238" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000239" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000023a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000023b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000023c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000023d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000023e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000023f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000240" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000241" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000242" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000243" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000244" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000245" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000246" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000247" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000248" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000249" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000024a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000024b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000024c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000024d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000024e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000024f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000250" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000251" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000252" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000253" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000254" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000255" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000256" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000257" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000258" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000259" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000025a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000025b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000025c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000025d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000025e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000025f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000260" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000261" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000262" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000263" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000264" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000265" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000266" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000267" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000268" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000269" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000026a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000026b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000026c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000026d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000026e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000026f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000270" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000271" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000272" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000273" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000274" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000275" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000276" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000277" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000278" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000279" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000027a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000027b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000027c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000027d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000027e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000027f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000280" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000281" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000282" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000283" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000284" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000285" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000286" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000287" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000288" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000289" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000028a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000028b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000028c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000028d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000028e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000028f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000290" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000291" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000292" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000293" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000294" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000295" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000296" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000297" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000298" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000299" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000029a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000029b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000029c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000029d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000029e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000029f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000002ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000300" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000301" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000302" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000303" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000304" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000305" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000306" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000307" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000308" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000309" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000030a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000030b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000030c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000030d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000030e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000030f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000310" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000311" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000312" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000313" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000314" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000315" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000316" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000317" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000318" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000319" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000031a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000031b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000031c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000031d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000031e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000031f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000320" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000321" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000322" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000323" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000324" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000325" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000326" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000327" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000328" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000329" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000032a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000032b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000032c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000032d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000032e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000032f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000330" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000331" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000332" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000333" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000334" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000335" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000336" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000337" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000338" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000339" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000033a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000033b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000033c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000033d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000033e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000033f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000340" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000341" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000342" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000343" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000344" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000345" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000346" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000347" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000348" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000349" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000034a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000034b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000034c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000034d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000034e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000034f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000350" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000351" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000352" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000353" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000354" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000355" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000356" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000357" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000358" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000359" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000035a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000035b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000035c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000035d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000035e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000035f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000360" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000361" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000362" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000363" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000364" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000365" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000366" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000367" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000368" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000369" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000036a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000036b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000036c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000036d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000036e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000036f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000370" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000371" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000372" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000373" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000374" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000375" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000376" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000377" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000378" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000379" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000037a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000037b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000037c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000037d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000037e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000037f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000380" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000381" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000382" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000383" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000384" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000385" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000386" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000387" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000388" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000389" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000038a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000038b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000038c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000038d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000038e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000038f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000390" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000391" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000392" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000393" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000394" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000395" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000396" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000397" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000398" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000399" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000039a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000039b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000039c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000039d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000039e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000039f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000003ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000400" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000401" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000402" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000403" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000404" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000405" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000406" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000407" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000408" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000409" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000040a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000040b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000040c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000040d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000040e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000040f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000410" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000411" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000412" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000413" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000414" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000415" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000416" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000417" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000418" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000419" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000041a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000041b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000041c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000041d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000041e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000041f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000420" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000421" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000422" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000423" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000424" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000425" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000426" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000427" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000428" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000429" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000042a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000042b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000042c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000042d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000042e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000042f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000430" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000431" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000432" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000433" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000434" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000435" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000436" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000437" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000438" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000439" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000043a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000043b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000043c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000043d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000043e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000043f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000440" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000441" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000442" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000443" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000444" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000445" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000446" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000447" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000448" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000449" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000044a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000044b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000044c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000044d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000044e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000044f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000450" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000451" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000452" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000453" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000454" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000455" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000456" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000457" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000458" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000459" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000045a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000045b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000045c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000045d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000045e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000045f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000460" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000461" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000462" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000463" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000464" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000465" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000466" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000467" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000468" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000469" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000046a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000046b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000046c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000046d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000046e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000046f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000470" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000471" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000472" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000473" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000474" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000475" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000476" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000477" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000478" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000479" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000047a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000047b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000047c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000047d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000047e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000047f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000480" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000481" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000482" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000483" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000484" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000485" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000486" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000487" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000488" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000489" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000048a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000048b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000048c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000048d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000048e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000048f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000490" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000491" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000492" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000493" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000494" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000495" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000496" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000497" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000498" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000499" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000049a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000049b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000049c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000049d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000049e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000049f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000004ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000500" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000501" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000502" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000503" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000504" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000505" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000506" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000507" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000508" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000509" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000050a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000050b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000050c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000050d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000050e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000050f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000510" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000511" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000512" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000513" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000514" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000515" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000516" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000517" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000518" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000519" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000051a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000051b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000051c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000051d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000051e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000051f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000520" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000521" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000522" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000523" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000524" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000525" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000526" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000527" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000528" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000529" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000052a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000052b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000052c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000052d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000052e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000052f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000530" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000531" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000532" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000533" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000534" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000535" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000536" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000537" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000538" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000539" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000053a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000053b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000053c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000053d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000053e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000053f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000540" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000541" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000542" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000543" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000544" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000545" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000546" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000547" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000548" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000549" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000054a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000054b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000054c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000054d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000054e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000054f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000550" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000551" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000552" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000553" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000554" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000555" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000556" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000557" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000558" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000559" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000055a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000055b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000055c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000055d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000055e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000055f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000560" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000561" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000562" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000563" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000564" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000565" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000566" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000567" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000568" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000569" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000056a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000056b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000056c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000056d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000056e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000056f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000570" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000571" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000572" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000573" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000574" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000575" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000576" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000577" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000578" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000579" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000057a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000057b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000057c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000057d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000057e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000057f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000580" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000581" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000582" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000583" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000584" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000585" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000586" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000587" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000588" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000589" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000058a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000058b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000058c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000058d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000058e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000058f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000590" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000591" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000592" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000593" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000594" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000595" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000596" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000597" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000598" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000599" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000059a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000059b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000059c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000059d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000059e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000059f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000005ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000600" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000601" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000602" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000603" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000604" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000605" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000606" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000607" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000608" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000609" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000060a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000060b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000060c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000060d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000060e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000060f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000610" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000611" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000612" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000613" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000614" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000615" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000616" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000617" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000618" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000619" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000061a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000061b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000061c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000061d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000061e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000061f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000620" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000621" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000622" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000623" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000624" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000625" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000626" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000627" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000628" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000629" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000062a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000062b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000062c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000062d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000062e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000062f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000630" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000631" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000632" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000633" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000634" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000635" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000636" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000637" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000638" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000639" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000063a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000063b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000063c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000063d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000063e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000063f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000640" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000641" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000642" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000643" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000644" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000645" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000646" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000647" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000648" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000649" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000064a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000064b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000064c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000064d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000064e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000064f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000650" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000651" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000652" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000653" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000654" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000655" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000656" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000657" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000658" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000659" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000065a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000065b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000065c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000065d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000065e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000065f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000660" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000661" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000662" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000663" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000664" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000665" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000666" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000667" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000668" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000669" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000066a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000066b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000066c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000066d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000066e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000066f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000670" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000671" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000672" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000673" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000674" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000675" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000676" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000677" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000678" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000679" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000067a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000067b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000067c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000067d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000067e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000067f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000680" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000681" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000682" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000683" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000684" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000685" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000686" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000687" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000688" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000689" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000068a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000068b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000068c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000068d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000068e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000068f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000690" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000691" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000692" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000693" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000694" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000695" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000696" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000697" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000698" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000699" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000069a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000069b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000069c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000069d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000069e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000069f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000006ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000700" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000701" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000702" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000703" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000704" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000705" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000706" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000707" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000708" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000709" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000070a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000070b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000070c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000070d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000070e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000070f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000710" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000711" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000712" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000713" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000714" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000715" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000716" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000717" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000718" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000719" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000071a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000071b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000071c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000071d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000071e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000071f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000720" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000721" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000722" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000723" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000724" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000725" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000726" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000727" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000728" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000729" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000072a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000072b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000072c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000072d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000072e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000072f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000730" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000731" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000732" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000733" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000734" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000735" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000736" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000737" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000738" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000739" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000073a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000073b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000073c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000073d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000073e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000073f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000740" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000741" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000742" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000743" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000744" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000745" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000746" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000747" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000748" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000749" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000074a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000074b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000074c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000074d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000074e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000074f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000750" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000751" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000752" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000753" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000754" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000755" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000756" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000757" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000758" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000759" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000075a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000075b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000075c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000075d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000075e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000075f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000760" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000761" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000762" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000763" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000764" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000765" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000766" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000767" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000768" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000769" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000076a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000076b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000076c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000076d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000076e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000076f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000770" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000771" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000772" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000773" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000774" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000775" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000776" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000777" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000778" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000779" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000077a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000077b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000077c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000077d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000077e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000077f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000780" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000781" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000782" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000783" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000784" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000785" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000786" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000787" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000788" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000789" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000078a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000078b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000078c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000078d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000078e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000078f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000790" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000791" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000792" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000793" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000794" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000795" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000796" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000797" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000798" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000799" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000079a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000079b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000079c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000079d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000079e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000079f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000007ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000800" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000801" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000802" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000803" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000804" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000805" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000806" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000807" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000808" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000809" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000080a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000080b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000080c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000080d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000080e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000080f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000810" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000811" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000812" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000813" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000814" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000815" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000816" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000817" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000818" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000819" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000081a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000081b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000081c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000081d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000081e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000081f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000820" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000821" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000822" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000823" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000824" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000825" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000826" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000827" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000828" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000829" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000082a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000082b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000082c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000082d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000082e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000082f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000830" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000831" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000832" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000833" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000834" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000835" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000836" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000837" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000838" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000839" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000083a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000083b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000083c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000083d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000083e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000083f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000840" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000841" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000842" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000843" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000844" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000845" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000846" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000847" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000848" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000849" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000084a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000084b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000084c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000084d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000084e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000084f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000850" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000851" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000852" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000853" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000854" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000855" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000856" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000857" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000858" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000859" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000085a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000085b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000085c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000085d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000085e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000085f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000860" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000861" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000862" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000863" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000864" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000865" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000866" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000867" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000868" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000869" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000086a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000086b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000086c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000086d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000086e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000086f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000870" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000871" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000872" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000873" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000874" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000875" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000876" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000877" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000878" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000879" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000087a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000087b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000087c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000087d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000087e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000087f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000880" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000881" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000882" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000883" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000884" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000885" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000886" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000887" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000888" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000889" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000088a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000088b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000088c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000088d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000088e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000088f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000890" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000891" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000892" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000893" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000894" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000895" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000896" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000897" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000898" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000899" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000089a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000089b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000089c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000089d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000089e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000089f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000008ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000900" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000901" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000902" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000903" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000904" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000905" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000906" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000907" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000908" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000909" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000090a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000090b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000090c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000090d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000090e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000090f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000910" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000911" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000912" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000913" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000914" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000915" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000916" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000917" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000918" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000919" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000091a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000091b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000091c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000091d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000091e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000091f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000920" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000921" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000922" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000923" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000924" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000925" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000926" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000927" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000928" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000929" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000092a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000092b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000092c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000092d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000092e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000092f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000930" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000931" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000932" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000933" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000934" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000935" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000936" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000937" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000938" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000939" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000093a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000093b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000093c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000093d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000093e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000093f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000940" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000941" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000942" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000943" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000944" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000945" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000946" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000947" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000948" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000949" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000094a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000094b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000094c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000094d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000094e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000094f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000950" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000951" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000952" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000953" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000954" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000955" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000956" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000957" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000958" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000959" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000095a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000095b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000095c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000095d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000095e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000095f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000960" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000961" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000962" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000963" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000964" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000965" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000966" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000967" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000968" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000969" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000096a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000096b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000096c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000096d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000096e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000096f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000970" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000971" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000972" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000973" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000974" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000975" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000976" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000977" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000978" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000979" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000097a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000097b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000097c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000097d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000097e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000097f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000980" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000981" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000982" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000983" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000984" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000985" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000986" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000987" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000988" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000989" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000098a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000098b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000098c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000098d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000098e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000098f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000990" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000991" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000992" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000993" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000994" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000995" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000996" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000997" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000998" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000999" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000099a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000099b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000099c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000099d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000099e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000099f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000009ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a00" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a01" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a02" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a03" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a04" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a05" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a06" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a07" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a08" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a09" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a0a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a0c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a0d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a0e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a0f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a10" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a11" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a12" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a13" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a14" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a15" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a16" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a17" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a18" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a19" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a1a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a1b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a1c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a1d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a1e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a1f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a20" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a21" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a22" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a23" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a24" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a25" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a26" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a27" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a28" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a29" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a2a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a2b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a2c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a2d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a2e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a2f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a30" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a31" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a32" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a33" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a34" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a35" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a36" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a37" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a38" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a39" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a3a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a3b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a3c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a3d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a3e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a3f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a41" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a42" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a43" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a44" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a45" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a46" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a47" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a48" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a49" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a4a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a4b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a4c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a4d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a4e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a4f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a50" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a51" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a52" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a53" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a54" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a55" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a56" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a57" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a58" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a59" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a5a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a5b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a5c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a5d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a5e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a5f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a60" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a61" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a62" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a63" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a64" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a65" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a66" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a67" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a68" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a69" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a6a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a6b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a6c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a6d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a6e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a6f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a70" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a71" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a72" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a73" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a74" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a75" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a76" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a77" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a78" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a79" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a7a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a7b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a7c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a7d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a7e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a7f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a80" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a81" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a82" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a83" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a84" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a85" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a86" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a87" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a88" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a89" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a8a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a8b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a8c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a8d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a8e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a8f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a90" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a91" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a92" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a93" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a94" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a95" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a96" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a97" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a98" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a99" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a9a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a9b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a9c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a9d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a9e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000a9f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aa0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aa1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aa2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aa3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aa4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aa5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aa6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aa7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aa8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aa9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aaa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aaf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ab0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ab1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ab2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ab3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ab4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ab5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ab6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ab7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ab8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ab9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000abb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000abc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000abd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000abe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000abf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ac0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ac1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ac2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ac3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ac4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ac5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ac6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ac7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ac8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ac9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000acb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000acc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000acd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ace" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000acf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ad0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ad1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ad2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ad3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ad4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ad5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ad6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ad7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ad8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ad9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ada" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000adb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000adc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000add" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ade" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000adf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ae0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ae1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ae2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ae3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ae4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ae5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ae6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ae7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ae8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ae9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aeb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000af0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000af1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000af2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000af3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000af4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000af5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000af6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000af7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000af8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000af9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000afa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000afb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000afc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000afd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000afe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000aff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b00" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b01" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b02" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b03" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b04" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b05" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b06" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b07" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b08" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b09" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b0a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b0c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b0d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b0e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b0f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b10" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b11" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b12" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b13" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b14" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b15" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b16" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b17" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b18" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b19" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b1a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b1b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b1c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b1d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b1e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b1f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b20" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b21" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b22" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b23" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b24" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b25" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b26" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b27" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b28" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b29" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b2a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b2b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b2c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b2d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b2e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b2f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b30" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b31" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b32" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b33" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b34" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b35" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b36" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b37" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b38" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b39" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b3a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b3b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b3c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b3d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b3e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b3f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b41" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b42" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b43" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b44" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b45" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b46" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b47" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b48" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b49" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b4a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b4b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b4c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b4d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b4e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b4f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b50" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b51" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b52" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b53" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b54" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b55" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b56" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b57" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b58" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b59" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b5a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b5b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b5c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b5d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b5e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b5f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b60" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b61" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b62" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b63" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b64" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b65" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b66" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b67" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b68" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b69" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b6a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b6b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b6c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b6d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b6e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b6f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b70" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b71" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b72" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b73" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b74" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b75" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b76" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b77" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b78" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b79" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b7a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b7b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b7c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b7d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b7e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b7f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b80" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b81" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b82" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b83" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b84" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b85" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b86" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b87" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b88" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b89" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b8a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b8b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b8c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b8d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b8e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b8f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b90" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b91" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b92" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b93" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b94" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b95" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b96" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b97" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b98" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b99" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b9a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b9b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b9c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b9d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b9e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000b9f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ba0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ba1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ba2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ba3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ba4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ba5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ba6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ba7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ba8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ba9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000baa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000baf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bb0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bb1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bb2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bb3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bb4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bb5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bb6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bb7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bb8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bb9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bbb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bbc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bbd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bbe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bbf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bc0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bc1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bc2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bc3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bc4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bc5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bc6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bc7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bc8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bc9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bcb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bcc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bcd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bcf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bd0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bd1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bd2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bd3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bd4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bd5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bd6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bd7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bd8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bd9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bda" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bdb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bdc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bdd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bde" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bdf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000be0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000be1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000be2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000be3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000be4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000be5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000be6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000be7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000be8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000be9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000beb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bf0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bf1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bf2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bf3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bf4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bf5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bf6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bf7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bf8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bf9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bfa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bfb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bfc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bfd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bfe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000bff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c00" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c01" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c02" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c03" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c04" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c05" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c06" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c07" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c08" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c09" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c0a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c0c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c0d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c0e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c0f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c10" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c11" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c12" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c13" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c14" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c15" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c16" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c17" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c18" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c19" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c1a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c1b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c1c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c1d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c1e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c1f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c20" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c21" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c22" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c23" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c24" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c25" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c26" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c27" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c28" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c29" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c2a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c2b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c2c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c2d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c2e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c2f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c30" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c31" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c32" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c33" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c34" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c35" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c36" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c37" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c38" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c39" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c3a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c3b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c3c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c3d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c3e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c3f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c41" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c42" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c43" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c44" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c45" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c46" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c47" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c48" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c49" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c4a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c4b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c4c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c4d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c4e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c4f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c50" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c51" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c52" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c53" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c54" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c55" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c56" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c57" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c58" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c59" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c5a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c5b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c5c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c5d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c5e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c5f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c60" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c61" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c62" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c63" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c64" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c65" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c66" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c67" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c68" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c69" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c6a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c6b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c6c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c6d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c6e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c6f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c70" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c71" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c72" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c73" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c74" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c75" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c76" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c77" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c78" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c79" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c7a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c7b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c7c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c7d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c7e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c7f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c80" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c81" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c82" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c83" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c84" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c85" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c86" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c87" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c88" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c89" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c8a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c8b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c8c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c8d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c8e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c8f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c90" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c91" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c92" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c93" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c94" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c95" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c96" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c97" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c98" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c99" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c9a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c9b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c9c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c9d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c9e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000c9f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ca0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ca1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ca2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ca3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ca4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ca5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ca6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ca7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ca8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ca9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000caa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000caf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cb0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cb1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cb2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cb3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cb4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cb5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cb6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cb7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cb8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cb9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cbb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cbc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cbd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cbe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cbf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cc0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cc1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cc2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cc3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cc4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cc5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cc6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cc7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cc8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cc9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ccb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ccc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ccd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ccf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cd0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cd1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cd2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cd3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cd4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cd5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cd6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cd7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cd8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cd9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cda" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cdb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cdc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cdd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cde" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cdf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ce0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ce1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ce2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ce3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ce4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ce5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ce6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ce7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ce8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ce9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ceb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ced" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cf0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cf1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cf2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cf3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cf4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cf5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cf6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cf7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cf8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cf9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cfa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cfb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cfc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cfd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cfe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000cff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d00" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d01" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d02" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d03" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d04" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d05" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d06" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d07" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d08" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d09" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d0a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d0c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d0d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d0e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d0f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d10" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d11" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d12" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d13" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d14" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d15" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d16" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d17" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d18" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d19" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d1a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d1b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d1c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d1d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d1e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d1f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d20" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d21" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d22" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d23" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d24" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d25" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d26" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d27" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d28" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d29" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d2a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d2b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d2c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d2d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d2e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d2f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d30" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d31" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d32" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d33" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d34" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d35" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d36" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d37" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d38" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d39" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d3a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d3b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d3c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d3d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d3e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d3f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d41" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d42" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d43" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d44" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d45" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d46" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d47" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d48" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d49" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d4a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d4b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d4c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d4d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d4e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d4f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d50" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d51" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d52" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d53" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d54" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d55" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d56" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d57" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d58" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d59" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d5a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d5b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d5c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d5d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d5e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d5f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d60" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d61" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d62" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d63" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d64" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d65" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d66" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d67" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d68" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d69" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d6a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d6b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d6c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d6d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d6e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d6f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d70" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d71" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d72" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d73" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d74" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d75" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d76" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d77" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d78" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d79" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d7a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d7b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d7c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d7d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d7e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d7f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d80" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d81" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d82" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d83" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d84" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d85" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d86" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d87" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d88" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d89" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d8a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d8b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d8c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d8d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d8e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d8f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d90" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d91" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d92" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d93" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d94" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d95" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d96" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d97" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d98" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d99" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d9a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d9b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d9c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d9d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d9e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000d9f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000da0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000da1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000da2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000da3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000da4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000da5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000da6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000da7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000da8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000da9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000daa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000daf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000db0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000db1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000db2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000db3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000db4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000db5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000db6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000db7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000db8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000db9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dbb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dbc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dbd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dbe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dbf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dc0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dc1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dc2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dc3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dc4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dc5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dc6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dc7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dc8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dc9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dcb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dcc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dcd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dcf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dd0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dd1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dd2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dd3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dd4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dd5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dd6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dd7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dd8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dd9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dda" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ddb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ddc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ddd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dde" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ddf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000de0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000de1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000de2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000de3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000de4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000de5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000de6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000de7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000de8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000de9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000deb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ded" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000def" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000df0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000df1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000df2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000df3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000df4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000df5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000df6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000df7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000df8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000df9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dfa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dfb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dfc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dfd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dfe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000dff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e00" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e01" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e02" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e03" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e04" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e05" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e06" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e07" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e08" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e09" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e0a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e0c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e0d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e0e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e0f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e10" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e11" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e12" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e13" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e14" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e15" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e16" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e17" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e18" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e19" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e1a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e1b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e1c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e1d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e1e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e1f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e20" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e21" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e22" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e23" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e24" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e25" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e26" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e27" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e28" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e29" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e2a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e2b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e2c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e2d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e2e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e2f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e30" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e31" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e32" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e33" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e34" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e35" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e36" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e37" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e38" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e39" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e3a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e3b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e3c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e3d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e3e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e3f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e41" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e42" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e43" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e44" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e45" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e46" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e47" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e48" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e49" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e4a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e4b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e4c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e4d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e4e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e4f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e50" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e51" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e52" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e53" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e54" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e55" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e56" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e57" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e58" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e59" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e5a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e5b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e5c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e5d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e5e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e5f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e60" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e61" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e62" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e63" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e64" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e65" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e66" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e67" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e68" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e69" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e6a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e6b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e6c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e6d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e6e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e6f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e70" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e71" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e72" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e73" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e74" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e75" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e76" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e77" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e78" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e79" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e7a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e7b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e7c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e7d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e7e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e7f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e80" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e81" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e82" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e83" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e84" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e85" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e86" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e87" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e88" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e89" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e8a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e8b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e8c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e8d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e8e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e8f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e90" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e91" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e92" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e93" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e94" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e95" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e96" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e97" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e98" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e99" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e9a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e9b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e9c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e9d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e9e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000e9f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ea0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ea1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ea2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ea3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ea4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ea5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ea6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ea7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ea8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ea9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eaa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ead" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eaf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eb0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eb1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eb2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eb3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eb4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eb5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eb6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eb7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eb8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eb9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ebb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ebc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ebd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ebe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ebf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ec0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ec1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ec2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ec3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ec4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ec5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ec6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ec7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ec8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ec9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ecb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ecc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ecd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ece" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ecf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ed0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ed1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ed2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ed3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ed4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ed5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ed6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ed7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ed8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ed9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eda" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000edb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000edc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000edd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ede" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000edf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ee0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ee1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ee2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ee3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ee4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ee5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ee6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ee7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ee8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ee9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eeb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ef0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ef1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ef2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ef3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ef4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ef5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ef6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ef7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ef8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ef9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000efa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000efb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000efc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000efd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000efe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000eff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f00" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f01" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f02" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f03" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f04" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f05" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f06" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f07" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f08" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f09" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f0a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f0c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f0d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f0e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f0f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f10" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f11" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f12" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f13" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f14" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f15" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f16" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f17" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f18" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f19" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f1a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f1b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f1c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f1d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f1e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f1f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f20" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f21" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f22" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f23" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f24" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f25" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f26" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f27" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f28" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f29" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f2a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f2b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f2c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f2d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f2e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f2f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f30" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f31" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f32" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f33" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f34" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f35" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f36" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f37" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f38" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f39" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f3a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f3b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f3c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f3d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f3e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f3f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f41" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f42" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f43" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f44" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f45" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f46" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f47" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f48" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f49" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f4a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f4b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f4c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f4d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f4e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f4f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f50" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f51" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f52" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f53" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f54" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f55" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f56" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f57" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f58" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f59" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f5a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f5b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f5c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f5d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f5e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f5f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f60" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f61" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f62" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f63" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f64" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f65" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f66" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f67" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f68" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f69" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f6a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f6b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f6c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f6d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f6e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f6f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f70" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f71" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f72" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f73" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f74" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f75" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f76" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f77" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f78" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f79" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f7a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f7b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f7c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f7d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f7e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f7f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f80" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f81" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f82" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f83" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f84" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f85" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f86" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f87" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f88" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f89" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f8a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f8b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f8c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f8d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f8e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f8f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f90" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f91" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f92" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f93" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f94" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f95" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f96" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f97" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f98" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f99" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f9a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f9b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f9c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f9d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f9e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000f9f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fa0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fa1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fa2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fa3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fa4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fa5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fa6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fa7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fa8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fa9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000faa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000faf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fb0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fb1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fb2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fb3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fb4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fb5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fb6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fb7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fb8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fb9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fbb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fbc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fbd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fbe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fbf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fc0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fc1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fc2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fc3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fc4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fc5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fc6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fc7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fc8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fc9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fcb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fcc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fcd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fcf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fd0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fd1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fd2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fd3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fd4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fd5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fd6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fd7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fd8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fd9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fda" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fdb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fdc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fdd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fde" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fdf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fe0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fe1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fe2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fe3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fe4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fe5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fe6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fe7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fe8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fe9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000feb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ff0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ff1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ff2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ff3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ff4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ff5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ff6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ff7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ff8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ff9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ffa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ffb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ffc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ffd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000ffe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000000fff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001000" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001004" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001005" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001006" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001007" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001008" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001009" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000100a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000100b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000100c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000100d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000100e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000100f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001010" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001011" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001012" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001013" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001014" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001015" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001016" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001017" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001018" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001019" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000101a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000101b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000101c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000101d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000101e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000101f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001020" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001021" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001022" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001023" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001024" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001025" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001026" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001027" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001028" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001029" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000102a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000102b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000102c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000102d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000102e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000102f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001030" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001031" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001032" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001033" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001034" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001035" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001036" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001037" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001038" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001039" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000103a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000103b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000103c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000103d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000103e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000103f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001040" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001041" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001042" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001043" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001044" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001045" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001046" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001047" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001048" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001049" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000104a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000104b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000104c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000104d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000104e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000104f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001050" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001051" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001052" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001053" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001054" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001055" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001056" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001057" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001058" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001059" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000105a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000105b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000105c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000105d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000105e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000105f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001060" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001061" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001062" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001063" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001064" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001065" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001066" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001067" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001068" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001069" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000106a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000106b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000106c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000106d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000106e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000106f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001070" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001071" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001072" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001073" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001074" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001075" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001076" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001077" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001078" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001079" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000107a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000107b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000107c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000107d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000107e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000107f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001080" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001081" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001082" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001083" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001084" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001085" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001086" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001087" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001088" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001089" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000108a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000108b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000108c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000108d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000108e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000108f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001090" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001091" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001092" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001093" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001094" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001095" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001096" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001097" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001098" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001099" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000109a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000109b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000109c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000109d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000109e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000109f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000010ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001100" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001101" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001102" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001103" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001104" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001105" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001106" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001107" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001108" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001109" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000110a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000110b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000110c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000110d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000110e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000110f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001110" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001111" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001112" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001113" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001114" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001115" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001116" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001117" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001118" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001119" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000111a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000111b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000111c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000111d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000111e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000111f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001120" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001121" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001122" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001123" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001124" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001125" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001126" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001127" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001128" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001129" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000112a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000112b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000112c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000112d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000112e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000112f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001130" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001131" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001132" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001133" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001134" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001135" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001136" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001137" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001138" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001139" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000113a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000113b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000113c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000113d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000113e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000113f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001140" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001141" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001142" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001143" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001144" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001145" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001146" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001147" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001148" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001149" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000114a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000114b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000114c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000114d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000114e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000114f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001150" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001151" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001152" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001153" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001154" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001155" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001156" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001157" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001158" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001159" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000115a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000115b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000115c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000115d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000115e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000115f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001160" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001161" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001162" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001163" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001164" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001165" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001166" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001167" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001168" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001169" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000116a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000116b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000116c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000116d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000116e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000116f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001170" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001171" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001172" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001173" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001174" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001175" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001176" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001177" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001178" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001179" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000117a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000117b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000117c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000117d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000117e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000117f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001180" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001181" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001182" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001183" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001184" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001185" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001186" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001187" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001188" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001189" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000118a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000118b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000118c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000118d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000118e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000118f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001190" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001191" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001192" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001193" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001194" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001195" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001196" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001197" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001198" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001199" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000119a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000119b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000119c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000119d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000119e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000119f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000011ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001200" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001201" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001202" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001203" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001204" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001205" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001206" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001207" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001208" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001209" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000120a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000120b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000120c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000120d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000120e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000120f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001210" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001211" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001212" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001213" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001214" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001215" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001216" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001217" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001218" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001219" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000121a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000121b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000121c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000121d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000121e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000121f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001220" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001221" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001222" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001223" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001224" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001225" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001226" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001227" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001228" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001229" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000122a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000122b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000122c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000122d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000122e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000122f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001230" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001231" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001232" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001233" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001234" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001235" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001236" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001237" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001238" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001239" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000123a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000123b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000123c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000123d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000123e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000123f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001240" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001241" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001242" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001243" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001244" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001245" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001246" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001247" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001248" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001249" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000124a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000124b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000124c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000124d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000124e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000124f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001250" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001251" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001252" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001253" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001254" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001255" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001256" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001257" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001258" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001259" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000125a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000125b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000125c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000125d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000125e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000125f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001260" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001261" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001262" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001263" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001264" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001265" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001266" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001267" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001268" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001269" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000126a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000126b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000126c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000126d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000126e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000126f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001270" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001271" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001272" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001273" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001274" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001275" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001276" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001277" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001278" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001279" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000127a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000127b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000127c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000127d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000127e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000127f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001280" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001281" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001282" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001283" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001284" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001285" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001286" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001287" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001288" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001289" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000128a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000128b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000128c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000128d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000128e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000128f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001290" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001291" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001292" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001293" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001294" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001295" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001296" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001297" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001298" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001299" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000129a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000129b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000129c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000129d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000129e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000129f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000012ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001300" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001301" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001302" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001303" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001304" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001305" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001306" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001307" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001308" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001309" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000130a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000130b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000130c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000130d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000130e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000130f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001310" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001311" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001312" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001313" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001314" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001315" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001316" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001317" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001318" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001319" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000131a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000131b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000131c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000131d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000131e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000131f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001320" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001321" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001322" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001323" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001324" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001325" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001326" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001327" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001328" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001329" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000132a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000132b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000132c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000132d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000132e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000132f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001330" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001331" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001332" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001333" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001334" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001335" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001336" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001337" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001338" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001339" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000133a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000133b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000133c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000133d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000133e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000133f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001340" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001341" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001342" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001343" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001344" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001345" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001346" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001347" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001348" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001349" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000134a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000134b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000134c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000134d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000134e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000134f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001350" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001351" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001352" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001353" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001354" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001355" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001356" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001357" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001358" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001359" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000135a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000135b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000135c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000135d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000135e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000135f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001360" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001361" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001362" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001363" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001364" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001365" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001366" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001367" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001368" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001369" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000136a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000136b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000136c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000136d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000136e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000136f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001370" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001371" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001372" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001373" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001374" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001375" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001376" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001377" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001378" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001379" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000137a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000137b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000137c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000137d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000137e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000137f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001380" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001381" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001382" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001383" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001384" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001385" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001386" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001387" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001388" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001389" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000138a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000138b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000138c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000138d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000138e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000138f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001390" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001391" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001392" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001393" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001394" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001395" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001396" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001397" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001398" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001399" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000139a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000139b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000139c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000139d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000139e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000139f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000013ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001400" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001401" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001402" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001403" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001404" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001405" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001406" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001407" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001408" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001409" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000140a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000140b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000140c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000140d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000140e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000140f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001410" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001411" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001412" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001413" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001414" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001415" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001416" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001417" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001418" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001419" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000141a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000141b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000141c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000141d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000141e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000141f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001420" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001421" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001422" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001423" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001424" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001425" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001426" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001427" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001428" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001429" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000142a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000142b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000142c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000142d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000142e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000142f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001430" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001431" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001432" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001433" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001434" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001435" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001436" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001437" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001438" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001439" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000143a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000143b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000143c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000143d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000143e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000143f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001440" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001441" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001442" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001443" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001444" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001445" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001446" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001447" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001448" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001449" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000144a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000144b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000144c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000144d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000144e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000144f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001450" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001451" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001452" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001453" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001454" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001455" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001456" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001457" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001458" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001459" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000145a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000145b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000145c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000145d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000145e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000145f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001460" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001461" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001462" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001463" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001464" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001465" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001466" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001467" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001468" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001469" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000146a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000146b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000146c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000146d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000146e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000146f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001470" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001471" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001472" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001473" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001474" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001475" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001476" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001477" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001478" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001479" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000147a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000147b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000147c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000147d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000147e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000147f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001480" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001481" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001482" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001483" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001484" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001485" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001486" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001487" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001488" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001489" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000148a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000148b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000148c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000148d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000148e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000148f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001490" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001491" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001492" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001493" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001494" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001495" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001496" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001497" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001498" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001499" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000149a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000149b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000149c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000149d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000149e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000149f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000014ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001500" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001501" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001502" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001503" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001504" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001505" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001506" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001507" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001508" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001509" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000150a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000150b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000150c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000150d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000150e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000150f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001510" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001511" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001512" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001513" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001514" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001515" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001516" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001517" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001518" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001519" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000151a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000151b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000151c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000151d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000151e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000151f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001520" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001521" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001522" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001523" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001524" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001525" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001526" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001527" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001528" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001529" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000152a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000152b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000152c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000152d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000152e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000152f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001530" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001531" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001532" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001533" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001534" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001535" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001536" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001537" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001538" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001539" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000153a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000153b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000153c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000153d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000153e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000153f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001540" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001541" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001542" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001543" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001544" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001545" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001546" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001547" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001548" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001549" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000154a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000154b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000154c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000154d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000154e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000154f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001550" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001551" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001552" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001553" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001554" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001555" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001556" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001557" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001558" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001559" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000155a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000155b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000155c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000155d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000155e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000155f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001560" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001561" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001562" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001563" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001564" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001565" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001566" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001567" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001568" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001569" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000156a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000156b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000156c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000156d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000156e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000156f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001570" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001571" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001572" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001573" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001574" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001575" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001576" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001577" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001578" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001579" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000157a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000157b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000157c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000157d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000157e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000157f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001580" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001581" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001582" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001583" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001584" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001585" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001586" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001587" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001588" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001589" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000158a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000158b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000158c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000158d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000158e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000158f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001590" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001591" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001592" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001593" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001594" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001595" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001596" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001597" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001598" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001599" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000159a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000159b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000159c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000159d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000159e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000159f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000015ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001600" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001601" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001602" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001603" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001604" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001605" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001606" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001607" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001608" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001609" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000160a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000160b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000160c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000160d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000160e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000160f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001610" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001611" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001612" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001613" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001614" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001615" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001616" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001617" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001618" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001619" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000161a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000161b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000161c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000161d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000161e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000161f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001620" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001621" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001622" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001623" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001624" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001625" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001626" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001627" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001628" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001629" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000162a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000162b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000162c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000162d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000162e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000162f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001630" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001631" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001632" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001633" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001634" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001635" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001636" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001637" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001638" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001639" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000163a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000163b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000163c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000163d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000163e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000163f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001640" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001641" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001642" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001643" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001644" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001645" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001646" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001647" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001648" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001649" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000164a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000164b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000164c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000164d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000164e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000164f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001650" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001651" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001652" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001653" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001654" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001655" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001656" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001657" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001658" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001659" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000165a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000165b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000165c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000165d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000165e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000165f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001660" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001661" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001662" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001663" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001664" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001665" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001666" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001667" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001668" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001669" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000166a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000166b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000166c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000166d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000166e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000166f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001670" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001671" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001672" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001673" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001674" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001675" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001676" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001677" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001678" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001679" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000167a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000167b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000167c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000167d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000167e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000167f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001680" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001681" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001682" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001683" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001684" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001685" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001686" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001687" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001688" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001689" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000168a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000168b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000168c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000168d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000168e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000168f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001690" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001691" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001692" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001693" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001694" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001695" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001696" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001697" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001698" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001699" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000169a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000169b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000169c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000169d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000169e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000169f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000016ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001700" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001701" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001702" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001703" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001704" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001705" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001706" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001707" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001708" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001709" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000170a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000170b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000170c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000170d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000170e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000170f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001710" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001711" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001712" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001713" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001714" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001715" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001716" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001717" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001718" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001719" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000171a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000171b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000171c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000171d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000171e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000171f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001720" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001721" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001722" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001723" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001724" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001725" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001726" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001727" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001728" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001729" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000172a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000172b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000172c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000172d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000172e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000172f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001730" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001731" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001732" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001733" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001734" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001735" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001736" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001737" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001738" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001739" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000173a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000173b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000173c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000173d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000173e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000173f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001740" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001741" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001742" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001743" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001744" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001745" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001746" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001747" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001748" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001749" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000174a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000174b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000174c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000174d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000174e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000174f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001750" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001751" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001752" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001753" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001754" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001755" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001756" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001757" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001758" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001759" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000175a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000175b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000175c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000175d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000175e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000175f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001760" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001761" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001762" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001763" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001764" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001765" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001766" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001767" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001768" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001769" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000176a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000176b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000176c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000176d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000176e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000176f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001770" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001771" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001772" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001773" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001774" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001775" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001776" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001777" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001778" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001779" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000177a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000177b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000177c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000177d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000177e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000177f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001780" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001781" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001782" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001783" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001784" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001785" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001786" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001787" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001788" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001789" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000178a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000178b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000178c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000178d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000178e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000178f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001790" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001791" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001792" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001793" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001794" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001795" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001796" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001797" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001798" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001799" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000179a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000179b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000179c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000179d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000179e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000179f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000017ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001800" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001801" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001802" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001803" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001804" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001805" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001806" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001807" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001808" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001809" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000180a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000180b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000180c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000180d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000180e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000180f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001810" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001811" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001812" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001813" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001814" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001815" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001816" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001817" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001818" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001819" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000181a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000181b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000181c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000181d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000181e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000181f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001820" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001821" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001822" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001823" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001824" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001825" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001826" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001827" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001828" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001829" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000182a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000182b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000182c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000182d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000182e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000182f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001830" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001831" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001832" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001833" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001834" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001835" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001836" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001837" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001838" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001839" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000183a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000183b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000183c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000183d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000183e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000183f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001840" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001841" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001842" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001843" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001844" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001845" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001846" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001847" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001848" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001849" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000184a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000184b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000184c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000184d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000184e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000184f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001850" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001851" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001852" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001853" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001854" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001855" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001856" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001857" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001858" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001859" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000185a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000185b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000185c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000185d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000185e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000185f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001860" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001861" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001862" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001863" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001864" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001865" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001866" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001867" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001868" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001869" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000186a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000186b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000186c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000186d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000186e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000186f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001870" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001871" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001872" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001873" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001874" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001875" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001876" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001877" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001878" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001879" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000187a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000187b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000187c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000187d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000187e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000187f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001880" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001881" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001882" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001883" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001884" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001885" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001886" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001887" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001888" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001889" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000188a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000188b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000188c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000188d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000188e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000188f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001890" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001891" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001892" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001893" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001894" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001895" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001896" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001897" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001898" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001899" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000189a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000189b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000189c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000189d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000189e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000189f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000018ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001900" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001901" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001902" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001903" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001904" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001905" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001906" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001907" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001908" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001909" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000190a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000190b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000190c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000190d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000190e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000190f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001910" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001911" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001912" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001913" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001914" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001915" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001916" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001917" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001918" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001919" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000191a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000191b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000191c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000191d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000191e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000191f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001920" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001921" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001922" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001923" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001924" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001925" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001926" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001927" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001928" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001929" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000192a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000192b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000192c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000192d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000192e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000192f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001930" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001931" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001932" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001933" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001934" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001935" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001936" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001937" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001938" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001939" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000193a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000193b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000193c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000193d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000193e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000193f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001940" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001941" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001942" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001943" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001944" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001945" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001946" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001947" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001948" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001949" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000194a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000194b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000194c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000194d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000194e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000194f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001950" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001951" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001952" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001953" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001954" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001955" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001956" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001957" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001958" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001959" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000195a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000195b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000195c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000195d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000195e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000195f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001960" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001961" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001962" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001963" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001964" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001965" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001966" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001967" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001968" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001969" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000196a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000196b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000196c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000196d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000196e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000196f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001970" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001971" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001972" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001973" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001974" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001975" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001976" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001977" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001978" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001979" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000197a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000197b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000197c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000197d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000197e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000197f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001980" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001981" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001982" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001983" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001984" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001985" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001986" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001987" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001988" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001989" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000198a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000198b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000198c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000198d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000198e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000198f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001990" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001991" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001992" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001993" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001994" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001995" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001996" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001997" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001998" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001999" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000199a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000199b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000199c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000199d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000199e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000199f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000019ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a00" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a01" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a02" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a03" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a04" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a05" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a06" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a07" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a08" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a09" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a0a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a0c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a0d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a0e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a0f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a10" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a11" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a12" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a13" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a14" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a15" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a16" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a17" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a18" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a19" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a1a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a1b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a1c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a1d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a1e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a1f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a20" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a21" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a22" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a23" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a24" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a25" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a26" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a27" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a28" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a29" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a2a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a2b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a2c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a2d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a2e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a2f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a30" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a31" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a32" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a33" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a34" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a35" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a36" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a37" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a38" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a39" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a3a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a3b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a3c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a3d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a3e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a3f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a41" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a42" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a43" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a44" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a45" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a46" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a47" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a48" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a49" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a4a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a4b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a4c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a4d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a4e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a4f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a50" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a51" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a52" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a53" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a54" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a55" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a56" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a57" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a58" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a59" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a5a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a5b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a5c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a5d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a5e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a5f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a60" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a61" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a62" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a63" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a64" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a65" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a66" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a67" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a68" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a69" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a6a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a6b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a6c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a6d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a6e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a6f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a70" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a71" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a72" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a73" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a74" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a75" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a76" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a77" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a78" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a79" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a7a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a7b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a7c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a7d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a7e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a7f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a80" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a81" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a82" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a83" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a84" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a85" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a86" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a87" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a88" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a89" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a8a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a8b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a8c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a8d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a8e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a8f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a90" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a91" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a92" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a93" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a94" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a95" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a96" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a97" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a98" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a99" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a9a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a9b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a9c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a9d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a9e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001a9f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aa0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aa1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aa2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aa3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aa4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aa5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aa6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aa7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aa8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aa9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aaa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aaf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ab0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ab1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ab2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ab3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ab4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ab5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ab6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ab7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ab8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ab9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001abb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001abc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001abd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001abe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001abf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ac0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ac1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ac2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ac3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ac4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ac5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ac6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ac7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ac8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ac9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001acb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001acc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001acd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ace" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001acf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ad0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ad1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ad2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ad3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ad4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ad5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ad6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ad7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ad8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ad9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ada" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001adb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001adc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001add" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ade" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001adf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ae0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ae1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ae2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ae3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ae4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ae5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ae6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ae7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ae8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ae9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aeb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001af0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001af1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001af2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001af3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001af4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001af5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001af6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001af7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001af8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001af9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001afa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001afb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001afc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001afd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001afe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001aff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b00" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b01" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b02" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b03" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b04" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b05" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b06" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b07" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b08" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b09" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b0a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b0c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b0d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b0e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b0f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b10" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b11" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b12" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b13" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b14" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b15" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b16" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b17" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b18" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b19" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b1a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b1b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b1c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b1d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b1e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b1f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b20" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b21" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b22" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b23" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b24" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b25" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b26" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b27" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b28" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b29" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b2a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b2b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b2c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b2d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b2e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b2f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b30" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b31" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b32" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b33" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b34" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b35" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b36" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b37" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b38" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b39" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b3a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b3b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b3c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b3d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b3e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b3f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b41" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b42" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b43" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b44" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b45" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b46" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b47" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b48" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b49" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b4a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b4b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b4c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b4d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b4e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b4f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b50" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b51" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b52" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b53" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b54" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b55" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b56" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b57" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b58" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b59" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b5a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b5b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b5c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b5d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b5e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b5f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b60" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b61" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b62" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b63" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b64" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b65" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b66" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b67" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b68" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b69" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b6a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b6b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b6c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b6d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b6e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b6f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b70" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b71" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b72" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b73" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b74" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b75" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b76" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b77" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b78" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b79" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b7a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b7b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b7c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b7d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b7e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b7f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b80" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b81" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b82" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b83" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b84" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b85" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b86" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b87" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b88" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b89" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b8a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b8b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b8c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b8d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b8e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b8f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b90" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b91" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b92" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b93" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b94" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b95" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b96" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b97" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b98" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b99" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b9a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b9b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b9c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b9d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b9e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001b9f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ba0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ba1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ba2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ba3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ba4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ba5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ba6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ba7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ba8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ba9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001baa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001baf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bb0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bb1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bb2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bb3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bb4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bb5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bb6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bb7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bb8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bb9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bbb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bbc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bbd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bbe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bbf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bc0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bc1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bc2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bc3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bc4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bc5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bc6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bc7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bc8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bc9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bcb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bcc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bcd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bcf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bd0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bd1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bd2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bd3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bd4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bd5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bd6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bd7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bd8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bd9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bda" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bdb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bdc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bdd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bde" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bdf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001be0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001be1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001be2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001be3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001be4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001be5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001be6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001be7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001be8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001be9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001beb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bf0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bf1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bf2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bf3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bf4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bf5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bf6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bf7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bf8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bf9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bfa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bfb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bfc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bfd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bfe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001bff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c00" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c01" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c02" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c03" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c04" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c05" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c06" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c07" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c08" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c09" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c0a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c0c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c0d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c0e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c0f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c10" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c11" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c12" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c13" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c14" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c15" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c16" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c17" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c18" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c19" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c1a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c1b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c1c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c1d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c1e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c1f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c20" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c21" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c22" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c23" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c24" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c25" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c26" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c27" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c28" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c29" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c2a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c2b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c2c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c2d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c2e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c2f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c30" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c31" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c32" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c33" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c34" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c35" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c36" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c37" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c38" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c39" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c3a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c3b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c3c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c3d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c3e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c3f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c41" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c42" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c43" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c44" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c45" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c46" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c47" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c48" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c49" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c4a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c4b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c4c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c4d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c4e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c4f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c50" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c51" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c52" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c53" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c54" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c55" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c56" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c57" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c58" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c59" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c5a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c5b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c5c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c5d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c5e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c5f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c60" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c61" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c62" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c63" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c64" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c65" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c66" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c67" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c68" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c69" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c6a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c6b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c6c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c6d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c6e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c6f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c70" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c71" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c72" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c73" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c74" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c75" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c76" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c77" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c78" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c79" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c7a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c7b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c7c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c7d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c7e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c7f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c80" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c81" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c82" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c83" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c84" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c85" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c86" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c87" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c88" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c89" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c8a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c8b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c8c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c8d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c8e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c8f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c90" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c91" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c92" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c93" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c94" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c95" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c96" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c97" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c98" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c99" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c9a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c9b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c9c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c9d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c9e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001c9f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ca0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ca1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ca2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ca3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ca4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ca5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ca6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ca7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ca8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ca9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001caa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001caf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cb0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cb1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cb2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cb3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cb4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cb5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cb6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cb7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cb8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cb9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cbb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cbc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cbd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cbe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cbf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cc0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cc1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cc2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cc3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cc4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cc5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cc6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cc7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cc8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cc9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ccb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ccc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ccd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ccf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cd0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cd1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cd2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cd3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cd4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cd5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cd6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cd7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cd8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cd9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cda" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cdb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cdc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cdd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cde" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cdf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ce0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ce1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ce2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ce3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ce4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ce5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ce6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ce7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ce8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ce9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ceb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ced" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cf0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cf1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cf2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cf3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cf4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cf5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cf6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cf7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cf8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cf9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cfa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cfb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cfc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cfd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cfe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001cff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d00" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d01" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d02" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d03" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d04" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d05" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d06" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d07" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d08" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d09" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d0a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d0c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d0d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d0e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d0f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d10" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d11" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d12" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d13" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d14" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d15" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d16" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d17" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d18" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d19" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d1a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d1b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d1c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d1d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d1e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d1f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d20" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d21" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d22" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d23" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d24" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d25" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d26" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d27" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d28" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d29" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d2a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d2b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d2c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d2d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d2e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d2f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d30" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d31" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d32" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d33" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d34" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d35" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d36" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d37" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d38" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d39" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d3a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d3b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d3c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d3d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d3e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d3f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d41" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d42" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d43" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d44" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d45" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d46" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d47" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d48" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d49" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d4a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d4b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d4c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d4d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d4e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d4f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d50" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d51" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d52" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d53" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d54" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d55" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d56" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d57" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d58" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d59" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d5a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d5b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d5c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d5d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d5e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d5f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d60" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d61" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d62" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d63" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d64" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d65" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d66" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d67" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d68" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d69" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d6a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d6b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d6c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d6d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d6e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d6f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d70" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d71" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d72" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d73" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d74" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d75" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d76" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d77" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d78" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d79" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d7a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d7b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d7c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d7d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d7e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d7f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d80" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d81" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d82" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d83" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d84" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d85" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d86" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d87" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d88" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d89" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d8a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d8b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d8c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d8d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d8e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d8f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d90" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d91" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d92" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d93" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d94" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d95" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d96" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d97" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d98" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d99" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d9a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d9b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d9c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d9d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d9e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001d9f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001da0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001da1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001da2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001da3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001da4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001da5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001da6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001da7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001da8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001da9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001daa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001daf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001db0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001db1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001db2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001db3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001db4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001db5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001db6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001db7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001db8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001db9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dbb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dbc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dbd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dbe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dbf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dc0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dc1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dc2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dc3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dc4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dc5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dc6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dc7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dc8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dc9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dcb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dcc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dcd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dcf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dd0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dd1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dd2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dd3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dd4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dd5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dd6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dd7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dd8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dd9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dda" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ddb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ddc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ddd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dde" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ddf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001de0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001de1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001de2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001de3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001de4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001de5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001de6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001de7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001de8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001de9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001deb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ded" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001def" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001df0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001df1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001df2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001df3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001df4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001df5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001df6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001df7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001df8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001df9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dfa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dfb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dfc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dfd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dfe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001dff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e00" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e01" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e02" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e03" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e04" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e05" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e06" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e07" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e08" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e09" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e0a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e0c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e0d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e0e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e0f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e10" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e11" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e12" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e13" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e14" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e15" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e16" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e17" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e18" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e19" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e1a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e1b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e1c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e1d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e1e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e1f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e20" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e21" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e22" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e23" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e24" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e25" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e26" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e27" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e28" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e29" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e2a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e2b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e2c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e2d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e2e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e2f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e30" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e31" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e32" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e33" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e34" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e35" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e36" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e37" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e38" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e39" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e3a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e3b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e3c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e3d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e3e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e3f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e41" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e42" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e43" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e44" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e45" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e46" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e47" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e48" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e49" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e4a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e4b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e4c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e4d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e4e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e4f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e50" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e51" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e52" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e53" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e54" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e55" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e56" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e57" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e58" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e59" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e5a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e5b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e5c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e5d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e5e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e5f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e60" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e61" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e62" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e63" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e64" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e65" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e66" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e67" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e68" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e69" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e6a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e6b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e6c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e6d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e6e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e6f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e70" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e71" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e72" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e73" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e74" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e75" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e76" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e77" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e78" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e79" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e7a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e7b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e7c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e7d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e7e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e7f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e80" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e81" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e82" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e83" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e84" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e85" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e86" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e87" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e88" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e89" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e8a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e8b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e8c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e8d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e8e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e8f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e90" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e91" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e92" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e93" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e94" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e95" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e96" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e97" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e98" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e99" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e9a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e9b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e9c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e9d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e9e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001e9f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ea0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ea1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ea2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ea3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ea4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ea5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ea6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ea7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ea8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ea9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eaa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ead" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eaf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eb0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eb1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eb2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eb3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eb4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eb5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eb6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eb7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eb8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eb9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ebb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ebc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ebd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ebe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ebf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ec0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ec1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ec2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ec3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ec4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ec5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ec6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ec7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ec8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ec9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ecb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ecc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ecd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ece" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ecf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ed0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ed1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ed2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ed3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ed4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ed5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ed6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ed7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ed8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ed9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eda" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001edb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001edc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001edd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ede" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001edf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ee0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ee1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ee2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ee3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ee4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ee5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ee6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ee7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ee8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ee9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eeb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ef0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ef1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ef2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ef3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ef4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ef5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ef6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ef7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ef8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ef9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001efa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001efb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001efc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001efd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001efe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001eff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f00" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f01" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f02" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f03" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f04" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f05" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f06" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f07" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f08" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f09" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f0a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f0c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f0d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f0e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f0f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f10" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f11" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f12" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f13" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f14" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f15" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f16" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f17" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f18" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f19" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f1a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f1b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f1c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f1d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f1e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f1f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f20" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f21" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f22" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f23" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f24" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f25" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f26" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f27" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f28" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f29" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f2a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f2b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f2c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f2d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f2e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f2f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f30" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f31" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f32" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f33" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f34" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f35" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f36" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f37" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f38" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f39" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f3a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f3b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f3c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f3d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f3e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f3f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f41" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f42" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f43" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f44" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f45" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f46" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f47" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f48" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f49" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f4a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f4b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f4c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f4d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f4e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f4f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f50" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f51" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f52" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f53" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f54" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f55" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f56" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f57" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f58" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f59" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f5a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f5b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f5c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f5d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f5e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f5f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f60" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f61" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f62" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f63" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f64" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f65" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f66" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f67" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f68" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f69" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f6a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f6b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f6c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f6d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f6e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f6f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f70" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f71" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f72" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f73" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f74" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f75" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f76" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f77" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f78" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f79" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f7a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f7b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f7c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f7d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f7e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f7f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f80" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f81" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f82" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f83" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f84" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f85" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f86" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f87" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f88" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f89" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f8a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f8b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f8c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f8d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f8e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f8f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f90" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f91" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f92" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f93" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f94" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f95" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f96" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f97" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f98" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f99" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f9a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f9b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f9c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f9d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f9e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001f9f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fa0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fa1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fa2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fa3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fa4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fa5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fa6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fa7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fa8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fa9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001faa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001faf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fb0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fb1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fb2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fb3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fb4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fb5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fb6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fb7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fb8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fb9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fbb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fbc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fbd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fbe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fbf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fc0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fc1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fc2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fc3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fc4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fc5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fc6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fc7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fc8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fc9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fcb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fcc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fcd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fcf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fd0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fd1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fd2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fd3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fd4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fd5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fd6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fd7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fd8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fd9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fda" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fdb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fdc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fdd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fde" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fdf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fe0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fe1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fe2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fe3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fe4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fe5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fe6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fe7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fe8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fe9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001feb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ff0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ff1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ff2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ff3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ff4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ff5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ff6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ff7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ff8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ff9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ffa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ffb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ffc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ffd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001ffe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000001fff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002000" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002004" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002005" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002006" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002007" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002008" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002009" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000200a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000200b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000200c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000200d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000200e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000200f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002010" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002011" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002012" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002013" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002014" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002015" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002016" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002017" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002018" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002019" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000201a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000201b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000201c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000201d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000201e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000201f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002020" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002021" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002022" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002023" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002024" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002025" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002026" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002027" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002028" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002029" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000202a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000202b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000202c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000202d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000202e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000202f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002030" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002031" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002032" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002033" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002034" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002035" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002036" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002037" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002038" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002039" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000203a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000203b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000203c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000203d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000203e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000203f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002040" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002041" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002042" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002043" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002044" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002045" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002046" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002047" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002048" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002049" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000204a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000204b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000204c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000204d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000204e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000204f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002050" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002051" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002052" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002053" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002054" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002055" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002056" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002057" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002058" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002059" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000205a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000205b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000205c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000205d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000205e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000205f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002060" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002061" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002062" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002063" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002064" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002065" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002066" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002067" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002068" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002069" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000206a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000206b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000206c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000206d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000206e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000206f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002070" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002071" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002072" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002073" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002074" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002075" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002076" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002077" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002078" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002079" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000207a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000207b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000207c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000207d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000207e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000207f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002080" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002081" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002082" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002083" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002084" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002085" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002086" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002087" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002088" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002089" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000208a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000208b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000208c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000208d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000208e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000208f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002090" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002091" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002092" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002093" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002094" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002095" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002096" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002097" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002098" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002099" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000209a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000209b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000209c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000209d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000209e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000209f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020a0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020a1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020a2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020a3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020a4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020a5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020a6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020a7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020a8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020a9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020aa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ab" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ac" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ad" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ae" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020af" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020b0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020b1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020b2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020b3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020b4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020b5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020b6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020b7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020b8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020b9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ba" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020bb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020bc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020bd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020be" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020bf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020c0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020c1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020c2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020c3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020c4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020c5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020c6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020c7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020c8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020c9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ca" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020cb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020cc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020cd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ce" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020cf" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020d0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020d1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020d2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020d3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020d5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020d6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020d7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020d8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020d9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020da" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020db" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020dc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020dd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020de" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020df" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020e0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020e1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020e2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020e3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020e4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020e5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020e6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020e7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020e8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020e9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ea" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020eb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ec" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ed" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ee" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ef" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020f0" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020f1" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020f2" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020f3" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020f4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020f5" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020f6" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020f7" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020f8" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020f9" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020fa" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020fb" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020fc" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020fd" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020fe" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "00000000000000000000000000000000000020ff" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002100" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002101" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002102" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002103" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002104" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002105" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002106" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002107" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002108" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002109" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000210a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000210b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000210c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000210d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000210e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000210f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002110" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002111" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002112" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002113" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002114" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002115" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002116" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002117" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002118" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002119" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000211a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000211b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000211c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000211d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000211e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000211f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002120" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002121" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002122" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002123" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002124" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002125" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002126" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002127" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002128" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002129" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000212a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000212b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000212c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000212d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000212e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000212f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002130" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002131" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002132" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002133" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002134" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002135" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002136" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002137" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002138" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002139" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000213a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000213b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000213c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000213d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000213e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000213f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002140" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002141" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002142" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002143" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002144" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002145" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002146" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002147" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002148" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002149" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000214a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000214b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000214c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000214d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000214e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000214f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002150" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002151" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002152" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002153" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002154" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002155" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002156" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002157" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002158" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002159" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000215a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000215b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000215c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000215d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000215e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000215f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002160" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002161" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002162" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002163" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002164" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002165" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002166" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002167" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002168" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002169" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000216a" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000216b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000216c" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000216d" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000216e" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "000000000000000000000000000000000000216f" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0000000000000000000000000000000000002170" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6a0a0fc761c612c340a0e98d33b37a75e5268472" : { + "balance" : "0x0de0b6b3a7640000", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x2170" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999226348", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x6a0a0fc761c612c340a0e98d33b37a75e5268472" : { - "balance" : "0x0de0b6b3a7640000", + "6a0a0fc761c612C340a0e98d33b37a75e5268472" : { + "balance" : "1000000000000000000", "code" : "0x7f6004600c60003960046000f3600035ff00000000000000000000000000000000600052602060006000f0600054805b6001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1506001018060005260008060208180876006f1505a616000106200002f57600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +60007,14 @@ "" ], "gasLimit" : [ - "0x0c3500" + "800000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6a0a0fc761c612C340a0e98d33b37a75e5268472", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6a0a0fc761c612C340a0e98d33b37a75e5268472", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/call_OOG_additionalGasCosts1.json b/GeneralStateTests/stCallCodes/call_OOG_additionalGasCosts1.json index 35142280c..1841c6875 100644 --- a/GeneralStateTests/stCallCodes/call_OOG_additionalGasCosts1.json +++ b/GeneralStateTests/stCallCodes/call_OOG_additionalGasCosts1.json @@ -2,81 +2,75 @@ "call_OOG_additionalGasCosts1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/call_OOG_additionalGasCosts1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8062bf5562f807ca2bd8f94dc31bc3b77775d5fef1e6b9ed74549acf3742cbbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999970000" } } - ], - "EIP158" : [ - { - "hash" : "0x8e5bd1989eadfd5129c7f0ae2ba9be8c347a8d109a000c333443a582eafcc58d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8062bf5562f807ca2bd8f94dc31bc3b77775d5fef1e6b9ed74549acf3742cbbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8062bf5562f807ca2bd8f94dc31bc3b77775d5fef1e6b9ed74549acf3742cbbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8e5bd1989eadfd5129c7f0ae2ba9be8c347a8d109a000c333443a582eafcc58d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21727" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999978273" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001611770f1", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (CALL 6000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +80,14 @@ "" ], "gasLimit" : [ - "0x7530" + "30000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/call_OOG_additionalGasCosts2.json b/GeneralStateTests/stCallCodes/call_OOG_additionalGasCosts2.json index 0ddf693d6..4250bbb76 100644 --- a/GeneralStateTests/stCallCodes/call_OOG_additionalGasCosts2.json +++ b/GeneralStateTests/stCallCodes/call_OOG_additionalGasCosts2.json @@ -2,88 +2,62 @@ "call_OOG_additionalGasCosts2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/call_OOG_additionalGasCosts2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x955466c86ec6ae7bead1f090c49283297a57ccaee9cbced7e7f03f21539503e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "0" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x7530" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7638ad0" } } - ], - "EIP158" : [ - { - "hash" : "0x955466c86ec6ae7bead1f090c49283297a57ccaee9cbced7e7f03f21539503e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x955466c86ec6ae7bead1f090c49283297a57ccaee9cbced7e7f03f21539503e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x955466c86ec6ae7bead1f090c49283297a57ccaee9cbced7e7f03f21539503e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x955466c86ec6ae7bead1f090c49283297a57ccaee9cbced7e7f03f21539503e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006001731000000000000000000000000000000000000001611770f1", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (CALL 6000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +67,14 @@ "" ], "gasLimit" : [ - "0x7530" + "30000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcall_00.json b/GeneralStateTests/stCallCodes/callcall_00.json index 941f55aa1..36e04a6ca 100644 --- a/GeneralStateTests/stCallCodes/callcall_00.json +++ b/GeneralStateTests/stCallCodes/callcall_00.json @@ -2,95 +2,72 @@ "callcall_00" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcall_00Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7ebd8fdaaeb5e96fd2ad3b11c675e3b16e5902ae4fe100710f39925e59ccd914", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000001", + "0x07" : "0x02", + "0xe6" : "0x1000000000000000000000000000000000000002", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7ebd8fdaaeb5e96fd2ad3b11c675e3b16e5902ae4fe100710f39925e59ccd914", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8f8ed2aed2973e159fa5486f47c6ebf15c5058f8e2350286b84b569bc6ce2d25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8f8ed2aed2973e159fa5486f47c6ebf15c5058f8e2350286b84b569bc6ce2d25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7ebd8fdaaeb5e96fd2ad3b11c675e3b16e5902ae4fe100710f39925e59ccd914", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060027310000000000000000000000000000000000000026203d090f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALL 250000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025533600455346007553060e6553260e8553660ec553860ee553a60f055", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE))}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +77,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcall_00_OOGE.json b/GeneralStateTests/stCallCodes/callcall_00_OOGE.json index dcc1f8bb9..60e7bc98e 100644 --- a/GeneralStateTests/stCallCodes/callcall_00_OOGE.json +++ b/GeneralStateTests/stCallCodes/callcall_00_OOGE.json @@ -2,95 +2,75 @@ "callcall_00_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcall_00_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9ec338ed8924f9d1ec3c31a3869815c4d36353c789941aaf432128a12102bfd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9ec338ed8924f9d1ec3c31a3869815c4d36353c789941aaf432128a12102bfd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa66f080864c72c593d874a42aa8c17eff838bf1e45ecb0bbe2bb041a3c235f94", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa66f080864c72c593d874a42aa8c17eff838bf1e45ecb0bbe2bb041a3c235f94", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9ec338ed8924f9d1ec3c31a3869815c4d36353c789941aaf432128a12102bfd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002614e34f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +80,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcall_00_OOGE_valueTransfer.json b/GeneralStateTests/stCallCodes/callcall_00_OOGE_valueTransfer.json index 17c1c9922..d22765fb6 100644 --- a/GeneralStateTests/stCallCodes/callcall_00_OOGE_valueTransfer.json +++ b/GeneralStateTests/stCallCodes/callcall_00_OOGE_valueTransfer.json @@ -2,135 +2,107 @@ "callcall_00_OOGE_valueTransfer" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcall_00_OOGE_valueTransferFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa0cd16519becf11ddd65f0aa43e0e4dafdef18d87de8fe4ac3e396758e8fb0a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x18f49ad2f2527eabe4cf24910a048341c7875650f34679a96db8fd6147af702b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa0cd16519becf11ddd65f0aa43e0e4dafdef18d87de8fe4ac3e396758e8fb0a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x18f49ad2f2527eabe4cf24910a048341c7875650f34679a96db8fd6147af702b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3972c50ed3df88eb64729a02c3cfcb06ae7f0b2dbf16870213633e6d160936f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x3972c50ed3df88eb64729a02c3cfcb06ae7f0b2dbf16870213633e6d160936f9", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x3972c50ed3df88eb64729a02c3cfcb06ae7f0b2dbf16870213633e6d160936f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3972c50ed3df88eb64729a02c3cfcb06ae7f0b2dbf16870213633e6d160936f9", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa0cd16519becf11ddd65f0aa43e0e4dafdef18d87de8fe4ac3e396758e8fb0a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x18f49ad2f2527eabe4cf24910a048341c7875650f34679a96db8fd6147af702b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60003560005260406000604060006014731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 20 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000600a731000000000000000000000000000000000000002600035f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL (CALLDATALOAD 0) 0x1000000000000000000000000000000000000002 10 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -141,14 +113,14 @@ "0x0000000000000000000000000000000000000000000000000000000000001388" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcall_00_SuicideEnd.json b/GeneralStateTests/stCallCodes/callcall_00_SuicideEnd.json index 6d237aca5..aef2c4559 100644 --- a/GeneralStateTests/stCallCodes/callcall_00_SuicideEnd.json +++ b/GeneralStateTests/stCallCodes/callcall_00_SuicideEnd.json @@ -2,95 +2,66 @@ "callcall_00_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcall_00_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x24f1a71eb1db0e939e466f484a7bdc5e99020478c8792957b7283ae160ba5114", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000" + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x24f1a71eb1db0e939e466f484a7bdc5e99020478c8792957b7283ae160ba5114", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6edf980c4ea12c7909b073b2fd8902d00bb24a0b9df2142eb415aa31e4c7edda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6edf980c4ea12c7909b073b2fd8902d00bb24a0b9df2142eb415aa31e4c7edda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x24f1a71eb1db0e939e466f484a7bdc5e99020478c8792957b7283ae160ba5114", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +71,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcall_000.json b/GeneralStateTests/stCallCodes/callcallcall_000.json index 0099e7db6..2cb6dfb32 100644 --- a/GeneralStateTests/stCallCodes/callcallcall_000.json +++ b/GeneralStateTests/stCallCodes/callcallcall_000.json @@ -2,102 +2,76 @@ "callcallcall_000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcall_000Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x032e35d298fcec655b23a551cacd49a7fb4549bb4d962b3e8d011e9a49b584d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000002", + "0x07" : "0x03" + } } } - ], - "EIP158" : [ - { - "hash" : "0x032e35d298fcec655b23a551cacd49a7fb4549bb4d962b3e8d011e9a49b584d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1ed24a8068d61509a3b7b1c30d1311735bba0587f6f6877efd5e74aa2364d382", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1ed24a8068d61509a3b7b1c30d1311735bba0587f6f6877efd5e74aa2364d382", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x032e35d298fcec655b23a551cacd49a7fb4549bb4d962b3e8d011e9a49b584d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620493e0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060037310000000000000000000000000000000000000036203d090f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +81,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcall_000_OOGE.json b/GeneralStateTests/stCallCodes/callcallcall_000_OOGE.json index db43336a3..9a91d7365 100644 --- a/GeneralStateTests/stCallCodes/callcallcall_000_OOGE.json +++ b/GeneralStateTests/stCallCodes/callcallcall_000_OOGE.json @@ -2,102 +2,90 @@ "callcallcall_000_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcall_000_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x05e4fd564371885b0d4ece7dc2d92a18f71da4915d212db0c18d87ba94ce3fb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x05e4fd564371885b0d4ece7dc2d92a18f71da4915d212db0c18d87ba94ce3fb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7d58669ba6ac24ea5bb8aae0dd7a7143b069e37b06e31fad81976a51f35a47f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7d58669ba6ac24ea5bb8aae0dd7a7143b069e37b06e31fad81976a51f35a47f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x05e4fd564371885b0d4ece7dc2d92a18f71da4915d212db0c18d87ba94ce3fb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +95,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcall_000_OOGMAfter.json b/GeneralStateTests/stCallCodes/callcallcall_000_OOGMAfter.json index 17fcdd1c3..45c1a300c 100644 --- a/GeneralStateTests/stCallCodes/callcallcall_000_OOGMAfter.json +++ b/GeneralStateTests/stCallCodes/callcallcall_000_OOGMAfter.json @@ -2,102 +2,130 @@ "callcallcall_000_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcall_000_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xeaa75d5c02ffb6835ea792d976c4944bc11f4e27a85227c8cf73ee14c451ff46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xeaa75d5c02ffb6835ea792d976c4944bc11f4e27a85227c8cf73ee14c451ff46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa767a97d79ec39107df9149cc68b1199fcdc3fd89a41193dd5c280eeb56ddc42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa767a97d79ec39107df9149cc68b1199fcdc3fd89a41193dd5c280eeb56ddc42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xeaa75d5c02ffb6835ea792d976c4944bc11f4e27a85227c8cf73ee14c451ff46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +135,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcall_000_OOGMBefore.json b/GeneralStateTests/stCallCodes/callcallcall_000_OOGMBefore.json index 0df480581..ea312d3b0 100644 --- a/GeneralStateTests/stCallCodes/callcallcall_000_OOGMBefore.json +++ b/GeneralStateTests/stCallCodes/callcallcall_000_OOGMBefore.json @@ -2,102 +2,90 @@ "callcallcall_000_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcall_000_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd2bc86dc047a69d169c9a13f9330765ff4509230af9d321fe367c09c30d095e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd2bc86dc047a69d169c9a13f9330765ff4509230af9d321fe367c09c30d095e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf46f37e7238438a444d89b8156b5cb11c331f0dafe29aa0c9d1396894b6ddf89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf46f37e7238438a444d89b8156b5cb11c331f0dafe29aa0c9d1396894b6ddf89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd2bc86dc047a69d169c9a13f9330765ff4509230af9d321fe367c09c30d095e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +95,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcall_000_SuicideEnd.json b/GeneralStateTests/stCallCodes/callcallcall_000_SuicideEnd.json index c7568d739..e89a02a6a 100644 --- a/GeneralStateTests/stCallCodes/callcallcall_000_SuicideEnd.json +++ b/GeneralStateTests/stCallCodes/callcallcall_000_SuicideEnd.json @@ -2,102 +2,73 @@ "callcallcall_000_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcall_000_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5c6d6ece9302edcdcc03a8fcbc0b16c8a09caf7764d920ff59477f10d55747c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "20000000000" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5c6d6ece9302edcdcc03a8fcbc0b16c8a09caf7764d920ff59477f10d55747c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb2cc70b5c91805a7ba65d849ab2f2977354a5ed97458fa5481daaa78dd01783f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb2cc70b5c91805a7ba65d849ab2f2977354a5ed97458fa5481daaa78dd01783f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5c6d6ece9302edcdcc03a8fcbc0b16c8a09caf7764d920ff59477f10d55747c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +78,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcall_000_SuicideMiddle.json b/GeneralStateTests/stCallCodes/callcallcall_000_SuicideMiddle.json index d78a6da78..ef91e4d17 100644 --- a/GeneralStateTests/stCallCodes/callcallcall_000_SuicideMiddle.json +++ b/GeneralStateTests/stCallCodes/callcallcall_000_SuicideMiddle.json @@ -2,102 +2,76 @@ "callcallcall_000_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcall_000_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd9620bfd8663f199f897de8e5ea7554639c40fb564940dfc8f0b2aa7a2a8a0e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd9620bfd8663f199f897de8e5ea7554639c40fb564940dfc8f0b2aa7a2a8a0e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x23f8f86852e3e4a2e279acb10d051dda77dcf6af0c37ce21c97d73ece5af9951", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x23f8f86852e3e4a2e279acb10d051dda77dcf6af0c37ce21c97d73ece5af9951", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd9620bfd8663f199f897de8e5ea7554639c40fb564940dfc8f0b2aa7a2a8a0e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +81,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcall_ABCB_RECURSIVE.json b/GeneralStateTests/stCallCodes/callcallcall_ABCB_RECURSIVE.json index 9352b762d..004282bd5 100644 --- a/GeneralStateTests/stCallCodes/callcallcall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallCodes/callcallcall_ABCB_RECURSIVE.json @@ -2,95 +2,113 @@ "callcallcall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb416fc6cf45e453dd9cd560d6a4e38b17562443c1e17528a3f6d81e071489ef5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" } } - ], - "EIP158" : [ - { - "hash" : "0xb416fc6cf45e453dd9cd560d6a4e38b17562443c1e17528a3f6d81e071489ef5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf9904c46ff09c63f9864b18ef1acc3fa7ddda90e80b87f197500e40be0f61e54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf9904c46ff09c63f9864b18ef1acc3fa7ddda90e80b87f197500e40be0f61e54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb416fc6cf45e453dd9cd560d6a4e38b17562443c1e17528a3f6d81e071489ef5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +118,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcallcode_001.json b/GeneralStateTests/stCallCodes/callcallcallcode_001.json index 098cc4460..cd17a8754 100644 --- a/GeneralStateTests/stCallCodes/callcallcallcode_001.json +++ b/GeneralStateTests/stCallCodes/callcallcallcode_001.json @@ -2,102 +2,77 @@ "callcallcallcode_001" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcallcode_001Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x12596d09e34d8fe77b7639ff7a08660d4886299db9bf62db8c16e6823cadf84c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000002", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000002", + "0x07" : "0x03" + } } } - ], - "EIP158" : [ - { - "hash" : "0x12596d09e34d8fe77b7639ff7a08660d4886299db9bf62db8c16e6823cadf84c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b22357b48c2d396726a13e3eed3e61a6ee67351051154572f734c4090796124", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2b22357b48c2d396726a13e3eed3e61a6ee67351051154572f734c4090796124", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x12596d09e34d8fe77b7639ff7a08660d4886299db9bf62db8c16e6823cadf84c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620493e0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060037310000000000000000000000000000000000000036203d090f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +82,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcallcode_001_OOGE.json b/GeneralStateTests/stCallCodes/callcallcallcode_001_OOGE.json index e701cbefe..813a8facd 100644 --- a/GeneralStateTests/stCallCodes/callcallcallcode_001_OOGE.json +++ b/GeneralStateTests/stCallCodes/callcallcallcode_001_OOGE.json @@ -2,102 +2,93 @@ "callcallcallcode_001_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcallcode_001_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7b92ad9527c67d4c4c4d297d7602cb02a8a95e6810730cd5164c4ab3d2c84956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7b92ad9527c67d4c4c4d297d7602cb02a8a95e6810730cd5164c4ab3d2c84956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x606981436db0f6678cdf2891f26f52bd2659a6649d3c709acda4bf161b59c7c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x606981436db0f6678cdf2891f26f52bd2659a6649d3c709acda4bf161b59c7c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7b92ad9527c67d4c4c4d297d7602cb02a8a95e6810730cd5164c4ab3d2c84956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +98,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcallcode_001_OOGMAfter.json b/GeneralStateTests/stCallCodes/callcallcallcode_001_OOGMAfter.json index a9dc2a5ed..c4d7ebcb2 100644 --- a/GeneralStateTests/stCallCodes/callcallcallcode_001_OOGMAfter.json +++ b/GeneralStateTests/stCallCodes/callcallcallcode_001_OOGMAfter.json @@ -2,102 +2,130 @@ "callcallcallcode_001_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcallcode_001_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x85024ce7f661d120051f7221c36fa705e32eb6e5f0a1df3de2452b6dd3f0f488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x85024ce7f661d120051f7221c36fa705e32eb6e5f0a1df3de2452b6dd3f0f488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xed050e8941d0530b3fab2fe1307f8b8ebed135ad216d2aa8f52c2d83f22399b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xed050e8941d0530b3fab2fe1307f8b8ebed135ad216d2aa8f52c2d83f22399b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x85024ce7f661d120051f7221c36fa705e32eb6e5f0a1df3de2452b6dd3f0f488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +135,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcallcode_001_OOGMBefore.json b/GeneralStateTests/stCallCodes/callcallcallcode_001_OOGMBefore.json index 78ebaf65f..37246aa95 100644 --- a/GeneralStateTests/stCallCodes/callcallcallcode_001_OOGMBefore.json +++ b/GeneralStateTests/stCallCodes/callcallcallcode_001_OOGMBefore.json @@ -2,102 +2,90 @@ "callcallcallcode_001_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcallcode_001_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9b100dde5e66323eb06b6719b88472b366cbae95de5eeb62ed28f8254f3fc723", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9b100dde5e66323eb06b6719b88472b366cbae95de5eeb62ed28f8254f3fc723", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6e70eb4863af52fd076d45371513ff49043c76b06c11ef2bba4d4ab8edf33aba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6e70eb4863af52fd076d45371513ff49043c76b06c11ef2bba4d4ab8edf33aba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9b100dde5e66323eb06b6719b88472b366cbae95de5eeb62ed28f8254f3fc723", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +95,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcallcode_001_SuicideEnd.json b/GeneralStateTests/stCallCodes/callcallcallcode_001_SuicideEnd.json index b14b8eab1..f1092f90a 100644 --- a/GeneralStateTests/stCallCodes/callcallcallcode_001_SuicideEnd.json +++ b/GeneralStateTests/stCallCodes/callcallcallcode_001_SuicideEnd.json @@ -2,102 +2,73 @@ "callcallcallcode_001_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcallcode_001_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x690ad82b4158dcc88162392a81d90a0dbbbd746780f4b49ef42967625d197c46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "20000000000" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x690ad82b4158dcc88162392a81d90a0dbbbd746780f4b49ef42967625d197c46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5ee6eeb669c1d7a7e71592eb8cb5a34c0375a8996d698e02f565fbf18da69705", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5ee6eeb669c1d7a7e71592eb8cb5a34c0375a8996d698e02f565fbf18da69705", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x690ad82b4158dcc88162392a81d90a0dbbbd746780f4b49ef42967625d197c46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +78,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcallcode_001_SuicideMiddle.json b/GeneralStateTests/stCallCodes/callcallcallcode_001_SuicideMiddle.json index 5c77f5b51..d5938fc94 100644 --- a/GeneralStateTests/stCallCodes/callcallcallcode_001_SuicideMiddle.json +++ b/GeneralStateTests/stCallCodes/callcallcallcode_001_SuicideMiddle.json @@ -2,102 +2,77 @@ "callcallcallcode_001_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcallcode_001_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd9620bfd8663f199f897de8e5ea7554639c40fb564940dfc8f0b2aa7a2a8a0e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd9620bfd8663f199f897de8e5ea7554639c40fb564940dfc8f0b2aa7a2a8a0e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x23f8f86852e3e4a2e279acb10d051dda77dcf6af0c37ce21c97d73ece5af9951", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x23f8f86852e3e4a2e279acb10d051dda77dcf6af0c37ce21c97d73ece5af9951", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd9620bfd8663f199f897de8e5ea7554639c40fb564940dfc8f0b2aa7a2a8a0e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +82,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stCallCodes/callcallcallcode_ABCB_RECURSIVE.json index 0feca28c2..1e8a7a786 100644 --- a/GeneralStateTests/stCallCodes/callcallcallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallCodes/callcallcallcode_ABCB_RECURSIVE.json @@ -2,95 +2,113 @@ "callcallcallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd60f0feab4578b9374bf7263fe10d917b70201b56524b1b0f5543abd16635e7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" } } - ], - "EIP158" : [ - { - "hash" : "0xd60f0feab4578b9374bf7263fe10d917b70201b56524b1b0f5543abd16635e7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5cfc164fa79f7a1ed6e4c96e479a96efdb50a7c14eb59af4016b1f0de169504e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5cfc164fa79f7a1ed6e4c96e479a96efdb50a7c14eb59af4016b1f0de169504e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd60f0feab4578b9374bf7263fe10d917b70201b56524b1b0f5543abd16635e7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +118,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcode_01.json b/GeneralStateTests/stCallCodes/callcallcode_01.json index 61aa25a3d..9ee413046 100644 --- a/GeneralStateTests/stCallCodes/callcallcode_01.json +++ b/GeneralStateTests/stCallCodes/callcallcode_01.json @@ -2,95 +2,70 @@ "callcallcode_01" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcode_01Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9d5a38358bff52dd9b7c82e53e45d22a2eb7917db9de0c05fe0b1b5e2dd24b7a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000001", + "0x07" : "0x02", + "0xe6" : "0x1000000000000000000000000000000000000001", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9d5a38358bff52dd9b7c82e53e45d22a2eb7917db9de0c05fe0b1b5e2dd24b7a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x54475c6c67f504eace680150ef531ece0daf0181a5b469f8c369a5c74c1ce53c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x54475c6c67f504eace680150ef531ece0daf0181a5b469f8c369a5c74c1ce53c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9d5a38358bff52dd9b7c82e53e45d22a2eb7917db9de0c05fe0b1b5e2dd24b7a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060027310000000000000000000000000000000000000026203d090f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025533600455346007553060e6553260e8553660ec553860ee553a60f055", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcode_01_OOGE.json b/GeneralStateTests/stCallCodes/callcallcode_01_OOGE.json index 57ede26b3..ddc978dfe 100644 --- a/GeneralStateTests/stCallCodes/callcallcode_01_OOGE.json +++ b/GeneralStateTests/stCallCodes/callcallcode_01_OOGE.json @@ -2,95 +2,75 @@ "callcallcode_01_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcode_01_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa4e40e003f4451cb909d92c1bedae7067a5625364638d346c6c7707814010ad6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa4e40e003f4451cb909d92c1bedae7067a5625364638d346c6c7707814010ad6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe4209a1b867017e6b14927afeeed7d1129d53ecf7d18a29c7ee4b0ffa2a313a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe4209a1b867017e6b14927afeeed7d1129d53ecf7d18a29c7ee4b0ffa2a313a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa4e40e003f4451cb909d92c1bedae7067a5625364638d346c6c7707814010ad6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002614e34f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +80,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcode_01_SuicideEnd.json b/GeneralStateTests/stCallCodes/callcallcode_01_SuicideEnd.json index a125eb48d..de1630b92 100644 --- a/GeneralStateTests/stCallCodes/callcallcode_01_SuicideEnd.json +++ b/GeneralStateTests/stCallCodes/callcallcode_01_SuicideEnd.json @@ -2,95 +2,66 @@ "callcallcode_01_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcode_01_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd56431bc1677db24c8d1e96c6ad3a2b4bcdafac7f3d40f29a07a60ac05620eed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000" + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd56431bc1677db24c8d1e96c6ad3a2b4bcdafac7f3d40f29a07a60ac05620eed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3618f0634e258733a71ad69de3d642b67e8eb7d30ed210514e7fd231c80e7370", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3618f0634e258733a71ad69de3d642b67e8eb7d30ed210514e7fd231c80e7370", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd56431bc1677db24c8d1e96c6ad3a2b4bcdafac7f3d40f29a07a60ac05620eed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +71,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecall_010.json b/GeneralStateTests/stCallCodes/callcallcodecall_010.json index f49851ba2..1fc1809be 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecall_010.json +++ b/GeneralStateTests/stCallCodes/callcallcodecall_010.json @@ -2,102 +2,82 @@ "callcallcodecall_010" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecall_010Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbc171762a13eae43b6919a40cc2384845b4006298db3cc4d12891369e6402cd3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000001", + "0x07" : "0x03" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbc171762a13eae43b6919a40cc2384845b4006298db3cc4d12891369e6402cd3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa71dce458a63645998a19a4c2f2c3bf68fb56b070835a91ae29d8ff94eb83d4d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa71dce458a63645998a19a4c2f2c3bf68fb56b070835a91ae29d8ff94eb83d4d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbc171762a13eae43b6919a40cc2384845b4006298db3cc4d12891369e6402cd3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620493e0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060037310000000000000000000000000000000000000036203d090f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +87,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecall_010_OOGE.json b/GeneralStateTests/stCallCodes/callcallcodecall_010_OOGE.json index a95c7d625..bb3de54e4 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecall_010_OOGE.json +++ b/GeneralStateTests/stCallCodes/callcallcodecall_010_OOGE.json @@ -2,102 +2,93 @@ "callcallcodecall_010_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecall_010_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0cbe5cffcd08f0ecf924fca2c8c4e80f0b33aa85bf5c177716739a780e74a5b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0cbe5cffcd08f0ecf924fca2c8c4e80f0b33aa85bf5c177716739a780e74a5b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4df6a657dc1699015b3105c69f85f344c8f02a0a67c7ea525d04382f4193a24e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4df6a657dc1699015b3105c69f85f344c8f02a0a67c7ea525d04382f4193a24e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0cbe5cffcd08f0ecf924fca2c8c4e80f0b33aa85bf5c177716739a780e74a5b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +98,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecall_010_OOGMAfter.json b/GeneralStateTests/stCallCodes/callcallcodecall_010_OOGMAfter.json index 114f9e7cb..78aeca667 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecall_010_OOGMAfter.json +++ b/GeneralStateTests/stCallCodes/callcallcodecall_010_OOGMAfter.json @@ -2,102 +2,136 @@ "callcallcodecall_010_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecall_010_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0e2b3eba8b61eda5f874976573a954510a2097f039564011eb11bb356a52eee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0e2b3eba8b61eda5f874976573a954510a2097f039564011eb11bb356a52eee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc41a25808023d223b1dc3f3914c233a901168605f5f02a9f15c5fadce6044462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc41a25808023d223b1dc3f3914c233a901168605f5f02a9f15c5fadce6044462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0e2b3eba8b61eda5f874976573a954510a2097f039564011eb11bb356a52eee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecall_010_OOGMBefore.json b/GeneralStateTests/stCallCodes/callcallcodecall_010_OOGMBefore.json index ea0fc1ade..1c23c7b57 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecall_010_OOGMBefore.json +++ b/GeneralStateTests/stCallCodes/callcallcodecall_010_OOGMBefore.json @@ -2,102 +2,93 @@ "callcallcodecall_010_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecall_010_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x50bb5017d9c0c0e18f3be754d132f796e7aaff23065caf2f0a803fb9cf5cff5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x50bb5017d9c0c0e18f3be754d132f796e7aaff23065caf2f0a803fb9cf5cff5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x88eb1770368d56d4c62fdef02d85cbe710724cef84e492c5360fe635ff3eedda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x88eb1770368d56d4c62fdef02d85cbe710724cef84e492c5360fe635ff3eedda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x50bb5017d9c0c0e18f3be754d132f796e7aaff23065caf2f0a803fb9cf5cff5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +98,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecall_010_SuicideEnd.json b/GeneralStateTests/stCallCodes/callcallcodecall_010_SuicideEnd.json index 69625c0ee..371487067 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecall_010_SuicideEnd.json +++ b/GeneralStateTests/stCallCodes/callcallcodecall_010_SuicideEnd.json @@ -2,102 +2,77 @@ "callcallcodecall_010_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecall_010_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb6ff93632d94e6a2fab89af79029d71c1e70ae92d912602ddbab344c26730068", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb6ff93632d94e6a2fab89af79029d71c1e70ae92d912602ddbab344c26730068", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x308b378d2e435c0692646066af5f00b554ff5b3a2c9ebfee622d34231ded98fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x308b378d2e435c0692646066af5f00b554ff5b3a2c9ebfee622d34231ded98fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb6ff93632d94e6a2fab89af79029d71c1e70ae92d912602ddbab344c26730068", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +82,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecall_010_SuicideMiddle.json b/GeneralStateTests/stCallCodes/callcallcodecall_010_SuicideMiddle.json index 5e82b9805..e371fd71a 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecall_010_SuicideMiddle.json +++ b/GeneralStateTests/stCallCodes/callcallcodecall_010_SuicideMiddle.json @@ -2,102 +2,83 @@ "callcallcodecall_010_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecall_010_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf18106d23711d6e82e3fe3424bc934bd0747155d0688b798defdee289e2dffb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf18106d23711d6e82e3fe3424bc934bd0747155d0688b798defdee289e2dffb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5032b0ab27e1f0ac4e7951396f82db3a8dc8300d4ad4186a83349b0d1b70e532", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5032b0ab27e1f0ac4e7951396f82db3a8dc8300d4ad4186a83349b0d1b70e532", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf18106d23711d6e82e3fe3424bc934bd0747155d0688b798defdee289e2dffb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +88,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecall_ABCB_RECURSIVE.json b/GeneralStateTests/stCallCodes/callcallcodecall_ABCB_RECURSIVE.json index 10b0208ef..fcc0c32d7 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallCodes/callcallcodecall_ABCB_RECURSIVE.json @@ -2,95 +2,113 @@ "callcallcodecall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc6cd69de23a75c8198e6e33bdef0f93c2a1a70a140548a93c20593f2dda3d941", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" } } - ], - "EIP158" : [ - { - "hash" : "0xc6cd69de23a75c8198e6e33bdef0f93c2a1a70a140548a93c20593f2dda3d941", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x28b46965732d9fed6925f56bd10ae0df42205d903c9c0b51f8c6b6295f6ead44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x28b46965732d9fed6925f56bd10ae0df42205d903c9c0b51f8c6b6295f6ead44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc6cd69de23a75c8198e6e33bdef0f93c2a1a70a140548a93c20593f2dda3d941", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +118,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecallcode_011.json b/GeneralStateTests/stCallCodes/callcallcodecallcode_011.json index cad443ff9..419cc3e70 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecallcode_011.json +++ b/GeneralStateTests/stCallCodes/callcallcodecallcode_011.json @@ -2,102 +2,78 @@ "callcallcodecallcode_011" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecallcode_011Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9b73e3601b02719ca2a8bf639f350fb9906c1238085b402be677faba97bddf9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000001", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000001", + "0x07" : "0x03" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9b73e3601b02719ca2a8bf639f350fb9906c1238085b402be677faba97bddf9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4257fafde1d6f617828d567841b0331101f8240fa2a7f4518318c7ee5439e487", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4257fafde1d6f617828d567841b0331101f8240fa2a7f4518318c7ee5439e487", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9b73e3601b02719ca2a8bf639f350fb9906c1238085b402be677faba97bddf9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620493e0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060037310000000000000000000000000000000000000036203d090f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +83,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecallcode_011_OOGE.json b/GeneralStateTests/stCallCodes/callcallcodecallcode_011_OOGE.json index bb80ebc4b..186ed57d0 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecallcode_011_OOGE.json +++ b/GeneralStateTests/stCallCodes/callcallcodecallcode_011_OOGE.json @@ -2,102 +2,91 @@ "callcallcodecallcode_011_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecallcode_011_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x666fd38cdf67c3b574d3319aa731d8bf10f212fdfb7d39bc8591815f182014df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x666fd38cdf67c3b574d3319aa731d8bf10f212fdfb7d39bc8591815f182014df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x80287ae33d156b8057b1c5242a8de40c31d2c1a2e79a2939594359ece6055df5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x80287ae33d156b8057b1c5242a8de40c31d2c1a2e79a2939594359ece6055df5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x666fd38cdf67c3b574d3319aa731d8bf10f212fdfb7d39bc8591815f182014df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +96,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecallcode_011_OOGMAfter.json b/GeneralStateTests/stCallCodes/callcallcodecallcode_011_OOGMAfter.json index da155a101..8a93c0dfb 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecallcode_011_OOGMAfter.json +++ b/GeneralStateTests/stCallCodes/callcallcodecallcode_011_OOGMAfter.json @@ -2,102 +2,130 @@ "callcallcodecallcode_011_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecallcode_011_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb1ae24b7ad575830405dcb5f29c2aeaa71ad90828970a9a729542de6a3d35daa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb1ae24b7ad575830405dcb5f29c2aeaa71ad90828970a9a729542de6a3d35daa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcd6b0d134a9ebf655f0e1f76cb2d6c8c66a36c478867d3abbb00d7655dbf0911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcd6b0d134a9ebf655f0e1f76cb2d6c8c66a36c478867d3abbb00d7655dbf0911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb1ae24b7ad575830405dcb5f29c2aeaa71ad90828970a9a729542de6a3d35daa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +135,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecallcode_011_OOGMBefore.json b/GeneralStateTests/stCallCodes/callcallcodecallcode_011_OOGMBefore.json index d83a55f75..18d48562a 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecallcode_011_OOGMBefore.json +++ b/GeneralStateTests/stCallCodes/callcallcodecallcode_011_OOGMBefore.json @@ -2,102 +2,90 @@ "callcallcodecallcode_011_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecallcode_011_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x29d489641ecc56959584b5595751df02b859cb7477cd1f9d83c3d556e4f66b77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x29d489641ecc56959584b5595751df02b859cb7477cd1f9d83c3d556e4f66b77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9584516d9633bace4678666471e26662982dcd9c842c62e00c9c9ff2ada13b15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9584516d9633bace4678666471e26662982dcd9c842c62e00c9c9ff2ada13b15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x29d489641ecc56959584b5595751df02b859cb7477cd1f9d83c3d556e4f66b77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +95,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecallcode_011_SuicideEnd.json b/GeneralStateTests/stCallCodes/callcallcodecallcode_011_SuicideEnd.json index 547d576d5..e625d53fb 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecallcode_011_SuicideEnd.json +++ b/GeneralStateTests/stCallCodes/callcallcodecallcode_011_SuicideEnd.json @@ -2,102 +2,72 @@ "callcallcodecallcode_011_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecallcode_011_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6b12f1a241fa65db9f44b42cd16ab4b5db2a5da287c7b436880014010adbad62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6b12f1a241fa65db9f44b42cd16ab4b5db2a5da287c7b436880014010adbad62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf43c5e45844f6bbb7b0a55cef021b13121fecab88793bdf5dea426825d17f9e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf43c5e45844f6bbb7b0a55cef021b13121fecab88793bdf5dea426825d17f9e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6b12f1a241fa65db9f44b42cd16ab4b5db2a5da287c7b436880014010adbad62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +77,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecallcode_011_SuicideMiddle.json b/GeneralStateTests/stCallCodes/callcallcodecallcode_011_SuicideMiddle.json index d4c25adb9..80bf96928 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecallcode_011_SuicideMiddle.json +++ b/GeneralStateTests/stCallCodes/callcallcodecallcode_011_SuicideMiddle.json @@ -2,102 +2,86 @@ "callcallcodecallcode_011_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecallcode_011_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf18106d23711d6e82e3fe3424bc934bd0747155d0688b798defdee289e2dffb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf18106d23711d6e82e3fe3424bc934bd0747155d0688b798defdee289e2dffb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5032b0ab27e1f0ac4e7951396f82db3a8dc8300d4ad4186a83349b0d1b70e532", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5032b0ab27e1f0ac4e7951396f82db3a8dc8300d4ad4186a83349b0d1b70e532", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf18106d23711d6e82e3fe3424bc934bd0747155d0688b798defdee289e2dffb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +91,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcallcodecallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stCallCodes/callcallcodecallcode_ABCB_RECURSIVE.json index 187b050cc..220e9b92e 100644 --- a/GeneralStateTests/stCallCodes/callcallcodecallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallCodes/callcallcodecallcode_ABCB_RECURSIVE.json @@ -2,95 +2,113 @@ "callcallcodecallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcallcodecallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd2155a852eaa4f76a5a4fe4bb7fe268d82a52a357962dd6a2617cd4a3af0f8fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" } } - ], - "EIP158" : [ - { - "hash" : "0xd2155a852eaa4f76a5a4fe4bb7fe268d82a52a357962dd6a2617cd4a3af0f8fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe3ad647f45f66170708956d7148b3e3b7a092def6a2399d27be7fbfbdea4230f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe3ad647f45f66170708956d7148b3e3b7a092def6a2399d27be7fbfbdea4230f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd2155a852eaa4f76a5a4fe4bb7fe268d82a52a357962dd6a2617cd4a3af0f8fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +118,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodeDynamicCode.json b/GeneralStateTests/stCallCodes/callcodeDynamicCode.json index 5ed9090b5..cfaa20e13 100644 --- a/GeneralStateTests/stCallCodes/callcodeDynamicCode.json +++ b/GeneralStateTests/stCallCodes/callcodeDynamicCode.json @@ -2,88 +2,87 @@ "callcodeDynamicCode" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodeDynamicCodeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x70c391c82965c0b9b701f5175b9f417a873e923e8742b5e9bff4413541ccde63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP150" + ], + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x0a" : "0xffe4ebd2a68c02d9dcb0a17283d13346beb2d8b6", + "0x0b" : "0x01", + "0x14" : "0x13136008b64ff592819b2fa6d43f2835c452020e" + } + }, + "ffe4ebd2a68c02d9dcb0a17283d13346beb2d8b6" : { + "balance" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0x41e3f2ade5c27789716737d703559dd8a53f868baf7a876c408fcdb48d0df9b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x17388b6d68e240d2ac5841e36517ca05e9c61adc44787471fc40e5683f8279c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x17388b6d68e240d2ac5841e36517ca05e9c61adc44787471fc40e5683f8279c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x41e3f2ade5c27789716737d703559dd8a53f868baf7a876c408fcdb48d0df9b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "EIP158", + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x00", + "storage" : { + "0x00" : "0", + "0x0a" : "0x568a95f77b047bece6aa68843d2019332c46a585", + "0x0b" : "0x01", + "0x14" : "0" + } + }, + "568a95f77b047bece6aa68843d2019332c46a585" : { + "balance" : "0x01" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x2710", - "code" : "0x7f716860016000553360145560005260096017f36000526012600e6001f0600a556000527f6040600060406000600073ffe4ebd2a68c02d9dcb0a17283d13346beb2d8b6626020527f0186a0f2600b5500000000000000000000000000000000000000000000000000604052606060006001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "10000", + "code" : "{ (MSTORE 0 0x716860016000553360145560005260096017f36000526012600e6001f0600a55) (MSTORE 32 0x6040600060406000600073ffe4ebd2a68c02d9dcb0a17283d13346beb2d8b662) \t\t\t\t (MSTORE 64 0x0186a0f2600b5500000000000000000000000000000000000000000000000000) (CREATE 1 0 96) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x03e8", - "code" : "0x6460016000556000526005601b6001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000", + "code" : "{ (MSTORE 0 0x6001600055) (CREATE 1 27 5) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2386f26fc10000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +92,14 @@ "" ], "gasLimit" : [ - "0x06e9d9" + "453081" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodeDynamicCode2SelfCall.json b/GeneralStateTests/stCallCodes/callcodeDynamicCode2SelfCall.json index 525031387..f54b532a8 100644 --- a/GeneralStateTests/stCallCodes/callcodeDynamicCode2SelfCall.json +++ b/GeneralStateTests/stCallCodes/callcodeDynamicCode2SelfCall.json @@ -2,81 +2,50 @@ "callcodeDynamicCode2SelfCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodeDynamicCode2SelfCallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x80cee8031b01b19740fac1888ec0628fd5b24b70f0eebfb44dfcbda5f4d5aea4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x01", + "storage" : { + "0x0b" : "0x01", + "0x0c" : "0x1000000000000000000000000000000000000000" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdf2b5e393c8e61ef04550e38a3c53b87016b34d93a995b6b1709c0a19d1addad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x53b3500d29c4ac1cc8db0f5403c0c35c256e9bff7ada5a8a35c99f805dc0e72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x53b3500d29c4ac1cc8db0f5403c0c35c256e9bff7ada5a8a35c99f805dc0e72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdf2b5e393c8e61ef04550e38a3c53b87016b34d93a995b6b1709c0a19d1addad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x2710", - "code" : "0x7f604060006040600060007313136008b64ff592819b2fa6d43f2835c452020e626000527f0186a0f2600b5533600c55000000000000000000000000000000000000000000602052604060006001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "10000", + "code" : "{ (MSTORE 0 0x604060006040600060007313136008b64ff592819b2fa6d43f2835c452020e62) (MSTORE 32 0x0186a0f2600b5533600c55000000000000000000000000000000000000000000) \t\t\t\t (CREATE 1 0 64) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2386f26fc10000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x06e9d9" + "453081" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodeEmptycontract.json b/GeneralStateTests/stCallCodes/callcodeEmptycontract.json index 911656c56..6448bf481 100644 --- a/GeneralStateTests/stCallCodes/callcodeEmptycontract.json +++ b/GeneralStateTests/stCallCodes/callcodeEmptycontract.json @@ -2,81 +2,46 @@ "callcodeEmptycontract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodeEmptycontractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x62726d292794da1b6eb2ecf6c30ce7fc64e7efee90636bc501362a71239a9bf2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "ALL", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x62726d292794da1b6eb2ecf6c30ce7fc64e7efee90636bc501362a71239a9bf2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x95716e7d0b244da6a57bacc2a981d4777c44a208820153c67224112315fbc985", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x95716e7d0b244da6a57bacc2a981d4777c44a208820153c67224112315fbc985", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x62726d292794da1b6eb2ecf6c30ce7fc64e7efee90636bc501362a71239a9bf2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x03e8", - "code" : "0x60406000604060006103e873945304eb96065b2a98b57a48a06ae28d285a71b561c350f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000", + "code" : "{ [[ 0 ]] (CALLCODE 50000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1000 0 64 0 64 )}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +51,14 @@ "" ], "gasLimit" : [ - "0x019a54" + "105044" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodeInInitcodeToEmptyContract.json b/GeneralStateTests/stCallCodes/callcodeInInitcodeToEmptyContract.json index cd442a992..336e5ac03 100644 --- a/GeneralStateTests/stCallCodes/callcodeInInitcodeToEmptyContract.json +++ b/GeneralStateTests/stCallCodes/callcodeInInitcodeToEmptyContract.json @@ -2,81 +2,47 @@ "callcodeInInitcodeToEmptyContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodeInInitcodeToEmptyContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf210d64ccb8593d338544f76f6f758a1bcb01c82acf4177e18648a086a32a008", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "ALL", + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x01", + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbe3b36e7cf22ba2ac86dcac37b66b60ef96e0d28616df36251cb7de9aa2500aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x157885c99eb23c5285e43296833a84e14e978aaa0f4a550b3bd6dde8a0ee734f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x157885c99eb23c5285e43296833a84e14e978aaa0f4a550b3bd6dde8a0ee734f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbe3b36e7cf22ba2ac86dcac37b66b60ef96e0d28616df36251cb7de9aa2500aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x2710", - "code" : "0x7f6040600060406000600073945304eb96065b2a98b57a48a06ae28d285a71b5626000527f0186a0f260005500000000000000000000000000000000000000000000000000602052604060006001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "10000", + "code" : "{ (MSTORE 0 0x6040600060406000600073945304eb96065b2a98b57a48a06ae28d285a71b562) (MSTORE 32 0x0186a0f260005500000000000000000000000000000000000000000000000000) (CREATE 1 0 64) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2386f26fc10000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +52,14 @@ "" ], "gasLimit" : [ - "0x06e9d9" + "453081" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodeInInitcodeToExisContractWithVTransferNEMoney.json b/GeneralStateTests/stCallCodes/callcodeInInitcodeToExisContractWithVTransferNEMoney.json index 2c0792c44..4c6e971b6 100644 --- a/GeneralStateTests/stCallCodes/callcodeInInitcodeToExisContractWithVTransferNEMoney.json +++ b/GeneralStateTests/stCallCodes/callcodeInInitcodeToExisContractWithVTransferNEMoney.json @@ -2,88 +2,55 @@ "callcodeInInitcodeToExisContractWithVTransferNEMoney" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodeInInitcodeToExisContractWithVTransferNEMoneyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbe6656bd52c7659c81827a5c684c5b08426e3027dbc6575d22aa16b974e04ec5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "ALL", + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x01", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5d8fbaea35718275758ade9e78b2d8c64469cff78bd85a8a11a8c4691208b534", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa94d8401ace9ce65aa88b52d16096f872a7b3b21b1a3302324ec51de1bb314f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa94d8401ace9ce65aa88b52d16096f872a7b3b21b1a3302324ec51de1bb314f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5d8fbaea35718275758ade9e78b2d8c64469cff78bd85a8a11a8c4691208b534", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x2710", - "code" : "0x7f6040600060406000600573945304eb96065b2a98b57a48a06ae28d285a71b5626000527f0186a0f260005500000000000000000000000000000000000000000000000000602052604060006001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "10000", + "code" : "{ (MSTORE 0 0x6040600060406000600573945304eb96065b2a98b57a48a06ae28d285a71b562) (MSTORE 32 0x0186a0f260005500000000000000000000000000000000000000000000000000) (CREATE 1 0 64) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x00", - "code" : "0x6001600255", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2386f26fc10000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x06e9d9" + "453081" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodeInInitcodeToExistingContract.json b/GeneralStateTests/stCallCodes/callcodeInInitcodeToExistingContract.json index b7052c5ba..ac54f1aa4 100644 --- a/GeneralStateTests/stCallCodes/callcodeInInitcodeToExistingContract.json +++ b/GeneralStateTests/stCallCodes/callcodeInInitcodeToExistingContract.json @@ -2,95 +2,63 @@ "callcodeInInitcodeToExistingContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodeInInitcodeToExistingContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x84551be7bbc2416c4482dae32daacb4447c5aaedd36da87713f4fe49781f61e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "ALL", + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x01", + "storage" : { + "0x00" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0e9e704dc511c55b64b545eb97670caee07ad2c2b01d6c85b07748893ccf097f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7e27ab28a19de7010592bfeb0b95bdc06e207a0ce56388dcf1fc92ade2abeb3c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7e27ab28a19de7010592bfeb0b95bdc06e207a0ce56388dcf1fc92ade2abeb3c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0e9e704dc511c55b64b545eb97670caee07ad2c2b01d6c85b07748893ccf097f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x2710", - "code" : "0x7f6040600060406000600073945304eb96065b2a98b57a48a06ae28d285a71b5626000527f0186a0f260005500000000000000000000000000000000000000000000000000602052604060006001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "10000", + "code" : "{ (MSTORE 0 0x6040600060406000600073945304eb96065b2a98b57a48a06ae28d285a71b562) (MSTORE 32 0x0186a0f260005500000000000000000000000000000000000000000000000000) (CREATE 1 0 64) }", + "code2" : "{ (MSTORE 0 0x6001600155600260025560036003556004600455600560055560066006556007) (MSTORE 32 0x60075560086008556009600955600a600a550000000000000000000000000000) (CREATE 1 0 64) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x03e8", - "code" : "0x6460016000556000526005601b6001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000", + "code" : "{ (MSTORE 0 0x6001600055) (CREATE 1 27 5) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x00", - "code" : "0x6001600255", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2386f26fc10000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +68,14 @@ "" ], "gasLimit" : [ - "0x06e9d9" + "453081" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodeInInitcodeToExistingContractWithValueTransfer.json b/GeneralStateTests/stCallCodes/callcodeInInitcodeToExistingContractWithValueTransfer.json index 494d3f826..f91ad3997 100644 --- a/GeneralStateTests/stCallCodes/callcodeInInitcodeToExistingContractWithValueTransfer.json +++ b/GeneralStateTests/stCallCodes/callcodeInInitcodeToExistingContractWithValueTransfer.json @@ -2,88 +2,55 @@ "callcodeInInitcodeToExistingContractWithValueTransfer" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodeInInitcodeToExistingContractWithValueTransferFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf12e898bcf64ff2fbc15cdd1455b9eed5b57d45b2e9daf5b5ce4446c5f02fc0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "ALL", + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x05", + "storage" : { + "0x00" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf98edc3fae7714d4f245414565d74b69a221627c7fdf7783a4cfc2f83951d5fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x51937cc2ddfdd89ecd073f53256f00a7e0497e5a9494d2dac6a63dd6b5bb0548", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x51937cc2ddfdd89ecd073f53256f00a7e0497e5a9494d2dac6a63dd6b5bb0548", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf98edc3fae7714d4f245414565d74b69a221627c7fdf7783a4cfc2f83951d5fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x2710", - "code" : "0x7f6040600060406000600573945304eb96065b2a98b57a48a06ae28d285a71b5626000527f0186a0f260005500000000000000000000000000000000000000000000000000602052604060006005f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "10000", + "code" : "{ (MSTORE 0 0x6040600060406000600573945304eb96065b2a98b57a48a06ae28d285a71b562) (MSTORE 32 0x0186a0f260005500000000000000000000000000000000000000000000000000) (CREATE 5 0 64) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x00", - "code" : "0x6001600255", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2386f26fc10000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x06e9d9" + "453081" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stCallCodes/callcode_checkPC.json b/GeneralStateTests/stCallCodes/callcode_checkPC.json index aa1f33b44..839752d09 100644 --- a/GeneralStateTests/stCallCodes/callcode_checkPC.json +++ b/GeneralStateTests/stCallCodes/callcode_checkPC.json @@ -2,88 +2,58 @@ "callcode_checkPC" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcode_checkPCFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x62b3e139fab71b36127dc4f80cf91618e22bb5b05b36a43f0ae1e46e1e3bd9d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x03" : "0x25" + } } } - ], - "EIP158" : [ - { - "hash" : "0x62b3e139fab71b36127dc4f80cf91618e22bb5b05b36a43f0ae1e46e1e3bd9d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4d8ba7f5982eec7fb7309a002e047fdf47d5e54f6e75077d3b7ad2c4601c1212", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4d8ba7f5982eec7fb7309a002e047fdf47d5e54f6e75077d3b7ad2c4601c1212", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x62b3e139fab71b36127dc4f80cf91618e22bb5b05b36a43f0ae1e46e1e3bd9d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620f4240f15058600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (CALL 1000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) [[3]] (PC)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecall_10.json b/GeneralStateTests/stCallCodes/callcodecall_10.json index acabb9f1d..f060ec9ce 100644 --- a/GeneralStateTests/stCallCodes/callcodecall_10.json +++ b/GeneralStateTests/stCallCodes/callcodecall_10.json @@ -2,95 +2,75 @@ "callcodecall_10" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecall_10Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x472ac3f8bd2f7a6936a664679c98b1a2cab94a9f23cf7e452ad0bd16972762f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x02", + "0xe6" : "0x1000000000000000000000000000000000000002", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x472ac3f8bd2f7a6936a664679c98b1a2cab94a9f23cf7e452ad0bd16972762f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x266f3efb4679756e79477cfa28d932bc5118d5e95ec131b92ceef8c5e2a54dd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x266f3efb4679756e79477cfa28d932bc5118d5e95ec131b92ceef8c5e2a54dd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x472ac3f8bd2f7a6936a664679c98b1a2cab94a9f23cf7e452ad0bd16972762f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060027310000000000000000000000000000000000000026203d090f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALL 250000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025533600455346007553060e6553260e8553660ec553860ee553a60f055", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +80,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecall_10_OOGE.json b/GeneralStateTests/stCallCodes/callcodecall_10_OOGE.json index 89221ddd0..f43a3bea2 100644 --- a/GeneralStateTests/stCallCodes/callcodecall_10_OOGE.json +++ b/GeneralStateTests/stCallCodes/callcodecall_10_OOGE.json @@ -2,95 +2,76 @@ "callcodecall_10_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecall_10_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x721509038dd5a70d8aa67141fcb4cd7ac8efe66ea4f79fc439d4580421fbd22e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x721509038dd5a70d8aa67141fcb4cd7ac8efe66ea4f79fc439d4580421fbd22e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa8759b2e9bc8080233d0170205eae59883131a8d420bc15d4aa04af39d3ad190", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa8759b2e9bc8080233d0170205eae59883131a8d420bc15d4aa04af39d3ad190", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x721509038dd5a70d8aa67141fcb4cd7ac8efe66ea4f79fc439d4580421fbd22e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002614e34f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +81,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecall_10_SuicideEnd.json b/GeneralStateTests/stCallCodes/callcodecall_10_SuicideEnd.json index e2112c724..56cc49531 100644 --- a/GeneralStateTests/stCallCodes/callcodecall_10_SuicideEnd.json +++ b/GeneralStateTests/stCallCodes/callcodecall_10_SuicideEnd.json @@ -2,95 +2,70 @@ "callcodecall_10_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecall_10_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa69012cee412f90a45cc60f2da894c1d96f70c6393fb80fbbb2d0dc382f41413", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa69012cee412f90a45cc60f2da894c1d96f70c6393fb80fbbb2d0dc382f41413", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6232a655eb075819b41b8c54e2c83c8730b5f42ff7f3820a58c13cf9ce1aa981", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6232a655eb075819b41b8c54e2c83c8730b5f42ff7f3820a58c13cf9ce1aa981", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa69012cee412f90a45cc60f2da894c1d96f70c6393fb80fbbb2d0dc382f41413", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcall_100.json b/GeneralStateTests/stCallCodes/callcodecallcall_100.json index 1bcb322a4..e1eeefdbc 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcall_100.json +++ b/GeneralStateTests/stCallCodes/callcodecallcall_100.json @@ -2,102 +2,87 @@ "callcodecallcall_100" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcall_100Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6101c3095dc2c0ec49cd5f06b3e9210a4c1e3a26c6fb5449ccad86e6102a247f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000002", + "0x07" : "0x03" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6101c3095dc2c0ec49cd5f06b3e9210a4c1e3a26c6fb5449ccad86e6102a247f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe9985e3c4b096bca71be68fe77a32bcb50eb2e96aaa63108daebefe1145c214f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe9985e3c4b096bca71be68fe77a32bcb50eb2e96aaa63108daebefe1145c214f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6101c3095dc2c0ec49cd5f06b3e9210a4c1e3a26c6fb5449ccad86e6102a247f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620493e0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060037310000000000000000000000000000000000000036203d090f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +92,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcall_100_OOGE.json b/GeneralStateTests/stCallCodes/callcodecallcall_100_OOGE.json index 6446d634a..9281faee6 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcall_100_OOGE.json +++ b/GeneralStateTests/stCallCodes/callcodecallcall_100_OOGE.json @@ -2,102 +2,91 @@ "callcodecallcall_100_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcall_100_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x62dfd5d90ea8066ca0b7f75bfa2d14e169bea39f763ea774df9ba23ded9c3022", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x62dfd5d90ea8066ca0b7f75bfa2d14e169bea39f763ea774df9ba23ded9c3022", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa97379ff11a8f6bd9d3ae4f08d89c39768ce1c9ddd45df89e2c292a7d07d7c7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa97379ff11a8f6bd9d3ae4f08d89c39768ce1c9ddd45df89e2c292a7d07d7c7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x62dfd5d90ea8066ca0b7f75bfa2d14e169bea39f763ea774df9ba23ded9c3022", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +96,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcall_100_OOGMAfter.json b/GeneralStateTests/stCallCodes/callcodecallcall_100_OOGMAfter.json index 8aefa3867..465db93cc 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcall_100_OOGMAfter.json +++ b/GeneralStateTests/stCallCodes/callcodecallcall_100_OOGMAfter.json @@ -2,102 +2,132 @@ "callcodecallcall_100_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcall_100_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1ccdddfee7c5341f862e77e4b217b4ab98be631d8dd5c81a328b57efcb2f00ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1ccdddfee7c5341f862e77e4b217b4ab98be631d8dd5c81a328b57efcb2f00ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x278c6d69454c759028bab28462a540d7f0d8affdf3be9ab83ad873942f4d7169", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x278c6d69454c759028bab28462a540d7f0d8affdf3be9ab83ad873942f4d7169", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1ccdddfee7c5341f862e77e4b217b4ab98be631d8dd5c81a328b57efcb2f00ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +137,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcall_100_OOGMBefore.json b/GeneralStateTests/stCallCodes/callcodecallcall_100_OOGMBefore.json index 00b27b40a..47edf76e1 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcall_100_OOGMBefore.json +++ b/GeneralStateTests/stCallCodes/callcodecallcall_100_OOGMBefore.json @@ -2,102 +2,96 @@ "callcodecallcall_100_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcall_100_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2126825d2ed836fe96dbebc0ea713b3dc090876d6e2fac93b6d6ec1b2616d72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2126825d2ed836fe96dbebc0ea713b3dc090876d6e2fac93b6d6ec1b2616d72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8902ce31717fb761ac67ebbe8ac240ca6f886a65b2ccbf57e00d9afe10b4d6c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8902ce31717fb761ac67ebbe8ac240ca6f886a65b2ccbf57e00d9afe10b4d6c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2126825d2ed836fe96dbebc0ea713b3dc090876d6e2fac93b6d6ec1b2616d72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +101,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcall_100_SuicideEnd.json b/GeneralStateTests/stCallCodes/callcodecallcall_100_SuicideEnd.json index e96ec3ec4..1592e8200 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcall_100_SuicideEnd.json +++ b/GeneralStateTests/stCallCodes/callcodecallcall_100_SuicideEnd.json @@ -2,102 +2,83 @@ "callcodecallcall_100_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcall_100_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6abce7355f6ea2faf8acaf28fa705fcc52e89c63e70397cb2c584fd07fd77d1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "20000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6abce7355f6ea2faf8acaf28fa705fcc52e89c63e70397cb2c584fd07fd77d1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8de9ffdf6b2b0f4048d30b61853c0ef89c4499a1d6a1846251d8d6d7cbddbd88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8de9ffdf6b2b0f4048d30b61853c0ef89c4499a1d6a1846251d8d6d7cbddbd88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6abce7355f6ea2faf8acaf28fa705fcc52e89c63e70397cb2c584fd07fd77d1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +88,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcall_100_SuicideMiddle.json b/GeneralStateTests/stCallCodes/callcodecallcall_100_SuicideMiddle.json index 7102d208e..e22cdc443 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcall_100_SuicideMiddle.json +++ b/GeneralStateTests/stCallCodes/callcodecallcall_100_SuicideMiddle.json @@ -2,102 +2,77 @@ "callcodecallcall_100_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcall_100_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xef77926dc35c2fa6e1f9a078376455282270217a8abc8e2dd43de2ad51e7074a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xef77926dc35c2fa6e1f9a078376455282270217a8abc8e2dd43de2ad51e7074a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x294042dda3ede82ea72313a788267340fcf9aea60f81ca9ee880a2bc7b814d01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x294042dda3ede82ea72313a788267340fcf9aea60f81ca9ee880a2bc7b814d01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xef77926dc35c2fa6e1f9a078376455282270217a8abc8e2dd43de2ad51e7074a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +82,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcall_ABCB_RECURSIVE.json b/GeneralStateTests/stCallCodes/callcodecallcall_ABCB_RECURSIVE.json index fa4cc8578..d34dc5bb3 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallCodes/callcodecallcall_ABCB_RECURSIVE.json @@ -2,95 +2,113 @@ "callcodecallcall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb45f7068d6c1f6400676563a22df1791b2bab70929f90b0d297e13f58db69932", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" } } - ], - "EIP158" : [ - { - "hash" : "0xb45f7068d6c1f6400676563a22df1791b2bab70929f90b0d297e13f58db69932", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa8670ec8bd38fd68db357ce1257b4ba7e9892058ace8f14b056bec60429c24cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa8670ec8bd38fd68db357ce1257b4ba7e9892058ace8f14b056bec60429c24cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb45f7068d6c1f6400676563a22df1791b2bab70929f90b0d297e13f58db69932", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +118,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcallcode_101.json b/GeneralStateTests/stCallCodes/callcodecallcallcode_101.json index ae5c214e2..c03f86f9d 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcallcode_101.json +++ b/GeneralStateTests/stCallCodes/callcodecallcallcode_101.json @@ -2,102 +2,83 @@ "callcodecallcallcode_101" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcallcode_101Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfcddf3901a324d38ceeb1cc330787d96710395e88fac155951f0232f38299c12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000002", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000002", + "0x07" : "0x03" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfcddf3901a324d38ceeb1cc330787d96710395e88fac155951f0232f38299c12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x47f86a353d296fe9530a92d8d937ba8051749ad0093cc65b9909c5bd260ddbef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x47f86a353d296fe9530a92d8d937ba8051749ad0093cc65b9909c5bd260ddbef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfcddf3901a324d38ceeb1cc330787d96710395e88fac155951f0232f38299c12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620493e0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060037310000000000000000000000000000000000000036203d090f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +88,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcallcode_101_OOGE.json b/GeneralStateTests/stCallCodes/callcodecallcallcode_101_OOGE.json index 86e7bfc4f..1a2c30abe 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcallcode_101_OOGE.json +++ b/GeneralStateTests/stCallCodes/callcodecallcallcode_101_OOGE.json @@ -2,102 +2,91 @@ "callcodecallcallcode_101_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcallcode_101_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x22c6dcc5111557389dd022c1ca9e5ad86eaec11e97fa00ab10fee2100758a0d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x22c6dcc5111557389dd022c1ca9e5ad86eaec11e97fa00ab10fee2100758a0d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x76e969488ba038d1f803ac5bdc231914f22868a7791c19759cef1f98eb616036", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x76e969488ba038d1f803ac5bdc231914f22868a7791c19759cef1f98eb616036", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x22c6dcc5111557389dd022c1ca9e5ad86eaec11e97fa00ab10fee2100758a0d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +96,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcallcode_101_OOGMAfter.json b/GeneralStateTests/stCallCodes/callcodecallcallcode_101_OOGMAfter.json index 83db2eaf7..fd8dea0b6 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcallcode_101_OOGMAfter.json +++ b/GeneralStateTests/stCallCodes/callcodecallcallcode_101_OOGMAfter.json @@ -2,102 +2,136 @@ "callcodecallcallcode_101_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcallcode_101_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9cea071166a4152be65f70641dad45a5281bb3166af3b879a1f81c1f30cd03dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9cea071166a4152be65f70641dad45a5281bb3166af3b879a1f81c1f30cd03dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9dadc649bd108ae1326e1f7d8a113435e18e38fa2e345ebbe8e3b6c57d17c0b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9dadc649bd108ae1326e1f7d8a113435e18e38fa2e345ebbe8e3b6c57d17c0b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9cea071166a4152be65f70641dad45a5281bb3166af3b879a1f81c1f30cd03dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcallcode_101_OOGMBefore.json b/GeneralStateTests/stCallCodes/callcodecallcallcode_101_OOGMBefore.json index 94525731c..c0ab2af65 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcallcode_101_OOGMBefore.json +++ b/GeneralStateTests/stCallCodes/callcodecallcallcode_101_OOGMBefore.json @@ -2,102 +2,93 @@ "callcodecallcallcode_101_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcallcode_101_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf116e4cbc705d6224d62d6ca9098a1964d1df0d6da36e193e011416bb8d94f14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf116e4cbc705d6224d62d6ca9098a1964d1df0d6da36e193e011416bb8d94f14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0b2d2acfc533d00543a6357fc5c7719c9ed811cb06c83f14d89479b64f338e3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0b2d2acfc533d00543a6357fc5c7719c9ed811cb06c83f14d89479b64f338e3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf116e4cbc705d6224d62d6ca9098a1964d1df0d6da36e193e011416bb8d94f14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +98,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcallcode_101_SuicideEnd.json b/GeneralStateTests/stCallCodes/callcodecallcallcode_101_SuicideEnd.json index 604ef040a..5c676130c 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcallcode_101_SuicideEnd.json +++ b/GeneralStateTests/stCallCodes/callcodecallcallcode_101_SuicideEnd.json @@ -2,102 +2,76 @@ "callcodecallcallcode_101_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcallcode_101_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x561c60019939881e459c7fd927acb5744cc931c73e9b9b7e235c87fd18d98ba7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "20000000000", + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x561c60019939881e459c7fd927acb5744cc931c73e9b9b7e235c87fd18d98ba7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x36322aecd24ccc418a4542b24ef71f7a067927b59f62e71835e62f984f8a28e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x36322aecd24ccc418a4542b24ef71f7a067927b59f62e71835e62f984f8a28e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x561c60019939881e459c7fd927acb5744cc931c73e9b9b7e235c87fd18d98ba7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +81,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcallcode_101_SuicideMiddle.json b/GeneralStateTests/stCallCodes/callcodecallcallcode_101_SuicideMiddle.json index 0a024802a..c7ef22edc 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcallcode_101_SuicideMiddle.json +++ b/GeneralStateTests/stCallCodes/callcodecallcallcode_101_SuicideMiddle.json @@ -2,102 +2,85 @@ "callcodecallcallcode_101_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcallcode_101_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xef77926dc35c2fa6e1f9a078376455282270217a8abc8e2dd43de2ad51e7074a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xef77926dc35c2fa6e1f9a078376455282270217a8abc8e2dd43de2ad51e7074a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x294042dda3ede82ea72313a788267340fcf9aea60f81ca9ee880a2bc7b814d01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x294042dda3ede82ea72313a788267340fcf9aea60f81ca9ee880a2bc7b814d01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xef77926dc35c2fa6e1f9a078376455282270217a8abc8e2dd43de2ad51e7074a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +90,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stCallCodes/callcodecallcallcode_ABCB_RECURSIVE.json index 3b738f5ed..0451d7914 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallCodes/callcodecallcallcode_ABCB_RECURSIVE.json @@ -2,95 +2,113 @@ "callcodecallcallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x759ae0f12630eef1e0e1a1ca73ae87de55a9714833518c06b8642a272cc5c2e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" } } - ], - "EIP158" : [ - { - "hash" : "0x759ae0f12630eef1e0e1a1ca73ae87de55a9714833518c06b8642a272cc5c2e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x843fc7bc4ac97ee198931f09665467525e5846bf6674622420f0e0173b89bba4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x843fc7bc4ac97ee198931f09665467525e5846bf6674622420f0e0173b89bba4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x759ae0f12630eef1e0e1a1ca73ae87de55a9714833518c06b8642a272cc5c2e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +118,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcode_11.json b/GeneralStateTests/stCallCodes/callcodecallcode_11.json index 61ed0ffa7..113af973b 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcode_11.json +++ b/GeneralStateTests/stCallCodes/callcodecallcode_11.json @@ -2,95 +2,71 @@ "callcodecallcode_11" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcode_11Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe4d27dbac78ab10c73b9dc9244e93e7b5b98b09822337eb3a26152bd342d09de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x02", + "0xe6" : "0x1000000000000000000000000000000000000000", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe4d27dbac78ab10c73b9dc9244e93e7b5b98b09822337eb3a26152bd342d09de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1e91f9f6bd10a082c5f0479183a3d41204222a29742643fc84dfa9a2de54aba0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1e91f9f6bd10a082c5f0479183a3d41204222a29742643fc84dfa9a2de54aba0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe4d27dbac78ab10c73b9dc9244e93e7b5b98b09822337eb3a26152bd342d09de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060027310000000000000000000000000000000000000026203d090f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025533600455346007553060e6553260e8553660ec553860ee553a60f055", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +76,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcode_11_OOGE.json b/GeneralStateTests/stCallCodes/callcodecallcode_11_OOGE.json index 04a8aa2e5..e518cfac7 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcode_11_OOGE.json +++ b/GeneralStateTests/stCallCodes/callcodecallcode_11_OOGE.json @@ -2,95 +2,81 @@ "callcodecallcode_11_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcode_11_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdd98eee45410d0bca7437ef275cfa194e6a0a7505797781461e3c8bf1298d919", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdd98eee45410d0bca7437ef275cfa194e6a0a7505797781461e3c8bf1298d919", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdb627612dc00ed5e1bebb241a2b7afd3673ced5f63aa54f857dd0019e678be46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdb627612dc00ed5e1bebb241a2b7afd3673ced5f63aa54f857dd0019e678be46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdd98eee45410d0bca7437ef275cfa194e6a0a7505797781461e3c8bf1298d919", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002614e34f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +86,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcode_11_SuicideEnd.json b/GeneralStateTests/stCallCodes/callcodecallcode_11_SuicideEnd.json index 44463af12..efd291512 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcode_11_SuicideEnd.json +++ b/GeneralStateTests/stCallCodes/callcodecallcode_11_SuicideEnd.json @@ -2,95 +2,70 @@ "callcodecallcode_11_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcode_11_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2405ebb0ff8e784419ab77d26cb0da6398bb3c6dfc7e810152a56432ff1ba246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2405ebb0ff8e784419ab77d26cb0da6398bb3c6dfc7e810152a56432ff1ba246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x77a4a1939bcb8b911d5b69a23096e346391cca0cefd06ef641b170fe26b76a15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x77a4a1939bcb8b911d5b69a23096e346391cca0cefd06ef641b170fe26b76a15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2405ebb0ff8e784419ab77d26cb0da6398bb3c6dfc7e810152a56432ff1ba246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecall_110.json b/GeneralStateTests/stCallCodes/callcodecallcodecall_110.json index 48f51e572..45e7b2f01 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecall_110.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecall_110.json @@ -2,102 +2,83 @@ "callcodecallcodecall_110" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecall_110Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4c09d7c4e380b4d9608607bf3761894db8b08deca148748f2c1b1fe9118c904e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x03" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4c09d7c4e380b4d9608607bf3761894db8b08deca148748f2c1b1fe9118c904e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8c09b408926871f45ed297bfcd62b07c7533028974f674f4339db37bd9bb377d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8c09b408926871f45ed297bfcd62b07c7533028974f674f4339db37bd9bb377d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4c09d7c4e380b4d9608607bf3761894db8b08deca148748f2c1b1fe9118c904e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620493e0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060037310000000000000000000000000000000000000036203d090f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALL 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +88,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecall_110_OOGE.json b/GeneralStateTests/stCallCodes/callcodecallcodecall_110_OOGE.json index b2370cc31..e092e8d35 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecall_110_OOGE.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecall_110_OOGE.json @@ -2,102 +2,92 @@ "callcodecallcodecall_110_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecall_110_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xea8c792c901a221fb7a84a561ce7ca9e91790ba5a7811949b9ee02442d02d3db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xea8c792c901a221fb7a84a561ce7ca9e91790ba5a7811949b9ee02442d02d3db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb52e03c0be692b82645ba31689fa02476182151b640932e8f1f1542e2effc2df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb52e03c0be692b82645ba31689fa02476182151b640932e8f1f1542e2effc2df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xea8c792c901a221fb7a84a561ce7ca9e91790ba5a7811949b9ee02442d02d3db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +97,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecall_110_OOGMAfter.json b/GeneralStateTests/stCallCodes/callcodecallcodecall_110_OOGMAfter.json index b887c896c..a673c3874 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecall_110_OOGMAfter.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecall_110_OOGMAfter.json @@ -2,102 +2,136 @@ "callcodecallcodecall_110_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecall_110_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x36fee991ca568d9360f7aea3e69b13c04ed83efa13dd71b91b7bb3b9d41e345b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x36fee991ca568d9360f7aea3e69b13c04ed83efa13dd71b91b7bb3b9d41e345b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x961d5c285a8e9cfd352cd1a30ff61cc7afe45d8474265fc2b63c6c9c67296b90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x961d5c285a8e9cfd352cd1a30ff61cc7afe45d8474265fc2b63c6c9c67296b90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x36fee991ca568d9360f7aea3e69b13c04ed83efa13dd71b91b7bb3b9d41e345b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecall_110_OOGMBefore.json b/GeneralStateTests/stCallCodes/callcodecallcodecall_110_OOGMBefore.json index 05a422c0f..2119b5f7c 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecall_110_OOGMBefore.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecall_110_OOGMBefore.json @@ -2,102 +2,94 @@ "callcodecallcodecall_110_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecall_110_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc29b4e1dbb2e6aadb5534ac43bca93822b3fae633e395f5f448f6c4cccc2ec61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc29b4e1dbb2e6aadb5534ac43bca93822b3fae633e395f5f448f6c4cccc2ec61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0e376cf2634acda351764523c146b31455f32a40abe4ec2218b24b48c730f573", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0e376cf2634acda351764523c146b31455f32a40abe4ec2218b24b48c730f573", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc29b4e1dbb2e6aadb5534ac43bca93822b3fae633e395f5f448f6c4cccc2ec61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +99,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecall_110_SuicideEnd.json b/GeneralStateTests/stCallCodes/callcodecallcodecall_110_SuicideEnd.json index 6feb41347..dd5501bd9 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecall_110_SuicideEnd.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecall_110_SuicideEnd.json @@ -2,102 +2,73 @@ "callcodecallcodecall_110_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecall_110_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd9678be89a85362b600713a7df23c1721e4263aa37de2b67c3a1fb88173ddedd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "1000000010000000000" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd9678be89a85362b600713a7df23c1721e4263aa37de2b67c3a1fb88173ddedd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x58797699a95dcbbc5692efe394ff177bb2bff2ac3a6846cb9480eeb49a4efaec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x58797699a95dcbbc5692efe394ff177bb2bff2ac3a6846cb9480eeb49a4efaec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd9678be89a85362b600713a7df23c1721e4263aa37de2b67c3a1fb88173ddedd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +78,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecall_110_SuicideMiddle.json b/GeneralStateTests/stCallCodes/callcodecallcodecall_110_SuicideMiddle.json index 1032c5556..fe2f11d88 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecall_110_SuicideMiddle.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecall_110_SuicideMiddle.json @@ -2,102 +2,84 @@ "callcodecallcodecall_110_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecall_110_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc9a2ccedb4f169e460684909680e9147dda2b46474e9bf8d24c65b6e8cde4522", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc9a2ccedb4f169e460684909680e9147dda2b46474e9bf8d24c65b6e8cde4522", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xddf1a3d22daf33c4a641fdf43b83399fbcbeaf8532792161e2e0fb0638640ad0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xddf1a3d22daf33c4a641fdf43b83399fbcbeaf8532792161e2e0fb0638640ad0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc9a2ccedb4f169e460684909680e9147dda2b46474e9bf8d24c65b6e8cde4522", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +89,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecall_ABCB_RECURSIVE.json b/GeneralStateTests/stCallCodes/callcodecallcodecall_ABCB_RECURSIVE.json index 35f0a4f4a..a47e349b9 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecall_ABCB_RECURSIVE.json @@ -2,95 +2,113 @@ "callcodecallcodecall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcfc2b7464213422aa1bddca1d1742be8aa306fd41952e88ecc6a043efdb6c027", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" } } - ], - "EIP158" : [ - { - "hash" : "0xcfc2b7464213422aa1bddca1d1742be8aa306fd41952e88ecc6a043efdb6c027", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2bba4d9c82761de3e6014ee9ed7d1f97fd6e4c6819034126d611e8a273509a1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2bba4d9c82761de3e6014ee9ed7d1f97fd6e4c6819034126d611e8a273509a1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcfc2b7464213422aa1bddca1d1742be8aa306fd41952e88ecc6a043efdb6c027", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +118,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111.json b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111.json index 5e3c383b8..f0a019479 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111.json @@ -2,102 +2,79 @@ "callcodecallcodecallcode_111" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecallcode_111Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf4e9023a998d6eecdf641d51e5920f242564d47de4d1bd892bef8f3b0e9431f6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000000", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x03" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf4e9023a998d6eecdf641d51e5920f242564d47de4d1bd892bef8f3b0e9431f6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x30318df71268d521be11e6603e58f1895ee8a08ff83fbcffdf7b516bbf603f9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x30318df71268d521be11e6603e58f1895ee8a08ff83fbcffdf7b516bbf603f9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf4e9023a998d6eecdf641d51e5920f242564d47de4d1bd892bef8f3b0e9431f6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620493e0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060037310000000000000000000000000000000000000036203d090f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +84,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_OOGE.json b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_OOGE.json index 6bab061a9..2fa4a96b4 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_OOGE.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_OOGE.json @@ -2,102 +2,91 @@ "callcodecallcodecallcode_111_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecallcode_111_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdf1be3ee9f2feaf6ad531942194ac1a21e2584628ddfc8c5cb3ed1f27f9e1236", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdf1be3ee9f2feaf6ad531942194ac1a21e2584628ddfc8c5cb3ed1f27f9e1236", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3299b2945c527e8915e7cddf86273d80c4fd08b40e6961036d5eb102f5370f1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3299b2945c527e8915e7cddf86273d80c4fd08b40e6961036d5eb102f5370f1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdf1be3ee9f2feaf6ad531942194ac1a21e2584628ddfc8c5cb3ed1f27f9e1236", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +96,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_OOGMAfter.json b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_OOGMAfter.json index ed48b6672..a5fd293ed 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_OOGMAfter.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_OOGMAfter.json @@ -2,102 +2,136 @@ "callcodecallcodecallcode_111_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecallcode_111_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2f6ccfc9fda43ebb03e01bc68951ec9bf51f62a9c5cf1ed708701f343df4eee4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2f6ccfc9fda43ebb03e01bc68951ec9bf51f62a9c5cf1ed708701f343df4eee4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6b91bfc795dca3991ec5721c8ea8a823e6dd446688e27285d8d0500bba8ab56c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6b91bfc795dca3991ec5721c8ea8a823e6dd446688e27285d8d0500bba8ab56c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2f6ccfc9fda43ebb03e01bc68951ec9bf51f62a9c5cf1ed708701f343df4eee4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_OOGMBefore.json b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_OOGMBefore.json index 65bbb5c8c..af52f55d9 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_OOGMBefore.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_OOGMBefore.json @@ -2,102 +2,92 @@ "callcodecallcodecallcode_111_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecallcode_111_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd8691751e00a60bf1e08b382b2e4d1e34af74710687e2f2a70deb77a46cbad54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd8691751e00a60bf1e08b382b2e4d1e34af74710687e2f2a70deb77a46cbad54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x719bf7118658117cc1ef6d2fc778e3a1257c0c5ce8a260dae629440cf839ad78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x719bf7118658117cc1ef6d2fc778e3a1257c0c5ce8a260dae629440cf839ad78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd8691751e00a60bf1e08b382b2e4d1e34af74710687e2f2a70deb77a46cbad54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +97,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_SuicideEnd.json b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_SuicideEnd.json index 4ee3a75da..d6a871bdf 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_SuicideEnd.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_SuicideEnd.json @@ -2,102 +2,75 @@ "callcodecallcodecallcode_111_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecallcode_111_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x792734d18e18b7ecacb4500cbbdda6d00e956ce2952cb1e25847e2ae1bb9e7e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "1000000010000000000" + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x792734d18e18b7ecacb4500cbbdda6d00e956ce2952cb1e25847e2ae1bb9e7e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x403b618a588daef088c707e25def251aa42c083092904234db5cccfff1689a7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x403b618a588daef088c707e25def251aa42c083092904234db5cccfff1689a7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x792734d18e18b7ecacb4500cbbdda6d00e956ce2952cb1e25847e2ae1bb9e7e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +80,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_SuicideMiddle.json b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_SuicideMiddle.json index 5d8461e0f..9770ce8de 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_SuicideMiddle.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_111_SuicideMiddle.json @@ -2,102 +2,87 @@ "callcodecallcodecallcode_111_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecallcode_111_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc9a2ccedb4f169e460684909680e9147dda2b46474e9bf8d24c65b6e8cde4522", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc9a2ccedb4f169e460684909680e9147dda2b46474e9bf8d24c65b6e8cde4522", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xddf1a3d22daf33c4a641fdf43b83399fbcbeaf8532792161e2e0fb0638640ad0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xddf1a3d22daf33c4a641fdf43b83399fbcbeaf8532792161e2e0fb0638640ad0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc9a2ccedb4f169e460684909680e9147dda2b46474e9bf8d24c65b6e8cde4522", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +92,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_ABCB_RECURSIVE.json index 8a8d9fd39..bb7c89b50 100644 --- a/GeneralStateTests/stCallCodes/callcodecallcodecallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallCodes/callcodecallcodecallcode_ABCB_RECURSIVE.json @@ -2,95 +2,113 @@ "callcodecallcodecallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCodes/callcodecallcodecallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd7eb40ab8620545d410fc73953746a87439728298371a90e302b2ef531afaa17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566210" } } - ], - "EIP158" : [ - { - "hash" : "0xd7eb40ab8620545d410fc73953746a87439728298371a90e302b2ef531afaa17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa62ec476ec7b2c034e5ddb7d512640e509e8f000c306f596881163fb6ac48ad0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa62ec476ec7b2c034e5ddb7d512640e509e8f000c306f596881163fb6ac48ad0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd7eb40ab8620545d410fc73953746a87439728298371a90e302b2ef531afaa17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568190" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +118,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/Call1024BalanceTooLow.json b/GeneralStateTests/stCallCreateCallCodeTest/Call1024BalanceTooLow.json index 229f0a23a..6d0a48e2c 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/Call1024BalanceTooLow.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/Call1024BalanceTooLow.json @@ -2,88 +2,75 @@ "Call1024BalanceTooLow" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/Call1024BalanceTooLowFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdb8bd286972ed997657cf36e784526bf117a5bc29f3b19a6da137c2317fd4b5b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdb8bd286972ed997657cf36e784526bf117a5bc29f3b19a6da137c2317fd4b5b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfda56525128873c6bda3621666fd65a32fb7bc99e56566a42f8a668196d172d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfda56525128873c6bda3621666fd65a32fb7bc99e56566a42f8a668196d172d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdb8bd286972ed997657cf36e784526bf117a5bc29f3b19a6da137c2317fd4b5b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x401", + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005401600055600060006000600060005473bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffff1600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b @@0 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +80,14 @@ "" ], "gasLimit" : [ - "0x10000000d788" + "17592186099592" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/Call1024OOG.json b/GeneralStateTests/stCallCreateCallCodeTest/Call1024OOG.json index 1770a90da..d896bcc75 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/Call1024OOG.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/Call1024OOG.json @@ -2,88 +2,78 @@ "Call1024OOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/Call1024OOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7262a16f3f7d642357985ada81b318eaa5cef790b8ed41d89a0f5a48e271a574", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x0401", + "0x01" : "0x01", + "0x02" : "0x0fa3e9" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7262a16f3f7d642357985ada81b318eaa5cef790b8ed41d89a0f5a48e271a574", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x767787db28cc33cd1da3856af52b141063e8f3655991dd1d8a1db0d9fd12de66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x767787db28cc33cd1da3856af52b141063e8f3655991dd1d8a1db0d9fd12de66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7262a16f3f7d642357985ada81b318eaa5cef790b8ed41d89a0f5a48e271a574", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x85", + "0x01" : "0x01", + "0x02" : "0x20789" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x6001600054016000556000600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b610401600054046001036127105a0302f16001556103e860005402600101600255", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +83,14 @@ "" ], "gasLimit" : [ - "0xefe17a" + "15720826" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/Call1024PreCalls.json b/GeneralStateTests/stCallCreateCallCodeTest/Call1024PreCalls.json index e10a8ed07..8f5cf81ab 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/Call1024PreCalls.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/Call1024PreCalls.json @@ -2,88 +2,79 @@ "Call1024PreCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/Call1024PreCallsFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9e669d3e957acb6c3fef146901512fdef074829b110e73df2c68ef16b63921b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9e669d3e957acb6c3fef146901512fdef074829b110e73df2c68ef16b63921b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0e28b14b17542dc03eb8e0397c1c658947420a9d95fc96ca2926a38620d593aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0e28b14b17542dc03eb8e0397c1c658947420a9d95fc96ca2926a38620d593aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9e669d3e957acb6c3fef146901512fdef074829b110e73df2c68ef16b63921b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x03e4", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07e8", - "code" : "0x6000600060006000600173aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffff16002556000600060006000600173aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffff16003556001600054016000556000600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffff1600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ [[ 2 ]] (CALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[ 3 ]] (CALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -95,12 +86,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/CallLoseGasOOG.json b/GeneralStateTests/stCallCreateCallCodeTest/CallLoseGasOOG.json index 16a21d501..024c852dd 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/CallLoseGasOOG.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/CallLoseGasOOG.json @@ -2,88 +2,59 @@ "CallLoseGasOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/CallLoseGasOOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x83936b93f345c2eadf1fc9059dd84c6b369410bbbfc8a1fa11a7a3499fe6b158", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01", + "0x02" : "0x03e9" + } } } - ], - "EIP158" : [ - { - "hash" : "0x83936b93f345c2eadf1fc9059dd84c6b369410bbbfc8a1fa11a7a3499fe6b158", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x74be0756050e62737710a3520d833376ff4af5352afcb61012b8d69183062d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x74be0756050e62737710a3520d833376ff4af5352afcb61012b8d69183062d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x83936b93f345c2eadf1fc9059dd84c6b369410bbbfc8a1fa11a7a3499fe6b158", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x6001600054016000556000600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620186a060005402600101f16001556103e860005402600101600255", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALL (ADD 1(MUL @@0 100000)) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", "storage" : { } } @@ -95,12 +66,12 @@ "gasLimit" : [ "0x7fffffffffffffff" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/CallRecursiveBombPreCall.json b/GeneralStateTests/stCallCreateCallCodeTest/CallRecursiveBombPreCall.json index 3b515b69c..ef95d06a0 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/CallRecursiveBombPreCall.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/CallRecursiveBombPreCall.json @@ -2,88 +2,62 @@ "CallRecursiveBombPreCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/CallRecursiveBombPreCallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7e6ec21bdd51c37e15a29e69628230064daf8a5caf804440103828982e105282", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x0000000000000000000000000000000000000000000000000000000000000400", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x7e6ec21bdd51c37e15a29e69628230064daf8a5caf804440103828982e105282", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa4efec395a4b6141d677b8e44da81c0faea446eec319bc1580ad2c8e10a3ebc1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa4efec395a4b6141d677b8e44da81c0faea446eec319bc1580ad2c8e10a3ebc1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7e6ec21bdd51c37e15a29e69628230064daf8a5caf804440103828982e105282", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0fffffffffffffffffffffffffffffff", - "code" : "0x6000600060006000601773bad304eb96065b2a98b57a48a06ae28d285a71b5620186a0f1506000600060006000601773945304eb96065b2a98b57a48a06ae28d285a71b56707fffffffffffffff1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0xfffffffffffffffffffffffffffffff", + "code" : "{ (CALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) (CALL 0x7ffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160005401600055600060006000600060003062036b005a03f1600155", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224000) (ADDRESS) 0 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -95,12 +69,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/Callcode1024BalanceTooLow.json b/GeneralStateTests/stCallCreateCallCodeTest/Callcode1024BalanceTooLow.json index 07640909f..13d4d2751 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/Callcode1024BalanceTooLow.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/Callcode1024BalanceTooLow.json @@ -2,88 +2,75 @@ "Callcode1024BalanceTooLow" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/Callcode1024BalanceTooLowFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd80c72df613cb9c044a7e8bcd95f892e65bc22cb17e8a60741df003ed7c88d19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd80c72df613cb9c044a7e8bcd95f892e65bc22cb17e8a60741df003ed7c88d19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc89b206d6fc403d255aa797950b45e77ccf21ba50ff4842e23ad92b1380d21d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc89b206d6fc403d255aa797950b45e77ccf21ba50ff4842e23ad92b1380d21d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd80c72df613cb9c044a7e8bcd95f892e65bc22cb17e8a60741df003ed7c88d19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x401", + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005401600055600060006000600060005473bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffff2600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALLCODE 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b @@0 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -95,12 +82,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/Callcode1024OOG.json b/GeneralStateTests/stCallCreateCallCodeTest/Callcode1024OOG.json index 2d0dd4a6f..03fb594d9 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/Callcode1024OOG.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/Callcode1024OOG.json @@ -2,88 +2,78 @@ "Callcode1024OOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/Callcode1024OOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb099610b72ed48fb35ad2b49960c61666edfd5918813dc27614388d567ed72d0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x401", + "0x01" : "0x01", + "0x02" : "0x0fa3e9" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb099610b72ed48fb35ad2b49960c61666edfd5918813dc27614388d567ed72d0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x990bcaa8a52576a0f881f83a8dc43af9c26e56f0965cabaa554b892a810d6c21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x990bcaa8a52576a0f881f83a8dc43af9c26e56f0965cabaa554b892a810d6c21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb099610b72ed48fb35ad2b49960c61666edfd5918813dc27614388d567ed72d0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x85", + "0x01" : "0x01", + "0x02" : "0x20789" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x6001600054016000556000600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b610401600054046001036127105a0302f26001556103e860005402600101600255", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALLCODE (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +83,14 @@ "" ], "gasLimit" : [ - "0xefe17a" + "15720826" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/CallcodeLoseGasOOG.json b/GeneralStateTests/stCallCreateCallCodeTest/CallcodeLoseGasOOG.json index 27d5434f4..64fea8ca0 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/CallcodeLoseGasOOG.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/CallcodeLoseGasOOG.json @@ -2,88 +2,76 @@ "CallcodeLoseGasOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/CallcodeLoseGasOOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x46a8f242088e78fb22bcfe144fa4c91f51774d11dc56810806d8a2005ff365da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01", + "0x02" : "0x03e9" + } } } - ], - "EIP158" : [ - { - "hash" : "0x46a8f242088e78fb22bcfe144fa4c91f51774d11dc56810806d8a2005ff365da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe4315b558952437f6f4d4dff77780e72dacdcc0a0cd443e9517e7347b3364060", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe4315b558952437f6f4d4dff77780e72dacdcc0a0cd443e9517e7347b3364060", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x46a8f242088e78fb22bcfe144fa4c91f51774d11dc56810806d8a2005ff365da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x6001600054016000556000600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620186a060005402600101f26001556103e860005402600101600255", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALLCODE (ADD 1(MUL @@0 100000)) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +81,14 @@ "" ], "gasLimit" : [ - "0x028976" + "166262" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callOutput1.json b/GeneralStateTests/stCallCreateCallCodeTest/callOutput1.json index 8f66d1ea8..68a7703ef 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callOutput1.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callOutput1.json @@ -2,88 +2,58 @@ "callOutput1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callOutput1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7b27c1a486cad63a429086b85416cb2d8cebb0c159a7f73be018c30de2ecdf28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x798d1e55defeabefb8e2625b6429f7ab0d47474b6624a013ec0b385cf031e772", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7b27c1a486cad63a429086b85416cb2d8cebb0c159a7f73be018c30de2ecdf28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7b27c1a486cad63a429086b85416cb2d8cebb0c159a7f73be018c30de2ecdf28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x798d1e55defeabefb8e2625b6429f7ab0d47474b6624a013ec0b385cf031e772", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b66000526000600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f150600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 0) [[ 0 ]] (MLOAD 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callOutput2.json b/GeneralStateTests/stCallCreateCallCodeTest/callOutput2.json index b50e95a27..3bed12ff8 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callOutput2.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callOutput2.json @@ -2,88 +2,58 @@ "callOutput2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callOutput2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5e362b5144a434345036ebbd58cfe65a597cdcff2fa24ec661c7a09ca608ec0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc0c87377411f756fa0ba9a8e0024811e84e9cf31c5967f50a04d3834ab32b4e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5e362b5144a434345036ebbd58cfe65a597cdcff2fa24ec661c7a09ca608ec0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5e362b5144a434345036ebbd58cfe65a597cdcff2fa24ec661c7a09ca608ec0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc0c87377411f756fa0ba9a8e0024811e84e9cf31c5967f50a04d3834ab32b4e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b66000526000600060206000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f150600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 32 0 0) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callOutput3.json b/GeneralStateTests/stCallCreateCallCodeTest/callOutput3.json index d22927c27..0cd0bcbc2 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callOutput3.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callOutput3.json @@ -2,88 +2,58 @@ "callOutput3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callOutput3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0152447aa19bc18ad06b4c1ca4fa9f163d9f8c258925d9e1a38936588847a5ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5c0033c83177273d0ac13a79006fee34e001d9acd58e9f56e7841751a20e1c43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0152447aa19bc18ad06b4c1ca4fa9f163d9f8c258925d9e1a38936588847a5ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0152447aa19bc18ad06b4c1ca4fa9f163d9f8c258925d9e1a38936588847a5ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5c0033c83177273d0ac13a79006fee34e001d9acd58e9f56e7841751a20e1c43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b66000526020600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f150600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callOutput3Fail.json b/GeneralStateTests/stCallCreateCallCodeTest/callOutput3Fail.json index 9abdc5470..3b0d0619c 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callOutput3Fail.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callOutput3Fail.json @@ -2,88 +2,58 @@ "callOutput3Fail" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callOutput3FailFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb5f1a90133ac8a91c55acfe81e3c9fdda619081ae5251e160214090245bbebb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4548d282d5e76a7944f0ca0c562eff40124678658f1cc3420ad04bf64a926717", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb5f1a90133ac8a91c55acfe81e3c9fdda619081ae5251e160214090245bbebb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb5f1a90133ac8a91c55acfe81e3c9fdda619081ae5251e160214090245bbebb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4548d282d5e76a7944f0ca0c562eff40124678658f1cc3420ad04bf64a926717", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b66000526020600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f150600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x016001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callOutput3partial.json b/GeneralStateTests/stCallCreateCallCodeTest/callOutput3partial.json index 2439ce774..4caa2cb70 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callOutput3partial.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callOutput3partial.json @@ -2,88 +2,58 @@ "callOutput3partial" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callOutput3partialFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa69a06073030c243674bff83b6b69e44cf1e5c3922a7bbb8e0f016b2bf16c67a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf1758b5f24c9a06ccf2d242198e3b8813aef83cfa386c933a45b861cac7c2e07", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa69a06073030c243674bff83b6b69e44cf1e5c3922a7bbb8e0f016b2bf16c67a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa69a06073030c243674bff83b6b69e44cf1e5c3922a7bbb8e0f016b2bf16c67a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf1758b5f24c9a06ccf2d242198e3b8813aef83cfa386c933a45b861cac7c2e07", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600a600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f150600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callOutput3partialFail.json b/GeneralStateTests/stCallCreateCallCodeTest/callOutput3partialFail.json index 4d3a5fe5b..67a1c58db 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callOutput3partialFail.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callOutput3partialFail.json @@ -2,88 +2,58 @@ "callOutput3partialFail" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callOutput3partialFailFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x24d198fb3b2d5fc65c0f331a129e013dedc29a4af9df00b77b6011cad25ee975", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0xac14bbcd134a728e66846cf35c68f5c762ebb86519f152ba3172b4e8e3d0c88b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x24d198fb3b2d5fc65c0f331a129e013dedc29a4af9df00b77b6011cad25ee975", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x24d198fb3b2d5fc65c0f331a129e013dedc29a4af9df00b77b6011cad25ee975", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xac14bbcd134a728e66846cf35c68f5c762ebb86519f152ba3172b4e8e3d0c88b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600a600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f150600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x016001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValue.json b/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValue.json index e68a26985..017f215a1 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValue.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValue.json @@ -2,88 +2,57 @@ "callWithHighValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callWithHighValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7def6ae28e9950b938eb97188f9520684902f336edf00bd3083f19bf8a2d15b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7def6ae28e9950b938eb97188f9520684902f336edf00bd3083f19bf8a2d15b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1eb0027486ac4fc1b9d7a46ebecf09f931996982cc3d69c5a10c2706a8f02aa5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1eb0027486ac4fc1b9d7a46ebecf09f931996982cc3d69c5a10c2706a8f02aa5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7def6ae28e9950b938eb97188f9520684902f336edf00bd3083f19bf8a2d15b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6002600060406000670de0b6b3a764000173945304eb96065b2a98b57a48a06ae28d285a71b561c350f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 50000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1000000000000000001 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValueAndGasOOG.json b/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValueAndGasOOG.json index 1b6dac2f6..90b5ce667 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValueAndGasOOG.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValueAndGasOOG.json @@ -2,88 +2,57 @@ "callWithHighValueAndGasOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callWithHighValueAndGasOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3bfbfff0f54880e052e6b15b21cea6308d5f8980382efd244ec6a156e80a682c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x3bfbfff0f54880e052e6b15b21cea6308d5f8980382efd244ec6a156e80a682c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa3ad91041fae57a25112cdccd43a1f0c5dcdf3d34d3e2c0540ea9e2ad397415e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa3ad91041fae57a25112cdccd43a1f0c5dcdf3d34d3e2c0540ea9e2ad397415e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3bfbfff0f54880e052e6b15b21cea6308d5f8980382efd244ec6a156e80a682c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa602052600260006040600068056bc75e2d6310000073945304eb96065b2a98b57a48a06ae28d285a71b56bfffffffffffffffffffffffff1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 0xffffffffffffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 100000000000000000000 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValueAndOOGatTxLevel.json b/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValueAndOOGatTxLevel.json index 54d686a00..29b0cf6ea 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValueAndOOGatTxLevel.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValueAndOOGatTxLevel.json @@ -2,88 +2,78 @@ "callWithHighValueAndOOGatTxLevel" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callWithHighValueAndOOGatTxLevelFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf67e329eb3010477fe9721de02eed7171187a534ee81ad47609a049ff9af61b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "3000000" } } - ], - "EIP158" : [ - { - "hash" : "0xf67e329eb3010477fe9721de02eed7171187a534ee81ad47609a049ff9af61b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xabcff5573348695b56596d30d93ec83f3adc2ec368a81e824dd60516ccb846e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xabcff5573348695b56596d30d93ec83f3adc2ec368a81e824dd60516ccb846e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf67e329eb3010477fe9721de02eed7171187a534ee81ad47609a049ff9af61b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "33424" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", - "code" : "0x6000600060006000620186a173945304eb96065b2a98b57a48a06ae28d285a71b5622dc6c1f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "100000", + "code" : "{ [[ 0 ]] (CALL 3000001 0x945304eb96065b2a98b57a48a06ae28d285a71b5 100001 0 0 0 0 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +83,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValueOOGinCall.json b/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValueOOGinCall.json index f1e91a582..7d27f55d3 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValueOOGinCall.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callWithHighValueOOGinCall.json @@ -2,88 +2,86 @@ "callWithHighValueOOGinCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callWithHighValueOOGinCallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0867e91acfcccc804e1bf9a92ed3d40b97f87b630c1a992e3ff859de9fd0ebd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x17" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763155a" } } - ], - "EIP158" : [ - { - "hash" : "0x0867e91acfcccc804e1bf9a92ed3d40b97f87b630c1a992e3ff859de9fd0ebd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x64a7fa9e0aa600695d031c61da404a5c2782ccc80a2392833a32cc62bd923cf1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x64a7fa9e0aa600695d031c61da404a5c2782ccc80a2392833a32cc62bd923cf1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0867e91acfcccc804e1bf9a92ed3d40b97f87b630c1a992e3ff859de9fd0ebd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x17" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999939270" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", - "code" : "0x60016000600060006000601773945304eb96065b2a98b57a48a06ae28d285a71b5612710f101600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "100000", + "code" : "{ [[ 0 ]] (ADD (CALL 10000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0 ) 1) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput1.json b/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput1.json index 6478d2ec1..2598b01f9 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput1.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput1.json @@ -2,88 +2,58 @@ "callcodeOutput1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callcodeOutput1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6803680f0aea1573dfdde914548a5e1d7661b182d676cdb73f4c2bc7d348aae8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc19c1d77d2fa6f03c16c3e0a2b21f32a6d6fd6e5c42d74a205ef3cacbcd20533", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6803680f0aea1573dfdde914548a5e1d7661b182d676cdb73f4c2bc7d348aae8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6803680f0aea1573dfdde914548a5e1d7661b182d676cdb73f4c2bc7d348aae8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc19c1d77d2fa6f03c16c3e0a2b21f32a6d6fd6e5c42d74a205ef3cacbcd20533", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b66000526000600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f250600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 0) [[ 0 ]] (MLOAD 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput2.json b/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput2.json index 4a75d727c..213a8c470 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput2.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput2.json @@ -2,88 +2,58 @@ "callcodeOutput2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callcodeOutput2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x78fe48479cfd9f57c8ab5937a0805d4d04d40823c291fcc4adf0c9b61f6fc0d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0xff93a7763fb845955fac90917658906a99591d1fed6839bf9990df1eeb6aa9e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x78fe48479cfd9f57c8ab5937a0805d4d04d40823c291fcc4adf0c9b61f6fc0d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x78fe48479cfd9f57c8ab5937a0805d4d04d40823c291fcc4adf0c9b61f6fc0d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xff93a7763fb845955fac90917658906a99591d1fed6839bf9990df1eeb6aa9e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b66000526000600060206000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f250600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 32 0 0) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3.json b/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3.json index 8c98add23..8c5b81402 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3.json @@ -2,88 +2,58 @@ "callcodeOutput3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callcodeOutput3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb737505a15b9bfdb788595646aeec43d1827feb376cdc56aefc9081cb7f6e8a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0xcef78b273dc327acbe1104b428ea54e20358c1787f712ca76c3116024b347a03", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb737505a15b9bfdb788595646aeec43d1827feb376cdc56aefc9081cb7f6e8a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb737505a15b9bfdb788595646aeec43d1827feb376cdc56aefc9081cb7f6e8a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcef78b273dc327acbe1104b428ea54e20358c1787f712ca76c3116024b347a03", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b66000526020600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f250600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3Fail.json b/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3Fail.json index 480858f69..db0f7d49c 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3Fail.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3Fail.json @@ -2,88 +2,58 @@ "callcodeOutput3Fail" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callcodeOutput3FailFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfd3a6c8827305178fad93c3268903e7e3a04fe1347e56c3a05a20616ca4acd3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x633b052741568a84cdda76bcdf140e188bfb89775935668c13c76769212520af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfd3a6c8827305178fad93c3268903e7e3a04fe1347e56c3a05a20616ca4acd3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfd3a6c8827305178fad93c3268903e7e3a04fe1347e56c3a05a20616ca4acd3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x633b052741568a84cdda76bcdf140e188bfb89775935668c13c76769212520af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b66000526020600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f250600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x016001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3partial.json b/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3partial.json index 3ba4c158d..f4e0ca656 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3partial.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3partial.json @@ -2,88 +2,58 @@ "callcodeOutput3partial" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callcodeOutput3partialFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5ea923fe41814229d0076dce8fe91703070eddef323b233e43901a9bd8cafcbc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x62e67a9eefce8bc4256ade3264a52606e421505048397736cec05454afd65ace", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5ea923fe41814229d0076dce8fe91703070eddef323b233e43901a9bd8cafcbc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5ea923fe41814229d0076dce8fe91703070eddef323b233e43901a9bd8cafcbc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x62e67a9eefce8bc4256ade3264a52606e421505048397736cec05454afd65ace", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600a600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f250600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3partialFail.json b/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3partialFail.json index a99b6d837..d65351c85 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3partialFail.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callcodeOutput3partialFail.json @@ -2,88 +2,58 @@ "callcodeOutput3partialFail" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callcodeOutput3partialFailFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdb077b8446cf6ccba2575d27f2656e89ed494a6fa5fa8302dba207ee16af8b56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6dde5c3897639f0a36ccdba1addcee240c47c55fc04c90ffa0663ac4668dd2af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdb077b8446cf6ccba2575d27f2656e89ed494a6fa5fa8302dba207ee16af8b56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdb077b8446cf6ccba2575d27f2656e89ed494a6fa5fa8302dba207ee16af8b56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6dde5c3897639f0a36ccdba1addcee240c47c55fc04c90ffa0663ac4668dd2af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600a600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f250600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x016001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callcodeWithHighValue.json b/GeneralStateTests/stCallCreateCallCodeTest/callcodeWithHighValue.json index 4883a6ff6..ea00d7c73 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callcodeWithHighValue.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callcodeWithHighValue.json @@ -2,88 +2,57 @@ "callcodeWithHighValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callcodeWithHighValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x86067cf8a4293319dbc8884e0497b77acc13910e87f5bdb436f6f7abc338de7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x86067cf8a4293319dbc8884e0497b77acc13910e87f5bdb436f6f7abc338de7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb780598c57627c25b4378a47664f3c2719e68b60de2070d526ae3f90cc57b7c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb780598c57627c25b4378a47664f3c2719e68b60de2070d526ae3f90cc57b7c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x86067cf8a4293319dbc8884e0497b77acc13910e87f5bdb436f6f7abc338de7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6002600060406000670de0b6b3a764000173945304eb96065b2a98b57a48a06ae28d285a71b561c350f2600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 50000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1000000000000000001 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/callcodeWithHighValueAndGasOOG.json b/GeneralStateTests/stCallCreateCallCodeTest/callcodeWithHighValueAndGasOOG.json index 2350265df..dae8f6097 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/callcodeWithHighValueAndGasOOG.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/callcodeWithHighValueAndGasOOG.json @@ -2,88 +2,57 @@ "callcodeWithHighValueAndGasOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/callcodeWithHighValueAndGasOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6d4dadb84a3e8ca3c0cda40ae936ce991724c5399d72a1a8c930450e869c0a13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x6d4dadb84a3e8ca3c0cda40ae936ce991724c5399d72a1a8c930450e869c0a13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc8f0273b761297b4f580d19488711d74e6b6900bcf55fd9c6fa9fd891809bc52", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc8f0273b761297b4f580d19488711d74e6b6900bcf55fd9c6fa9fd891809bc52", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6d4dadb84a3e8ca3c0cda40ae936ce991724c5399d72a1a8c930450e869c0a13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa602052600260006040600068056bc75e2d6310000073945304eb96065b2a98b57a48a06ae28d285a71b56bfffffffffffffffffffffffff2600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 0xffffffffffffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 100000000000000000000 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createFailBalanceTooLow.json b/GeneralStateTests/stCallCreateCallCodeTest/createFailBalanceTooLow.json index 1057ecbe0..a04914dad 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createFailBalanceTooLow.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createFailBalanceTooLow.json @@ -2,81 +2,63 @@ "createFailBalanceTooLow" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createFailBalanceTooLowFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x55c92327bbe8401de7efef3cd3f1fd2227224e415142bbc36f634920407d4ee5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640017" } } - ], - "EIP158" : [ - { - "hash" : "0x55c92327bbe8401de7efef3cd3f1fd2227224e415142bbc36f634920407d4ee5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5833e19631ddedaf4e3c9a766f696c2e59e7524e388eb871be19dc8e0ce37b6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5833e19631ddedaf4e3c9a766f696c2e59e7524e388eb871be19dc8e0ce37b6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x55c92327bbe8401de7efef3cd3f1fd2227224e415142bbc36f634920407d4ee5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x605a60005360016000670de0b6b3a7640018f0ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{(MSTORE8 0 0x5a ) (SELFDESTRUCT (CREATE 1000000000000000024 0 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +68,14 @@ "" ], "gasLimit" : [ - "0xcf1d" + "53021" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x17" + "23" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createInitFailBadJumpDestination.json b/GeneralStateTests/stCallCreateCallCodeTest/createInitFailBadJumpDestination.json index 68266c88a..6e123ae97 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createInitFailBadJumpDestination.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createInitFailBadJumpDestination.json @@ -2,81 +2,49 @@ "createInitFailBadJumpDestination" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createInitFailBadJumpDestinationFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x824c238b75708fb4a25f1b1fd6d157278ced70e717a294790e74b0a006f31949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a76586a0" } } - ], - "EIP158" : [ - { - "hash" : "0x824c238b75708fb4a25f1b1fd6d157278ced70e717a294790e74b0a006f31949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xccf7765eff3effe22a5f853099f7da88291b8346b689ffbf54b729ba04170e59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xccf7765eff3effe22a5f853099f7da88291b8346b689ffbf54b729ba04170e59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x824c238b75708fb4a25f1b1fd6d157278ced70e717a294790e74b0a006f31949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6056600053600160006001f0ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{(MSTORE8 0 0x56 ) (SELFDESTRUCT (CREATE 1 0 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x05f5e100" + "100000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createInitFailStackSizeLargerThan1024.json b/GeneralStateTests/stCallCreateCallCodeTest/createInitFailStackSizeLargerThan1024.json index 8b2d6067e..b186d661b 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createInitFailStackSizeLargerThan1024.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createInitFailStackSizeLargerThan1024.json @@ -2,81 +2,49 @@ "createInitFailStackSizeLargerThan1024" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createInitFailStackSizeLargerThan1024Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x824c238b75708fb4a25f1b1fd6d157278ced70e717a294790e74b0a006f31949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a76586a0" } } - ], - "EIP158" : [ - { - "hash" : "0x824c238b75708fb4a25f1b1fd6d157278ced70e717a294790e74b0a006f31949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xccf7765eff3effe22a5f853099f7da88291b8346b689ffbf54b729ba04170e59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xccf7765eff3effe22a5f853099f7da88291b8346b689ffbf54b729ba04170e59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x824c238b75708fb4a25f1b1fd6d157278ced70e717a294790e74b0a006f31949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f6103ff6000525b7f0102030405060708090a0102030405060708090a010203046000527f05060708090a0102600160005103600052600051600657000000000000000000602052604060006001f0ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{(MSTORE 0 0x6103ff6000525b7f0102030405060708090a0102030405060708090a01020304) (MSTORE 32 0x05060708090a0102600160005103600052600051600657000000000000000000 ) (SELFDESTRUCT (CREATE 1 0 64)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x05f5e100" + "100000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createInitFailStackUnderflow.json b/GeneralStateTests/stCallCreateCallCodeTest/createInitFailStackUnderflow.json index aa85c83c3..d190bb556 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createInitFailStackUnderflow.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createInitFailStackUnderflow.json @@ -2,81 +2,49 @@ "createInitFailStackUnderflow" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createInitFailStackUnderflowFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x824c238b75708fb4a25f1b1fd6d157278ced70e717a294790e74b0a006f31949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a76586a0" } } - ], - "EIP158" : [ - { - "hash" : "0x824c238b75708fb4a25f1b1fd6d157278ced70e717a294790e74b0a006f31949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xccf7765eff3effe22a5f853099f7da88291b8346b689ffbf54b729ba04170e59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xccf7765eff3effe22a5f853099f7da88291b8346b689ffbf54b729ba04170e59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x824c238b75708fb4a25f1b1fd6d157278ced70e717a294790e74b0a006f31949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001600053600160006001f0ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{(MSTORE8 0 0x01 ) (SELFDESTRUCT (CREATE 1 0 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x05f5e100" + "100000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createInitFailUndefinedInstruction.json b/GeneralStateTests/stCallCreateCallCodeTest/createInitFailUndefinedInstruction.json index 9e2c6d234..8d83db8d1 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createInitFailUndefinedInstruction.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createInitFailUndefinedInstruction.json @@ -2,81 +2,49 @@ "createInitFailUndefinedInstruction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createInitFailUndefinedInstructionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x824c238b75708fb4a25f1b1fd6d157278ced70e717a294790e74b0a006f31949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a76586a0" } } - ], - "EIP158" : [ - { - "hash" : "0x824c238b75708fb4a25f1b1fd6d157278ced70e717a294790e74b0a006f31949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xccf7765eff3effe22a5f853099f7da88291b8346b689ffbf54b729ba04170e59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xccf7765eff3effe22a5f853099f7da88291b8346b689ffbf54b729ba04170e59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x824c238b75708fb4a25f1b1fd6d157278ced70e717a294790e74b0a006f31949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60f4600053600160006001f0ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{(MSTORE8 0 0xf4 ) (SELFDESTRUCT (CREATE 1 0 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x05f5e100" + "100000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createInitFail_OOGduringInit.json b/GeneralStateTests/stCallCreateCallCodeTest/createInitFail_OOGduringInit.json index 17c2c2bb5..9646960bc 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createInitFail_OOGduringInit.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createInitFail_OOGduringInit.json @@ -2,81 +2,63 @@ "createInitFail_OOGduringInit" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createInitFail_OOGduringInitFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x97f22c8456ec99501c3eb4f86927b26c6aa50f658a5939fdc20234f1d376a6e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a76586a0" } } - ], - "EIP158" : [ - { - "hash" : "0x97f22c8456ec99501c3eb4f86927b26c6aa50f658a5939fdc20234f1d376a6e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x297303455494578a5176177ff1b9db0b0a516255a3d062fb960bbc99e60d8eb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x297303455494578a5176177ff1b9db0b0a516255a3d062fb960bbc99e60d8eb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x97f22c8456ec99501c3eb4f86927b26c6aa50f658a5939fdc20234f1d376a6e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x605a600053600160006001f0ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{(MSTORE8 0 0x5a ) (SELFDESTRUCT (CREATE 1 0 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +68,14 @@ "" ], "gasLimit" : [ - "0xcf1d" + "53021" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createInitOOGforCREATE.json b/GeneralStateTests/stCallCreateCallCodeTest/createInitOOGforCREATE.json index 254f5f86c..91049c42f 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createInitOOGforCREATE.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createInitOOGforCREATE.json @@ -2,81 +2,49 @@ "createInitOOGforCREATE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createInitOOGforCREATEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb61e4a95fae40806b0ddef0883479c3db70e79e019ab4260535560827525c00c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xb61e4a95fae40806b0ddef0883479c3db70e79e019ab4260535560827525c00c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb61e4a95fae40806b0ddef0883479c3db70e79e019ab4260535560827525c00c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb61e4a95fae40806b0ddef0883479c3db70e79e019ab4260535560827525c00c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb61e4a95fae40806b0ddef0883479c3db70e79e019ab4260535560827525c00c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x605a600053600160006001f0ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{(MSTORE8 0 0x5a ) (SELFDESTRUCT (CREATE 1 0 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0xcf1c" + "53020" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createJS_ExampleContract.json b/GeneralStateTests/stCallCreateCallCodeTest/createJS_ExampleContract.json index 51794d651..4dc066036 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createJS_ExampleContract.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createJS_ExampleContract.json @@ -2,96 +2,76 @@ "createJS_ExampleContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.e262eefd.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createJS_ExampleContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfa6ad7de38ebb87bba885a011b42db857ef3dbcad0785fa227a64c278cf67aa6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - }, - "logs" : [ - ] + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "storage" : { + } + } } - ], - "EIP158" : [ - { - "hash" : "0x76778cf36d1b30637d2cfac4b7fe1101c6ba3c4e3485b2d7b0cf57e7da4e5f87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - }, - "logs" : [ - ] - } - ], - "Frontier" : [ - { - "hash" : "0xaa4a4f33edbf9933dec6709b7c6295e17707fb5b8bf9fd231490cd36aef1d730", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - }, - "logs" : [ - ] - } - ], - "Homestead" : [ - { - "hash" : "0xfa6ad7de38ebb87bba885a011b42db857ef3dbcad0785fa227a64c278cf67aa6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - }, - "logs" : [ - ] - } - ], - "Metropolis" : [ - { - "hash" : "0x461c87413f1515b197cc0607decd0871b9905251670b18e100090c527db61f13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - }, - "logs" : [ - ] + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "storage" : { + "0x00" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x42", + "0x02" : "0x23", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x05" : "0x54c98c81" + } + } } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { - "balance" : "0x0186a0", + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "100000", "code" : "0x60003560e060020a9004806343d726d61461004257806391b7f5ed14610050578063d686f9ee14610061578063f5bade661461006f578063fcfff16f1461008057005b61004a6101de565b60006000f35b61005b6004356100bf565b60006000f35b610069610304565b60006000f35b61007a60043561008e565b60006000f35b6100886100f0565b60006000f35b600054600160a060020a031633600160a060020a031614156100af576100b4565b6100bc565b806001819055505b50565b600054600160a060020a031633600160a060020a031614156100e0576100e5565b6100ed565b806002819055505b50565b600054600160a060020a031633600160a060020a031614806101255750600354600160a060020a031633600160a060020a0316145b61012e57610161565b60016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a16101dc565b60045460011480610173575060015434105b6101b85760016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a142600581905550336003819055506101db565b33600160a060020a03166000346000600060006000848787f16101d757005b5050505b5b565b60006004546000146101ef576101f4565b610301565b600054600160a060020a031633600160a060020a031614801561022c5750600054600160a060020a0316600354600160a060020a0316145b61023557610242565b6000600481905550610301565b600354600160a060020a031633600160a060020a03161461026257610300565b600554420360025402905060015481116102c757600354600160a060020a0316600082600154036000600060006000848787f161029b57005b505050600054600160a060020a03166000826000600060006000848787f16102bf57005b5050506102ee565b600054600160a060020a031660006001546000600060006000848787f16102ea57005b5050505b60006004819055506000546003819055505b5b50565b6000600054600160a060020a031633600160a060020a031614156103275761032c565b61037e565b600554420360025402905060015481116103455761037d565b600054600160a060020a031660006001546000600060006000848787f161036857005b50505060006004819055506000546003819055505b5b5056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { - "0x00" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", "0x01" : "0x42", "0x02" : "0x23", "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", "0x05" : "0x54c98c81" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x09184e72a000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -101,15 +81,15 @@ "0x60406103ca600439600451602451336000819055506000600481905550816001819055508060028190555042600581905550336003819055505050610381806100496000396000f30060003560e060020a9004806343d726d61461004257806391b7f5ed14610050578063d686f9ee14610061578063f5bade661461006f578063fcfff16f1461008057005b61004a6101de565b60006000f35b61005b6004356100bf565b60006000f35b610069610304565b60006000f35b61007a60043561008e565b60006000f35b6100886100f0565b60006000f35b600054600160a060020a031633600160a060020a031614156100af576100b4565b6100bc565b806001819055505b50565b600054600160a060020a031633600160a060020a031614156100e0576100e5565b6100ed565b806002819055505b50565b600054600160a060020a031633600160a060020a031614806101255750600354600160a060020a031633600160a060020a0316145b61012e57610161565b60016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a16101dc565b60045460011480610173575060015434105b6101b85760016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a142600581905550336003819055506101db565b33600160a060020a03166000346000600060006000848787f16101d757005b5050505b5b565b60006004546000146101ef576101f4565b610301565b600054600160a060020a031633600160a060020a031614801561022c5750600054600160a060020a0316600354600160a060020a0316145b61023557610242565b6000600481905550610301565b600354600160a060020a031633600160a060020a03161461026257610300565b600554420360025402905060015481116102c757600354600160a060020a0316600082600154036000600060006000848787f161029b57005b505050600054600160a060020a03166000826000600060006000848787f16102bf57005b5050506102ee565b600054600160a060020a031660006001546000600060006000848787f16102ea57005b5050505b60006004819055506000546003819055505b5b50565b6000600054600160a060020a031633600160a060020a031614156103275761032c565b61037e565b600554420360025402905060015481116103455761037d565b600054600160a060020a031660006001546000600060006000848787f161036857005b50505060006004819055506000546003819055505b5b505600000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000023" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0186a0" + "100000" ] } } -} +} \ No newline at end of file diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createJS_NoCollision.json b/GeneralStateTests/stCallCreateCallCodeTest/createJS_NoCollision.json index 0545b76d4..fbc1d5b94 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createJS_NoCollision.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createJS_NoCollision.json @@ -2,74 +2,69 @@ "createJS_NoCollision" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createJS_NoCollisionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2dcdc769bddc469d0eea04acebb4f082cd16bb90642264763c1f2efb4636f674", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "storage" : { + "0x00" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x42", + "0x02" : "0x23", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x05" : "0x03e8" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8711293c80aa5a2ca90b9771b3ee453ec25a0c0799fa6aabcc09b427802880cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe0974185f0c4317e900da502eddb5d6e5c5accbb8b98f7cb9e223cb054423b60", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2dcdc769bddc469d0eea04acebb4f082cd16bb90642264763c1f2efb4636f674", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "storage" : { + "0x00" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x42", + "0x02" : "0x23", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x05" : "0x03e8" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x8711293c80aa5a2ca90b9771b3ee453ec25a0c0799fa6aabcc09b427802880cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x09184e72a000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -79,14 +74,14 @@ "0x60406103ca600439600451602451336000819055506000600481905550816001819055508060028190555042600581905550336003819055505050610381806100496000396000f30060003560e060020a9004806343d726d61461004257806391b7f5ed14610050578063d686f9ee14610061578063f5bade661461006f578063fcfff16f1461008057005b61004a6101de565b60006000f35b61005b6004356100bf565b60006000f35b610069610304565b60006000f35b61007a60043561008e565b60006000f35b6100886100f0565b60006000f35b600054600160a060020a031633600160a060020a031614156100af576100b4565b6100bc565b806001819055505b50565b600054600160a060020a031633600160a060020a031614156100e0576100e5565b6100ed565b806002819055505b50565b600054600160a060020a031633600160a060020a031614806101255750600354600160a060020a031633600160a060020a0316145b61012e57610161565b60016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a16101dc565b60045460011480610173575060015434105b6101b85760016004819055507f59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a560006000a142600581905550336003819055506101db565b33600160a060020a03166000346000600060006000848787f16101d757005b5050505b5b565b60006004546000146101ef576101f4565b610301565b600054600160a060020a031633600160a060020a031614801561022c5750600054600160a060020a0316600354600160a060020a0316145b61023557610242565b6000600481905550610301565b600354600160a060020a031633600160a060020a03161461026257610300565b600554420360025402905060015481116102c757600354600160a060020a0316600082600154036000600060006000848787f161029b57005b505050600054600160a060020a03166000826000600060006000848787f16102bf57005b5050506102ee565b600054600160a060020a031660006001546000600060006000848787f16102ea57005b5050505b60006004819055506000546003819055505b5b50565b6000600054600160a060020a031633600160a060020a031614156103275761032c565b61037e565b600554420360025402905060015481116103455761037d565b600054600160a060020a031660006001546000600060006000848787f161036857005b50505060006004819055506000546003819055505b5b505600000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000023" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorPerTxs.json b/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorPerTxs.json index bd4d54547..bb2e97b05 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorPerTxs.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorPerTxs.json @@ -2,74 +2,105 @@ "createNameRegistratorPerTxs" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createNameRegistratorPerTxsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa8d7d1b8699bdceade31abacca281e2570461a3083f2767cbaad1ed08581cf2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x90fb2086df06776e9e04c413551df4b1aafcaeda3b3c5e754e16e65f75671bde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x01", + "storage" : { + "0x01" : "0x01" + } } } - ], - "Frontier" : [ - { - "hash" : "0xe0911f5b8035d9192581b3a82ddb0a32955e880088c49e92936789be2310ef90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xa8d7d1b8699bdceade31abacca281e2570461a3083f2767cbaad1ed08581cf2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x01", + "storage" : { + "0x01" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x90fb2086df06776e9e04c413551df4b1aafcaeda3b3c5e754e16e65f75671bde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -81,12 +112,12 @@ "gasLimit" : [ "0x1314e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorPerTxsNotEnoughGas.json b/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorPerTxsNotEnoughGas.json index 6c94d4d5c..02f33fbc2 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorPerTxsNotEnoughGas.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorPerTxsNotEnoughGas.json @@ -2,114 +2,60 @@ "createNameRegistratorPerTxsNotEnoughGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createNameRegistratorPerTxsNotEnoughGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : [ + 0 + ], + "value" : -1 }, - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "nonce" : "0x00" } } - ], - "EIP158" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "nonce" : "0x00" } } - ], - "Frontier" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6dcd1874a8295fa628ca7c100e9fa6248e74b92afd9a7b8511879078dfc2f007", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -122,12 +68,12 @@ "0x544d", "0xb44d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorPreStore1NotEnoughGas.json b/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorPreStore1NotEnoughGas.json index 5fbffa558..162fccfcc 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorPreStore1NotEnoughGas.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorPreStore1NotEnoughGas.json @@ -2,81 +2,52 @@ "createNameRegistratorPreStore1NotEnoughGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createNameRegistratorPreStore1NotEnoughGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x223d9667daa515577a93dc04cdd41a803c9c2529628009ed68b8f73efb87872e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0x01" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x223d9667daa515577a93dc04cdd41a803c9c2529628009ed68b8f73efb87872e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3e4b203d9a716a8209c2af59c485f3c1e5bb7b97d482313676dcd64410ed6563", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3e4b203d9a716a8209c2af59c485f3c1e5bb7b97d482313676dcd64410ed6563", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x223d9667daa515577a93dc04cdd41a803c9c2529628009ed68b8f73efb87872e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f6001600155601080600c6000396000f3006000355415600957005b602035600060005260356020536055602153602260006017f0", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{(MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 ) (MSTORE8 32 0x35) (MSTORE8 33 0x55) (CREATE 23 0 34) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +57,14 @@ "" ], "gasLimit" : [ - "0x011d6f" + "73071" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorendowmentTooHigh.json b/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorendowmentTooHigh.json index a017f406a..230e6ee1e 100644 --- a/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorendowmentTooHigh.json +++ b/GeneralStateTests/stCallCreateCallCodeTest/createNameRegistratorendowmentTooHigh.json @@ -2,81 +2,50 @@ "createNameRegistratorendowmentTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallCreateCallCodeTest/createNameRegistratorendowmentTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcf37f045166beaaa2736f2d25cb253fec658f8a33529d2bdee8a8ae8342685c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xcf37f045166beaaa2736f2d25cb253fec658f8a33529d2bdee8a8ae8342685c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcf37f045166beaaa2736f2d25cb253fec658f8a33529d2bdee8a8ae8342685c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcf37f045166beaaa2736f2d25cb253fec658f8a33529d2bdee8a8ae8342685c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcf37f045166beaaa2736f2d25cb253fec658f8a33529d2bdee8a8ae8342685c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052601d6003670de0b6b3a7640001f0600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 1000000000000000001 3 29) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001.json index 727e17b99..c470a1d9b 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001.json @@ -2,102 +2,154 @@ "callcallcallcode_001" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x76b5f8584be3e265db1cb00ec75e9222d08221b9df73138094c698fa2ecf6807", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x76b5f8584be3e265db1cb00ec75e9222d08221b9df73138094c698fa2ecf6807", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4b4dd8277a751c3b68f63e63e99aedcac6e14ed41912e6ded7fe18226b0d1cea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc3a1d582d201a1e0bec05b10a62eed64cabe23531ac87e33c8a2ac563910104e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x76b5f8584be3e265db1cb00ec75e9222d08221b9df73138094c698fa2ecf6807", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000000", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x05" : "0x02" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620493e0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000036203d090f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346005553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 5 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +159,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGE.json index c5e3ffa52..b446b3663 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGE.json @@ -2,102 +2,132 @@ "callcallcallcode_001_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x27fd103b518e62155f72dc94bc3fd4a5828f3b0e50e8214d565da908bc6d6eae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x27fd103b518e62155f72dc94bc3fd4a5828f3b0e50e8214d565da908bc6d6eae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8bfd99232c43915d3204298146dee2dab5be51559b9e2464ecc9b018c91cd998", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe2999ab775829c7a7f1e781bdc6f396daeb7b809b4bebd3471b251d136a4e83e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x27fd103b518e62155f72dc94bc3fd4a5828f3b0e50e8214d565da908bc6d6eae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +137,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGMAfter.json index 3ece39f74..cdd740e05 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGMAfter.json @@ -2,102 +2,154 @@ "callcallcallcode_001_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa17df9238a8f84b1d45abbf2608ef80e5dcd07de0c8dd2bbcf98ca21db99753c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa17df9238a8f84b1d45abbf2608ef80e5dcd07de0c8dd2bbcf98ca21db99753c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x59f3975264b93f4097b183f9ed5dfda26667e2feb0ef6c0938dd9f49e97fdbdc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xef211f7b041d3ef77a8575136a6364fd7ec5975ec2fedac3668d61ed1d9ff93e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa17df9238a8f84b1d45abbf2608ef80e5dcd07de0c8dd2bbcf98ca21db99753c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf7f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60151 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c89f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40073 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +159,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGMBefore.json index 18bb163cc..1432d2eb2 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGMBefore.json @@ -2,102 +2,136 @@ "callcallcallcode_001_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfa8ea8b5f31fcbe1671779794d1a8f40ac5e17c80bd2fc238a0aebd64a08459e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfa8ea8b5f31fcbe1671779794d1a8f40ac5e17c80bd2fc238a0aebd64a08459e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x89756fb72b4debba20c92e7af6fd5d37923614fdc071135f7f4f493c927e298a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x89756fb72b4debba20c92e7af6fd5d37923614fdc071135f7f4f493c927e298a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfa8ea8b5f31fcbe1671779794d1a8f40ac5e17c80bd2fc238a0aebd64a08459e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf7f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60151 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c89f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40073 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_SuicideEnd.json index 05fdce086..4e26be279 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_SuicideEnd.json @@ -2,102 +2,127 @@ "callcallcallcode_001_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd0b64ffa7b6b20189b5b8ddfcac6f7751e2db9e5a6319289e8393360b399ef3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd0b64ffa7b6b20189b5b8ddfcac6f7751e2db9e5a6319289e8393360b399ef3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0c880ada7adb2626c08ab5449f60489e1ed272c19de0d44092962f366644995f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x518b1641c608b5dc5be73761b5d874d44bbfe4c94feeb583712412d671f723ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd0b64ffa7b6b20189b5b8ddfcac6f7751e2db9e5a6319289e8393360b399ef3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350f4600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +132,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_SuicideMiddle.json index 2f2fcdd79..f091500f5 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_SuicideMiddle.json @@ -2,102 +2,136 @@ "callcallcallcode_001_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcallcode_001_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc9a2ccedb4f169e460684909680e9147dda2b46474e9bf8d24c65b6e8cde4522", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc9a2ccedb4f169e460684909680e9147dda2b46474e9bf8d24c65b6e8cde4522", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xddf1a3d22daf33c4a641fdf43b83399fbcbeaf8532792161e2e0fb0638640ad0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xddf1a3d22daf33c4a641fdf43b83399fbcbeaf8532792161e2e0fb0638640ad0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc9a2ccedb4f169e460684909680e9147dda2b46474e9bf8d24c65b6e8cde4522", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_ABCB_RECURSIVE.json index 7d35144ef..d33e27754 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcallcode_ABCB_RECURSIVE.json @@ -2,95 +2,143 @@ "callcallcallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x00aefdf2557f665cdb2328e30a9e703985b5c427ad9a24e111b9bd36b8c73571", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "1046140" } } - ], - "EIP158" : [ - { - "hash" : "0x00aefdf2557f665cdb2328e30a9e703985b5c427ad9a24e111b9bd36b8c73571", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x57f5cb02223fc5088ccf1424e7f6580dbf33736871eb6e21dbe935a25cb8fcce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4147efecb96df3d57d5ca561c9c2d56d454908d62cdfcce7eaeecc06f674a15c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566207" } } - ], - "Metropolis" : [ - { - "hash" : "0x00aefdf2557f665cdb2328e30a9e703985b5c427ad9a24e111b9bd36b8c73571", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568187" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +148,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcode_01.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcode_01.json index feb5f28cd..92fc37ba1 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcode_01.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcode_01.json @@ -2,95 +2,121 @@ "callcallcode_01" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcode_01Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2565cba5a627c072ece8ca1b220e2881bf20c4b8ee5197e71cc8f2143cca2ad8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x04" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2565cba5a627c072ece8ca1b220e2881bf20c4b8ee5197e71cc8f2143cca2ad8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9969d29090f0acdfc1d3d449fa4f0137fdfed134326a87a18c8a5c7f9e51db6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbf3420a5296914baaea4264444382a16cefed59df3ea7a4e578fe145165c8462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2565cba5a627c072ece8ca1b220e2881bf20c4b8ee5197e71cc8f2143cca2ad8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x05" : "0x01", + "0xe6" : "0x1000000000000000000000000000000000000000", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x04" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000026203d090f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025533600455346005553060e6553260e8553660ec553860ee553a60f055", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 5 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +126,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcode_01_OOGE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcode_01_OOGE.json index 497d7df4e..cf7a7faa3 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcode_01_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcode_01_OOGE.json @@ -2,95 +2,103 @@ "callcallcode_01_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcode_01_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcba87c3ca6dea43accecde7d7bb6869168172533bb2cdcf6675d898d7d20bd19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xcba87c3ca6dea43accecde7d7bb6869168172533bb2cdcf6675d898d7d20bd19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd6e92f864b605abedc77221dba97086bae3856df17aa9ebc605a4ea47e1ccbad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1488e41eb05d14faacd98ac3721273e5204dfe898b810c67bc0a95ef957bf19c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcba87c3ca6dea43accecde7d7bb6869168172533bb2cdcf6675d898d7d20bd19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaa8f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60072 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002614e34f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +108,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcode_01_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcode_01_SuicideEnd.json index c69952b59..48560dce1 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcode_01_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcode_01_SuicideEnd.json @@ -2,95 +2,114 @@ "callcallcode_01_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcode_01_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6cdabb1d1e4e89cc6c0a89463dabb952b94a2384c251bb1e3cd14766a39af351", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6cdabb1d1e4e89cc6c0a89463dabb952b94a2384c251bb1e3cd14766a39af351", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9ef2bba4092f8640ce36e2a2a7255edcd055bd777d40b8112efba66fdfb85b7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0cf1cd9a7849fc8458041e8a5b61de5a0f216cb46d7ddd81150adf71cc020b17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6cdabb1d1e4e89cc6c0a89463dabb952b94a2384c251bb1e3cd14766a39af351", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000261c350f4600155731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +119,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010.json index e9297bb5e..fde1910f5 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010.json @@ -2,102 +2,144 @@ "callcallcodecall_010" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa0f23a81222fb5355119b536185264b63eec497f08529bffafaa233ed0a4788b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00", + "0x06" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa0f23a81222fb5355119b536185264b63eec497f08529bffafaa233ed0a4788b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc734fb74138bf68c4ba9168cfeb17463b0edd6bbcdd10279e910280127628249", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7ea720933b432c49edbd0fc898ad77183180145720148227884ecebc0bb1dc7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa0f23a81222fb5355119b536185264b63eec497f08529bffafaa233ed0a4788b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000000", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x05" : "0x1000000000000000000000000000000000000000", + "0x06" : "0x02" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620493e0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060027310000000000000000000000000000000000000036203d090f260025533600555", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346006553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 6 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +149,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGE.json index 4fea66bb2..b90b4b25f 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGE.json @@ -2,102 +2,132 @@ "callcallcodecall_010_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdf6cbac7fc17feddb3bf7f923d12b5ce81e25ab70dcac2f31c4038cd16fd4c71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdf6cbac7fc17feddb3bf7f923d12b5ce81e25ab70dcac2f31c4038cd16fd4c71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1ef2aeaaf97a680b1facf49a4eeb975af2f064af0cfc0247456a9fa728299599", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf764a37a456d088da38d0cb216679fd7d98e25ef701d7b43045450017d343dcf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdf6cbac7fc17feddb3bf7f923d12b5ce81e25ab70dcac2f31c4038cd16fd4c71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +137,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGMAfter.json index 06523b68e..92822b01b 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGMAfter.json @@ -2,102 +2,174 @@ "callcallcodecall_010_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xde101ef70f3ec3b41bfbc894ed9af86d9f1e28b95d30fba017aeb5f5fbda601b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xde101ef70f3ec3b41bfbc894ed9af86d9f1e28b95d30fba017aeb5f5fbda601b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdd76ee8ba39a7071c313c6482b98e2db641023bf18a796e77cf2eb4758a18549", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdd76ee8ba39a7071c313c6482b98e2db641023bf18a796e77cf2eb4758a18549", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xde101ef70f3ec3b41bfbc894ed9af86d9f1e28b95d30fba017aeb5f5fbda601b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf7f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60151 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c8df46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40077 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +179,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGMBefore.json index 934049ae3..259aa5e57 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGMBefore.json @@ -2,102 +2,138 @@ "callcallcodecall_010_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1e925d4e5f55bb8978bb79f00fe154b6783cbe3f7c86ce73a81b3ddc6632e2bd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1e925d4e5f55bb8978bb79f00fe154b6783cbe3f7c86ce73a81b3ddc6632e2bd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3f9173190b1d98b598134751fcbd26bf8bc1a1c84adb5a52367fe481604f709a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x21ffc10aa60a9578527ffd543d69ebacb5cff9f39cdbe70a1c89b8ce14b45f5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1e925d4e5f55bb8978bb79f00fe154b6783cbe3f7c86ce73a81b3ddc6632e2bd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000162011206f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 70150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c94f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40084 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +143,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_SuicideEnd.json index b432a16c2..9f418c597 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_SuicideEnd.json @@ -2,102 +2,117 @@ "callcallcodecall_010_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x14f76494a1acee67b8abc22aafd236664aa063bc57fcdc806369965bd9d636ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x14f76494a1acee67b8abc22aafd236664aa063bc57fcdc806369965bd9d636ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x53d9ec0ba038f05b87797047791541f6b68d6902dd84e917a9cc1358190873e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xca62c6b192b47460c49bcc57dd6a0f6b7d853e0943a322d21aac4031061b241e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x14f76494a1acee67b8abc22aafd236664aa063bc57fcdc806369965bd9d636ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +122,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_SuicideMiddle.json index b31af6302..eab1b8216 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_SuicideMiddle.json @@ -2,102 +2,121 @@ "callcallcodecall_010_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecall_010_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0790915f009aad54c0077bb9142d9d262b9ae250515a4b382218b6aea2b14c18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0790915f009aad54c0077bb9142d9d262b9ae250515a4b382218b6aea2b14c18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6d21e47580c9b8a9622c64cf98eff46fb9dfa0a5228ae511acb6c0a5caacd2b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6b0e71c38986244674302f43b4e100b7b48c1e0fbf4da59aad11f4fe871295b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0790915f009aad54c0077bb9142d9d262b9ae250515a4b382218b6aea2b14c18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +126,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_ABCB_RECURSIVE.json index 7b2705727..757217dfa 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecall_ABCB_RECURSIVE.json @@ -2,95 +2,143 @@ "callcallcodecall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9a91ed9259c40134fc63ee43e31838c34c278097e0444d41205c7b2e1d6dee61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "25026070" } } - ], - "EIP158" : [ - { - "hash" : "0x9a91ed9259c40134fc63ee43e31838c34c278097e0444d41205c7b2e1d6dee61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfce8a4c134d08c91c07360181a10147fae16719e4601b046fd42f08af898e2bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xee3561b235b4068db77139423e4c0924089edef1c0d6a2fee982ab56be33d0a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566207" } } - ], - "Metropolis" : [ - { - "hash" : "0x9a91ed9259c40134fc63ee43e31838c34c278097e0444d41205c7b2e1d6dee61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568187" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +148,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011.json index 51d2d525b..6b3e5e780 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011.json @@ -2,102 +2,122 @@ "callcallcodecallcode_011" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa76cb747cf1f203265688de53807caeba3a997ddbef949753236eb7b8d9af62d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x06" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa76cb747cf1f203265688de53807caeba3a997ddbef949753236eb7b8d9af62d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf7761ec943b56776102dc01050059bfca1c3b842d68e09f484a0e98d45a28033", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xed05a91aa638e472c45034ad455b0bd7279c2316e7bd69bf1fbc5f311dc6c785", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa76cb747cf1f203265688de53807caeba3a997ddbef949753236eb7b8d9af62d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000000", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x06" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620493e0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x604060006040600073100000000000000000000000000000000000000362030d40f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 200000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346006553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 6 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +127,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGE.json index 91acdb0fa..ea9d4d8b2 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGE.json @@ -2,102 +2,136 @@ "callcallcodecallcode_011_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x22145358b2fc36dd15d6e6ec01f466be5b153616d93a8fa37262d0e5bd32ce71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x22145358b2fc36dd15d6e6ec01f466be5b153616d93a8fa37262d0e5bd32ce71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x19234d55fac3e6bf9b077f71f9da732f807b689401bbbc96f705ade59d84db12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5ca0140fdbcc77fd2d4e5cb5094d9d7857245569ef7d3caaae6537a7ca4d2c69", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x22145358b2fc36dd15d6e6ec01f466be5b153616d93a8fa37262d0e5bd32ce71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGMAfter.json index 6a30c58ce..8b5b0c578 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGMAfter.json @@ -2,102 +2,138 @@ "callcallcodecallcode_011_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2026f1fd527a64566ff84ec9ec0a5b0fe32e86a96055762ad278bcc761d7dc0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2026f1fd527a64566ff84ec9ec0a5b0fe32e86a96055762ad278bcc761d7dc0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe42eebbc9e79bdfd97d94f2c4d03b9cad5bb7f41ea1a0a2e109ecc4fff9e5787", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe42eebbc9e79bdfd97d94f2c4d03b9cad5bb7f41ea1a0a2e109ecc4fff9e5787", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2026f1fd527a64566ff84ec9ec0a5b0fe32e86a96055762ad278bcc761d7dc0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf1f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60145 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x604060006040600073100000000000000000000000000000000000000261c350f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +143,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGMBefore.json index 3cf3162c0..cbd08da16 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGMBefore.json @@ -2,102 +2,140 @@ "callcallcodecallcode_011_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf2a3d3622932fbceeba665a47e9bfdbd5610bcde67cb98acb802a283ca706fa2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf2a3d3622932fbceeba665a47e9bfdbd5610bcde67cb98acb802a283ca706fa2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x56b30b7c2c95a4affe227d945def7919d5f05556848701eaf3ec095c413ae54a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc616036740ee42d9795fec7bf0180491d355ff07f1b5205a99bdb5a41cdf3f15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf2a3d3622932fbceeba665a47e9bfdbd5610bcde67cb98acb802a283ca706fa2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +145,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_SuicideEnd.json index e0e28336c..d5a4739a6 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_SuicideEnd.json @@ -2,102 +2,127 @@ "callcallcodecallcode_011_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5e789dd56f8f1de89beb0a5fb4e05f89698202dca811b25a8aa149165713699a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5e789dd56f8f1de89beb0a5fb4e05f89698202dca811b25a8aa149165713699a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0a836282c514c3f376236b757ba9929da905ea0cfca9a61d1419dc96f726da65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x25e77c53b764f5230036afaecf946cc5311e5244467f3bff2e6a42f479dd793e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5e789dd56f8f1de89beb0a5fb4e05f89698202dca811b25a8aa149165713699a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350f4600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +132,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_SuicideMiddle.json index bdda9266d..22dbcea93 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_SuicideMiddle.json @@ -2,102 +2,102 @@ "callcallcodecallcode_011_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_011_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0790915f009aad54c0077bb9142d9d262b9ae250515a4b382218b6aea2b14c18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0790915f009aad54c0077bb9142d9d262b9ae250515a4b382218b6aea2b14c18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6d21e47580c9b8a9622c64cf98eff46fb9dfa0a5228ae511acb6c0a5caacd2b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6b0e71c38986244674302f43b4e100b7b48c1e0fbf4da59aad11f4fe871295b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0790915f009aad54c0077bb9142d9d262b9ae250515a4b382218b6aea2b14c18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +107,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_ABCB_RECURSIVE.json index 94fde6522..b45f1ddba 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_ABCB_RECURSIVE.json @@ -2,95 +2,143 @@ "callcallcodecallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcallcodecallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0c68792192282aedd7ce980b75830b9582f44bc9b9ae24be9680320b70ad0f17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "25026070" } } - ], - "EIP158" : [ - { - "hash" : "0x0c68792192282aedd7ce980b75830b9582f44bc9b9ae24be9680320b70ad0f17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdfa4e08d9a120b6dcb2a14844ca8d00a154a9e588603e783b553fa3df063ddf7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf1918b697d3297f9bd7be6eaacae14630b9b1bf8a478e716dca790c54fc12355", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566204" } } - ], - "Metropolis" : [ - { - "hash" : "0x0c68792192282aedd7ce980b75830b9582f44bc9b9ae24be9680320b70ad0f17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568184" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +148,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecall_10.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecall_10.json index 72ede3f84..4069cd2f5 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecall_10.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecall_10.json @@ -2,95 +2,109 @@ "callcodecall_10" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecall_10Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0ff88770616fd51250d60cd6163dd123e42f58685a20fccca6b874f8d807e64c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x04" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0ff88770616fd51250d60cd6163dd123e42f58685a20fccca6b874f8d807e64c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb10034a1bbbfe4d21459c00db5fe2ded004f038b3557262885a31ccc2bf03147", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x14201ae7e42e0800fda4e5c8299db59f28b853db1a97a14e9bbd55e7a384164c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0ff88770616fd51250d60cd6163dd123e42f58685a20fccca6b874f8d807e64c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x05" : "0x02", + "0xe6" : "0x1000000000000000000000000000000000000000", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x04" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060027310000000000000000000000000000000000000026203d090f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025533600455346005553060e6553260e8553660ec553860ee553a60f055", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 5 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +114,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecall_10_OOGE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecall_10_OOGE.json index cc3e9877d..4dffc5f5d 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecall_10_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecall_10_OOGE.json @@ -2,95 +2,115 @@ "callcodecall_10_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecall_10_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x02c20b6694a45cddffc38dbbffb40819e3b3904784ed15acc5f7ce88582cc64e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x02c20b6694a45cddffc38dbbffb40819e3b3904784ed15acc5f7ce88582cc64e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8b06f4df4a83ee0b53f9c9a301bda642cb2116c60c170e88d1010627f97f5757", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe0609054e39ad070b2bbc6a650716b386d29944e883e30836b8a6f159f9cae2c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x02c20b6694a45cddffc38dbbffb40819e3b3904784ed15acc5f7ce88582cc64e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002614e34f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +120,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecall_10_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecall_10_SuicideEnd.json index 22ca531a0..e2e53aadf 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecall_10_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecall_10_SuicideEnd.json @@ -2,95 +2,98 @@ "callcodecall_10_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecall_10_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xae008399897a350a11206d6a3942bf642a274150a334c3769341974bd3867745", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xae008399897a350a11206d6a3942bf642a274150a334c3769341974bd3867745", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4ba1494e431b8bb9c88a83b4812c409a2c7b6a1e9816212d93ec1d1eb9efda43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8bed167b8eb08a83ca46c378c06f909749a11e9b073f4f82fe04fb3e27279dc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xae008399897a350a11206d6a3942bf642a274150a334c3769341974bd3867745", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +103,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100.json index b317c1e55..044cb9018 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100.json @@ -2,102 +2,130 @@ "callcodecallcall_100" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc7cf67a17215ed6eac0f53120c0afbd264489e23fe456fa88fd794e3dd620fbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00", + "0x06" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc7cf67a17215ed6eac0f53120c0afbd264489e23fe456fa88fd794e3dd620fbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd40df4466e98a878d279fee738896a4f8cffc30ff08e661ef60d0a0c31106c72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x55633632d687fcd5ab41330fa9d08a7166cd48b0b30fdc3bf8893ccb88a2f74c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc7cf67a17215ed6eac0f53120c0afbd264489e23fe456fa88fd794e3dd620fbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000000", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x06" : "0x02" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006001731000000000000000000000000000000000000002620493e0f260015533600555", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060027310000000000000000000000000000000000000036203d090f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346006553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 6 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +135,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGE.json index 011cf55e0..656e7a61e 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGE.json @@ -2,102 +2,138 @@ "callcodecallcall_100_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x102903e11c7d8ae08cfdfd314e0bc1e1e017fc8e303ef4588049ac220ca5a299", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x102903e11c7d8ae08cfdfd314e0bc1e1e017fc8e303ef4588049ac220ca5a299", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaf01a3e2e2e25e1244eb8d0d5e1dc18ed02d78f731edeab25b46af592ee1bc2d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x54071d8f0252fa16559dc95a4c754456cb9d1eb0add820917f37dd9f66c89c60", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x102903e11c7d8ae08cfdfd314e0bc1e1e017fc8e303ef4588049ac220ca5a299", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +143,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGMAfter.json index bdb7dacd4..5890a2cf0 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGMAfter.json @@ -2,102 +2,142 @@ "callcodecallcall_100_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xaf584519416197f347328bd8c334df83e892e6821fa77a6409e17acc7f07c875", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xaf584519416197f347328bd8c334df83e892e6821fa77a6409e17acc7f07c875", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb62569cbaffe068e783d4870d965fa783b0dd7d06bded6838715228457cb3262", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaae346ca92f96acc0d6b144e16bf1690ff1c32d06bf5e595f6f23f3366925abd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaf584519416197f347328bd8c334df83e892e6821fa77a6409e17acc7f07c875", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c95f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40085 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGMBefore.json index d3b5e063f..c681453b6 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGMBefore.json @@ -2,102 +2,140 @@ "callcodecallcall_100_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6bba427dc57b4ecc5fa6a2032174a78fcf32830d9499dde6523973886371b09f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6bba427dc57b4ecc5fa6a2032174a78fcf32830d9499dde6523973886371b09f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x842bf7ae887e7cb7dcfc2f6eabdd18646d8a2bda516f9fd562c19b6f56efa2db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcac5c264b70a1f8323b5d3e97d12c3d81d5c491b1e80ad650e3aa19fd56a4fc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6bba427dc57b4ecc5fa6a2032174a78fcf32830d9499dde6523973886371b09f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +145,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_SuicideEnd.json index dd2a851cb..ef772d5dd 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_SuicideEnd.json @@ -2,102 +2,131 @@ "callcodecallcall_100_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x23378211710a61d42023e52ac4f3ced5520424913d83e6b83d702458a33101cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x23378211710a61d42023e52ac4f3ced5520424913d83e6b83d702458a33101cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x947f9731043ecfbe5a5ec562e35fe42aceb1af3fbc527f294c376c2d3e7f0188", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4f8f62adf90225d39a8aafaa24a7572e9fa7a219da75698eb4b39f75dae23370", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x23378211710a61d42023e52ac4f3ced5520424913d83e6b83d702458a33101cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +136,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_SuicideMiddle.json index 5cb914ec0..423b86155 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_SuicideMiddle.json @@ -2,102 +2,115 @@ "callcodecallcall_100_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcall_100_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe106c85fe7fd2b684377a93616b1c91ca1a015c87fbf00eda6e829a9b298127b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe106c85fe7fd2b684377a93616b1c91ca1a015c87fbf00eda6e829a9b298127b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2f33596d5f44d27a283f42ab80573b0c0679a747956947fa95cc834b29568a6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xadb05591af22edf890ca98b2f7c75c5aa422db762452c7dee6bdd768d09451da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe106c85fe7fd2b684377a93616b1c91ca1a015c87fbf00eda6e829a9b298127b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +120,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_ABCB_RECURSIVE.json index 6f11302b6..8b1e000b1 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcall_ABCB_RECURSIVE.json @@ -2,95 +2,158 @@ "callcodecallcall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc71c3c72a86af0113389ac1e4a61aa898945cf5f7b9a025aea9bff4be67f860c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc71c3c72a86af0113389ac1e4a61aa898945cf5f7b9a025aea9bff4be67f860c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x47556352d5416f990a6a0220c889d05e2d2a0f54432db3f86ad4905f7b7d44d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4289ba2d0ff2046af6580fb4a5183083d6fd88ce3c29cabd91c288069176c028", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566207" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xc71c3c72a86af0113389ac1e4a61aa898945cf5f7b9a025aea9bff4be67f860c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568187" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +163,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101.json index a01ebf15b..696d783b2 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101.json @@ -2,102 +2,150 @@ "callcodecallcallcode_101" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfa8213e5be374f800e16897651e302474f1854eb3866ed981644222b3b1fe24a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00", + "0x06" : "0x00", + "0x07" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x06" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfa8213e5be374f800e16897651e302474f1854eb3866ed981644222b3b1fe24a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9ebae797a3e14cbe9fe7a3cd3a8e0c1812b80bc4474b7c70e1b85835771f83dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4cacaa96bfe003df5eb59210ce7a3faadb45dd45b6dae415b38ff0bf8be9e083", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfa8213e5be374f800e16897651e302474f1854eb3866ed981644222b3b1fe24a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000000", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x06" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x06" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006001731000000000000000000000000000000000000002620493e0f260015533600555", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALLCODE 300000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) (SSTORE 5 (CALLER)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000036203d090f460025533600655", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SSTORE 6 (CALLER)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +155,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGE.json index b12e4f73b..270abe900 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGE.json @@ -2,102 +2,138 @@ "callcodecallcallcode_101_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x715153239b646d65f629652a1019cd53344223e2ad15b413c6ea5cb0260dacf9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x715153239b646d65f629652a1019cd53344223e2ad15b413c6ea5cb0260dacf9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0aafff502c7a40bac1d3f97bc989a050deba280ecc16f1acdc4e7afc6771427c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9c5d980fe2ee46663a7faf368c6d135baff3d4fa78522b1b441fa19e95b08865", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x715153239b646d65f629652a1019cd53344223e2ad15b413c6ea5cb0260dacf9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +143,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGMAfter.json index f38860c3b..e1934ffaa 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGMAfter.json @@ -2,102 +2,189 @@ "callcodecallcallcode_101_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x72789093fd286d124a94068c11cb5189564e50490626464d2d3aab6ec7049aac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x72789093fd286d124a94068c11cb5189564e50490626464d2d3aab6ec7049aac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6d479eeebd4394d608e4c0773568b4b397afc1528e762283fe0e412f9dd4cd61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe992a79fb556b4ffabc16a460d25f8201d477ff4bccf72b91d505b74e5084069", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x72789093fd286d124a94068c11cb5189564e50490626464d2d3aab6ec7049aac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c95f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40085 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +194,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGMBefore.json index 2699feb6c..d9a81cea7 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGMBefore.json @@ -2,102 +2,136 @@ "callcodecallcallcode_101_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe041950fb990326f0a02309d3cdf8bed86696119d56846e181c26c63d97c9faf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe041950fb990326f0a02309d3cdf8bed86696119d56846e181c26c63d97c9faf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5092376083f685f0fc65d383505ae3611a277aaa5791285bbe39afd35bd03c73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3ae5302a42daf536aa38dba4b188cf302e997e07fbe10bc2576c28241f52d7d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe041950fb990326f0a02309d3cdf8bed86696119d56846e181c26c63d97c9faf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_SuicideEnd.json index c4c5dd8eb..365716c3b 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_SuicideEnd.json @@ -2,102 +2,129 @@ "callcodecallcallcode_101_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x35cb1045a24a1a4811760a686caec7d70e026c4a338b3b9e5f97f9f5514abf50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x35cb1045a24a1a4811760a686caec7d70e026c4a338b3b9e5f97f9f5514abf50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb61abe9090a96f92bcc332c452ed9534dd7603a6223e30be809cd394d112f044", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7677407312741db39826ebb72c352c0bf8becab1f0f82a5e21258891182f138b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x35cb1045a24a1a4811760a686caec7d70e026c4a338b3b9e5f97f9f5514abf50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350f4600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +134,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_SuicideMiddle.json index 62424290b..89c622010 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_SuicideMiddle.json @@ -2,102 +2,127 @@ "callcodecallcallcode_101_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_101_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe106c85fe7fd2b684377a93616b1c91ca1a015c87fbf00eda6e829a9b298127b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe106c85fe7fd2b684377a93616b1c91ca1a015c87fbf00eda6e829a9b298127b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2f33596d5f44d27a283f42ab80573b0c0679a747956947fa95cc834b29568a6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xadb05591af22edf890ca98b2f7c75c5aa422db762452c7dee6bdd768d09451da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe106c85fe7fd2b684377a93616b1c91ca1a015c87fbf00eda6e829a9b298127b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +132,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_ABCB_RECURSIVE.json index 7f0f5c537..19afeb8cc 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_ABCB_RECURSIVE.json @@ -2,95 +2,158 @@ "callcodecallcallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x22a796e402ab3a4bd59e562faa7a7568200221b1230b1d6f37945cbcdd4c5760", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x22a796e402ab3a4bd59e562faa7a7568200221b1230b1d6f37945cbcdd4c5760", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xda6f304b6e4c2e696db384657ccec735d83bdf3d202fe019b5b5bebd16446734", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8e577c9142bb10a14fce4064aee95b80c33d5226c92f99a4eea0c9d9451f0d92", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566204" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x22a796e402ab3a4bd59e562faa7a7568200221b1230b1d6f37945cbcdd4c5760", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568184" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +163,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11.json index 5d9605a8f..7b3de6dc3 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11.json @@ -2,95 +2,139 @@ "callcodecallcode_11" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6bb5dcba63963fbecffe9dc14d5fdeda6dc28890fc919a514288050eb3688cd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6bb5dcba63963fbecffe9dc14d5fdeda6dc28890fc919a514288050eb3688cd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd20f21ffe89418f85b8316c0e28945dfd51b90df8d7484e01c0ca7559ea786e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xad88e26cac530cf65bedbddc21bcd34c079dfb51c60cdb4584a522a154459f67", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6bb5dcba63963fbecffe9dc14d5fdeda6dc28890fc919a514288050eb3688cd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x04" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xe6" : "0x1000000000000000000000000000000000000000", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060007310000000000000000000000000000000000000026203d090f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025533600455346005553060e6553260e8553660ec553860ee553a60f055", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 5 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +144,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11_OOGE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11_OOGE.json index 54d05ad64..3eac9b76e 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11_OOGE.json @@ -2,95 +2,115 @@ "callcodecallcode_11_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0e28cf3f4db47f3b35650b9458b37fd2c6ef988619e9357c7aad99c2ca509bb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0e28cf3f4db47f3b35650b9458b37fd2c6ef988619e9357c7aad99c2ca509bb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x096698b31d54f0040cd099ba66b817a9f1ffc5a5bafa28ffa59a3d758923547a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcd71afecf18c68473965101df3bee68f05e811bc3cc85263f2e873db0bab603e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0e28cf3f4db47f3b35650b9458b37fd2c6ef988619e9357c7aad99c2ca509bb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002614e34f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +120,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11_SuicideEnd.json index 4e2214398..d5b29df50 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11_SuicideEnd.json @@ -2,95 +2,100 @@ "callcodecallcode_11_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcode_11_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf13d84f79216159b8c1952beb0241a3fddabeecd458a1575d751fe3b95c44218", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf13d84f79216159b8c1952beb0241a3fddabeecd458a1575d751fe3b95c44218", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe35649fa1eea660604dcabe69e77842e8a2f22da1dfdd6dea4c69d397b659a89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x703f353348a2430256b3810b8e11fcf46575186df153666c0e2da48ccb9bcb05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf13d84f79216159b8c1952beb0241a3fddabeecd458a1575d751fe3b95c44218", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000261c350f4600155731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +105,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110.json index 32315e37f..f6f8c9a21 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110.json @@ -2,102 +2,134 @@ "callcodecallcodecall_110" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1a0c0ff79c7f1f7f7e275740abb2a04be4a4e8bef522a96ddbb07591fbd04510", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x05" : "0x00", + "0x06" : "0x00", + "0x07" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1a0c0ff79c7f1f7f7e275740abb2a04be4a4e8bef522a96ddbb07591fbd04510", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6d41af64bb9fb98da3c6d35833bbcf39ac155bc24f40f1dea53744fc6ce32f6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x34bc5671ba91c86c180a49383698b999d1e1f479d30329efa94cfd0e35448d47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1a0c0ff79c7f1f7f7e275740abb2a04be4a4e8bef522a96ddbb07591fbd04510", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000000", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x06" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x07" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620493e0f460015533600555", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060017310000000000000000000000000000000000000036203d090f260025533600655", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 1 0 64 0 64 ) (SSTORE 6 (CALLER))}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +139,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGE.json index 79cc4cecd..59c8b7d26 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGE.json @@ -2,102 +2,138 @@ "callcodecallcodecall_110_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x942ff284bea2f09e71ed2cf10386123723970b326007af4100816600c6fd940b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x942ff284bea2f09e71ed2cf10386123723970b326007af4100816600c6fd940b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2179e2c822fec12f40fd3939cd1d1dde923e5463e69746602dbf007893158b57", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6259572a4af0cbe466630c38041328c0a204eb18fe9819bfe68b326266e6c375", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x942ff284bea2f09e71ed2cf10386123723970b326007af4100816600c6fd940b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +143,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGMAfter.json index 3ee30fa45..d885924b0 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGMAfter.json @@ -2,102 +2,186 @@ "callcodecallcodecall_110_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x19981474be0091e4bcf8c3ced4c9a2b9264ab6f76ccb3708560a5fa014f74677", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x19981474be0091e4bcf8c3ced4c9a2b9264ab6f76ccb3708560a5fa014f74677", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7f80cbb5991fa0786b95a163abe66f6ed0b4e9a59ea334c8b9c849dfd8578cb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9c301320a19121eac101086d4959324be54a0409be44ca96a9a6047bb76a74a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x19981474be0091e4bcf8c3ced4c9a2b9264ab6f76ccb3708560a5fa014f74677", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c95f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +191,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGMBefore.json index 76cc4cd69..9588f7fd8 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGMBefore.json @@ -2,102 +2,138 @@ "callcodecallcodecall_110_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x133ce682dd8a338a8cf768f9b504ff61b6434a4167414fdcca4be5cd24a8e54a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x133ce682dd8a338a8cf768f9b504ff61b6434a4167414fdcca4be5cd24a8e54a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb0998a3e9e4e118719757faba690a274adf1f0cf9f8a6e5533e6d11c0d1b27d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc6290af98244a3e14f3d37f222df9f51f92d8039f073830989f7fc9d8a889a29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x133ce682dd8a338a8cf768f9b504ff61b6434a4167414fdcca4be5cd24a8e54a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c94f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40084 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +143,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_SuicideEnd.json index ba8b10d6a..29c0db6e0 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_SuicideEnd.json @@ -2,102 +2,115 @@ "callcodecallcodecall_110_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe58fadd9d9e01b4d0f1c140f336f324ceb72d8982ac435f94cd4dcdafc9a058c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe58fadd9d9e01b4d0f1c140f336f324ceb72d8982ac435f94cd4dcdafc9a058c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1cfc452d676a580a2cc89ee8026c078aedf67e0d893b989372522c3b4c9ecea2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x45afb1510d512c686b1e61b529e2881c6457a32aaf9671bddd5b7476f6067c2f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe58fadd9d9e01b4d0f1c140f336f324ceb72d8982ac435f94cd4dcdafc9a058c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +120,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_SuicideMiddle.json index 704405f9e..f326cf231 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_SuicideMiddle.json @@ -2,102 +2,117 @@ "callcodecallcodecall_110_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_110_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0af21ebddea0328af1e15f809f5f6e3401af37ed2501075300bebe479b006d49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0af21ebddea0328af1e15f809f5f6e3401af37ed2501075300bebe479b006d49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x687ad44bee4e1068abc98c35dff3917fa0dc8ff8ccf85658cb69dbaa8e1b972d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7fda4cd60dc6ec236dd59307b889261919971ef3903191d463357779686d2eee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0af21ebddea0328af1e15f809f5f6e3401af37ed2501075300bebe479b006d49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +122,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_ABCB_RECURSIVE.json index ac33879c4..800f3ea39 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_ABCB_RECURSIVE.json @@ -2,95 +2,158 @@ "callcodecallcodecall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3bf4b5a1ec47523ada015f3fb3f5df83f08c7d4b6d4fd10a2caa59181b2c739d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x3bf4b5a1ec47523ada015f3fb3f5df83f08c7d4b6d4fd10a2caa59181b2c739d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0d23c7ca2e96fb608ab0650af3db13403b67f997a43078d6e411cfa944fc1db3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcb895ea3655a33ff3d5704b44e275f66152b105844eb4f4996fb2b590e683c08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566204" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x3bf4b5a1ec47523ada015f3fb3f5df83f08c7d4b6d4fd10a2caa59181b2c739d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568184" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +163,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111.json index 7b664d548..a2cd9f667 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111.json @@ -2,102 +2,120 @@ "callcodecallcodecallcode_111" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9ff3154dfe3d0c682720f4c835db942af1a2c55e25f61177f8ae49cdddd7f0ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9ff3154dfe3d0c682720f4c835db942af1a2c55e25f61177f8ae49cdddd7f0ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3c7c4a2c96e4a91fc49264d9bd842f882be122d42e4eb990c90a5f5f52750277", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x51f06fc9b202094c1778e51163b46bb39c104a49a88009ec1651ae1451cadf59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9ff3154dfe3d0c682720f4c835db942af1a2c55e25f61177f8ae49cdddd7f0ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000000", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620493e0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060007310000000000000000000000000000000000000036203d090f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +125,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGE.json index 160428511..d2a188407 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGE.json @@ -2,102 +2,138 @@ "callcodecallcodecallcode_111_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7f855d94b94b43220456d5492c6fb79531a820f6b83a2c24adfa3fd2d7676a1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7f855d94b94b43220456d5492c6fb79531a820f6b83a2c24adfa3fd2d7676a1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x267dd4b8573a2e7a012580cc949aa4972aad594a3c4a1cb193ea45d86bbe0cff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb1c13e1821d85f7aed07b1fb2883fd071f5c7b6d99766e40f7165d3b34e82969", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7f855d94b94b43220456d5492c6fb79531a820f6b83a2c24adfa3fd2d7676a1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619d3af4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40250 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +143,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGMAfter.json index 52f2325da..cd84bbd68 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGMAfter.json @@ -2,102 +2,142 @@ "callcodecallcodecallcode_111_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x711948edc65c8b7d199a7731e6054d7e07d06c083eb98c473d3cde0e85488e5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x711948edc65c8b7d199a7731e6054d7e07d06c083eb98c473d3cde0e85488e5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b024b21c2daf897cc6913b84049c8e13b8919bd596cb7041d771e8c44262849", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb53d71ec73b762655d97cbd7e1b208ae64409ae2cd3d38574dec49d07d20109f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x711948edc65c8b7d199a7731e6054d7e07d06c083eb98c473d3cde0e85488e5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaecf4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60140 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619ca4f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40100 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGMBefore.json index 3aad54612..de04710e8 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGMBefore.json @@ -2,102 +2,138 @@ "callcodecallcodecallcode_111_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb4dbea16de17b59147fa94280092aad3126e017f4a453a065186300d2448c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb4dbea16de17b59147fa94280092aad3126e017f4a453a065186300d2448c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4e3ad257e8d352958cea3ec50c3ffe9eb8864cec4cfccc5d9d5fae441c0a9977", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3f299a1af6b8063deb96c41f54078ebb5a5e2f78a5913b9d73c7e2c2f8755f38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb4dbea16de17b59147fa94280092aad3126e017f4a453a065186300d2448c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +143,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_SuicideEnd.json index f262432de..616c7a34a 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_SuicideEnd.json @@ -2,102 +2,123 @@ "callcodecallcodecallcode_111_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe76229fb92f8543f5c0e2c4d9469e0464988b089922ee520f260bb259f1f9c59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe76229fb92f8543f5c0e2c4d9469e0464988b089922ee520f260bb259f1f9c59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5e680aba2dfacfc5b1b323c8b133d44d7912b2a16515fc424d95fd0293872037", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x17f9ea5c8509ce2260e9f3f47eb17e0a4cb9308979170b4b4b9fe1f704a6d3d0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe76229fb92f8543f5c0e2c4d9469e0464988b089922ee520f260bb259f1f9c59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006001731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 1 0 64 0 64) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600273100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALLCODE 50000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +128,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_SuicideMiddle.json index bacd9e293..6882c8f33 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_SuicideMiddle.json @@ -2,102 +2,118 @@ "callcodecallcodecallcode_111_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_111_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0af21ebddea0328af1e15f809f5f6e3401af37ed2501075300bebe479b006d49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0af21ebddea0328af1e15f809f5f6e3401af37ed2501075300bebe479b006d49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x687ad44bee4e1068abc98c35dff3917fa0dc8ff8ccf85658cb69dbaa8e1b972d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7fda4cd60dc6ec236dd59307b889261919971ef3903191d463357779686d2eee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0af21ebddea0328af1e15f809f5f6e3401af37ed2501075300bebe479b006d49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +123,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_ABCB_RECURSIVE.json index 88b7811d9..b7337a73f 100644 --- a/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_ABCB_RECURSIVE.json @@ -2,95 +2,158 @@ "callcodecallcodecallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesCallCodeHomestead/callcodecallcodecallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7534562771847b5e3213d441c5b7eaf174fe4f238bf44b5893525f441e031284", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7534562771847b5e3213d441c5b7eaf174fe4f238bf44b5893525f441e031284", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0829e05ae238200ab794bf1978f724286bceaf1a947662cf408ac5c65421157d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8502b9c5e0f229cb9c9f5eeacc11b9f136428645edc6e0627ed08c0ab578ac6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566201" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x7534562771847b5e3213d441c5b7eaf174fe4f238bf44b5893525f441e031284", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568181" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +163,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001.json index f785e4e5d..e76d8e2c7 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001.json @@ -2,102 +2,146 @@ "callcallcallcode_001" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcallcode_001Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x63dfeb3cb97f29a805576560ec08d8eaa0d133bd4859f7f1cf364de2b2c7037d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x63dfeb3cb97f29a805576560ec08d8eaa0d133bd4859f7f1cf364de2b2c7037d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x860ac808616122716432c90339aa2e248a683cc679df6a42825d580e8b35fc42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7a7c1a2fb7f850d9a6f55163e3df2bfa597528531ac5f273dd65046f9c622860", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x63dfeb3cb97f29a805576560ec08d8eaa0d133bd4859f7f1cf364de2b2c7037d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000002", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000001", + "0x07" : "0x02" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620493e0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALL 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000036203d090f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +151,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGE.json index f00bd7a24..3eaba903a 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGE.json @@ -2,102 +2,136 @@ "callcallcallcode_001_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcallcode_001_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcdfaffc38d55a43ee4aa17de7c69fb5694ed6300099a8c7c8aff51ff803cb54c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xcdfaffc38d55a43ee4aa17de7c69fb5694ed6300099a8c7c8aff51ff803cb54c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x65150f78111098a7367f7c02b438ef2a3fc92fc318641e55acecce6db3f0be14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3ed5f4e9fca3f49c087360e52c64ec0773d93180e7e8c0d806687add21bbb4f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcdfaffc38d55a43ee4aa17de7c69fb5694ed6300099a8c7c8aff51ff803cb54c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGMAfter.json index 95f1d2f7d..4b3479b04 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGMAfter.json @@ -2,102 +2,146 @@ "callcallcallcode_001_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcallcode_001_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf8bdb1563d3bfa59ad72beb2da61a648e252f9a626690a34720b4a570c4c53a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf8bdb1563d3bfa59ad72beb2da61a648e252f9a626690a34720b4a570c4c53a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3d6bf725e57e6ea3481ed50a8f0338c92858bdf33c36fdb336b5d1b1d3fdb646", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x59d69179aa4aaa0694c84e6c803e6d9fb3932568a197083bb0b7ac9ba1f01559", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf8bdb1563d3bfa59ad72beb2da61a648e252f9a626690a34720b4a570c4c53a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c95f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40085 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +151,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGMBefore.json index 12a8177da..eab780d9c 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_OOGMBefore.json @@ -2,102 +2,140 @@ "callcallcallcode_001_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcallcode_001_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9fced33b7f3a5e0cda69c0a1f740e9b9ed19ac28ad3ab688987097295b789dae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9fced33b7f3a5e0cda69c0a1f740e9b9ed19ac28ad3ab688987097295b789dae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0ad5da491a6675898a0c114d18a8206f71478b5c24501a505ab13c8b18d98f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0ad5da491a6675898a0c114d18a8206f71478b5c24501a505ab13c8b18d98f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9fced33b7f3a5e0cda69c0a1f740e9b9ed19ac28ad3ab688987097295b789dae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +145,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_SuicideEnd.json index 04d4416cd..95819a89f 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_SuicideEnd.json @@ -2,102 +2,127 @@ "callcallcallcode_001_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcallcode_001_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1534f424be2db6a662c26563f80ede2d856bcb3624a889c345a1fab368228468", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1534f424be2db6a662c26563f80ede2d856bcb3624a889c345a1fab368228468", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfa77ad335655e22519b48bf6bd61d98695799e37c9cf6aa1023e442ae34642ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xab907abb189bf104eb0b057ce0e018fe2dc33179cfa437568008a4ada757b531", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1534f424be2db6a662c26563f80ede2d856bcb3624a889c345a1fab368228468", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350f4600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +132,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_SuicideMiddle.json index 1e023a0e6..1f784ab4c 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_001_SuicideMiddle.json @@ -2,102 +2,128 @@ "callcallcallcode_001_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcallcode_001_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd9620bfd8663f199f897de8e5ea7554639c40fb564940dfc8f0b2aa7a2a8a0e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd9620bfd8663f199f897de8e5ea7554639c40fb564940dfc8f0b2aa7a2a8a0e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x23f8f86852e3e4a2e279acb10d051dda77dcf6af0c37ce21c97d73ece5af9951", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x23f8f86852e3e4a2e279acb10d051dda77dcf6af0c37ce21c97d73ece5af9951", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd9620bfd8663f199f897de8e5ea7554639c40fb564940dfc8f0b2aa7a2a8a0e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +133,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_ABCB_RECURSIVE.json index db6b5bf95..b9bcc1829 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcallcode_ABCB_RECURSIVE.json @@ -2,95 +2,143 @@ "callcallcallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc27d05512a5a4b84992bf299fb5c834c28dd0333321530e29932f6277f68f7b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "1046140" } } - ], - "EIP158" : [ - { - "hash" : "0xc27d05512a5a4b84992bf299fb5c834c28dd0333321530e29932f6277f68f7b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5b5cfac5946c765d869e802b7482c191a8bf64151c7e1e08b673ca39e7ccfa22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x762c0d51eead52e52ba3d4f91f7d8171c0c4e7cd790646efc3c1b4d211f26bbc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566207" } } - ], - "Metropolis" : [ - { - "hash" : "0xc27d05512a5a4b84992bf299fb5c834c28dd0333321530e29932f6277f68f7b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568187" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +148,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcode_01.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcode_01.json index b49213802..beac7c1dc 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcode_01.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcode_01.json @@ -2,95 +2,115 @@ "callcallcode_01" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcode_01Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa819526ad66ad27126ecd20211deb2601c3991b8e71f024fe082e51e0160b817", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x04" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa819526ad66ad27126ecd20211deb2601c3991b8e71f024fe082e51e0160b817", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa1a1911a4eb684586df9ee38788a160da83fd60a17486bbc0f89de47c887b685", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa18dc967dd0b754fdd8563704ba3296e2e292861372d7a5fd37d792408b3bf9d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa819526ad66ad27126ecd20211deb2601c3991b8e71f024fe082e51e0160b817", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01", + "0xe6" : "0x1000000000000000000000000000000000000001", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x04" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060007310000000000000000000000000000000000000026203d090f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025533600455346007553060e6553260e8553660ec553860ee553a60f055", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +120,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcode_01_OOGE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcode_01_OOGE.json index 8c21e92aa..e999e8b8f 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcode_01_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcode_01_OOGE.json @@ -2,95 +2,105 @@ "callcallcode_01_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcode_01_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf735212b3c05f40a30e49ec6644be56edadc3ca8300405191de66713b1a0a848", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf735212b3c05f40a30e49ec6644be56edadc3ca8300405191de66713b1a0a848", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x58bd8e5e0a2a10343a8aa198fcd4081e5baf2accea54fb6146da1589001dbda0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2d785a5d6ef979e0832d69550bb76d87c26b11e77452955175166f5508ce44de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf735212b3c05f40a30e49ec6644be56edadc3ca8300405191de66713b1a0a848", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002614e34f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +110,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcode_01_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcode_01_SuicideEnd.json index 4584015eb..bc6df0e8b 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcode_01_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcode_01_SuicideEnd.json @@ -2,95 +2,112 @@ "callcallcode_01_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcode_01_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6f58a4741fbda67c55a345c1078f702db8e99193f6818b1c34f68dc235c4697e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6f58a4741fbda67c55a345c1078f702db8e99193f6818b1c34f68dc235c4697e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf95ab7327f9830d8a680b832843fd9244398f0684e5f53b2b13f381d61465796", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9751e0f615a165be9d65bb11c5ca914053231f0657f182ae2c88dd71887b0292", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6f58a4741fbda67c55a345c1078f702db8e99193f6818b1c34f68dc235c4697e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000261c350f4600155731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +117,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010.json index b8c819f0c..0dc495924 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010.json @@ -2,102 +2,136 @@ "callcallcodecall_010" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecall_010Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x61f5de6f4a1d6c6a89bf557acc31ef7a4102a2b4eb68f9e9742f9d262976f40d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x61f5de6f4a1d6c6a89bf557acc31ef7a4102a2b4eb68f9e9742f9d262976f40d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x18da459a32ad5fe5d2d669798bb12ea8e83a4313420c8c03acbbb0785ad078d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1c44ef0912070c41f6911fc66e94c69d470c262788d10a7293db822da61e2e5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x61f5de6f4a1d6c6a89bf557acc31ef7a4102a2b4eb68f9e9742f9d262976f40d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x05" : "0x1000000000000000000000000000000000000000" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000001", + "0x07" : "0x02" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620493e0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060027310000000000000000000000000000000000000036203d090f160025533600555", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALL 250000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGE.json index 38956424c..dec19dab5 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGE.json @@ -2,102 +2,136 @@ "callcallcodecall_010_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecall_010_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x10853b1a73cad5f5a81e21460d352517ccb9fd4a87b71974a9757418a20c5d5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x10853b1a73cad5f5a81e21460d352517ccb9fd4a87b71974a9757418a20c5d5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x39075ac2b96734a2f5a36896563ec63ad13a2e0b3177634bc4e88e067a268caf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9f039f39d7db381048d2c7f421ba3dcbbccd3c5c9ec14545142cb189f2f3a699", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x10853b1a73cad5f5a81e21460d352517ccb9fd4a87b71974a9757418a20c5d5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGMAfter.json index 51e7d8cd5..4c5574589 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGMAfter.json @@ -2,102 +2,142 @@ "callcallcodecall_010_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecall_010_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x25eb00ab4fb36d94c41162afd9e87daf94cc10f2ccc7bd6c3b8199092996c0fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x25eb00ab4fb36d94c41162afd9e87daf94cc10f2ccc7bd6c3b8199092996c0fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x60c4f8cfe444a136e9b4bd6dc4619484fbabe8dea905ee61b243f8e2568f9b42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x60c4f8cfe444a136e9b4bd6dc4619484fbabe8dea905ee61b243f8e2568f9b42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x25eb00ab4fb36d94c41162afd9e87daf94cc10f2ccc7bd6c3b8199092996c0fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e48f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20040 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGMBefore.json index 18c48a39d..f0697bb8b 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_OOGMBefore.json @@ -2,102 +2,140 @@ "callcallcodecall_010_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecall_010_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x52834244609f998d9947ae2b1835e3c9ea06b00e0d9305b4d23270ac898b40b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x52834244609f998d9947ae2b1835e3c9ea06b00e0d9305b4d23270ac898b40b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x08d2ffd31983c5a8cc055ee62f802c0b6108a0d6788aba50a13af6fd421df914", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7fd4f5d1ebcdc93d418e041de75384830ef611cf282bc351966f8857f70f81b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x52834244609f998d9947ae2b1835e3c9ea06b00e0d9305b4d23270ac898b40b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +145,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_SuicideEnd.json index fc4e92cb7..eb22bc82b 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_SuicideEnd.json @@ -2,102 +2,117 @@ "callcallcodecall_010_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecall_010_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5d36e3deca887b7e689729a6ac5defd43e1f3090a438db45ecf1ad9931be0baa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5d36e3deca887b7e689729a6ac5defd43e1f3090a438db45ecf1ad9931be0baa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe06200e6ce7ae99be8a4d0b6df78b1d148674a285b87feb917793dfb11f816a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x888b18fb69500436a74fa0ebc90624960521700689f7831030741c7c9794986c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5d36e3deca887b7e689729a6ac5defd43e1f3090a438db45ecf1ad9931be0baa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +122,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_SuicideMiddle.json index 7f35dd8f2..49be933df 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_010_SuicideMiddle.json @@ -2,102 +2,119 @@ "callcallcodecall_010_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecall_010_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xef2ded777fb69c06cd9f42c413a1e48b2503667cb7165bf8848c975ae4131b68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xef2ded777fb69c06cd9f42c413a1e48b2503667cb7165bf8848c975ae4131b68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0288af047e1bb7b1e1ea10edda37040684b22b05a1e3e38291537beab4d31ac6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc776b132e512dfb5464a47a06edaa49676a72cc3d707ee365ace6843f57a4609", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xef2ded777fb69c06cd9f42c413a1e48b2503667cb7165bf8848c975ae4131b68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +124,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_ABCB_RECURSIVE.json index 8edaa2f44..dd2a7e124 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecall_ABCB_RECURSIVE.json @@ -2,95 +2,143 @@ "callcallcodecall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe603e736b2478aff19fe9c113e4fdca7d5ed961015b595e5489a963c449ec96d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "25026070" } } - ], - "EIP158" : [ - { - "hash" : "0xe603e736b2478aff19fe9c113e4fdca7d5ed961015b595e5489a963c449ec96d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbdb6c983fad4693b8f9ef27f7a91bedeb33020ee10a4419de32280cda60d2308", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb33718f9ef9b057d00eeb35b94c5998bf59c8faa3cc0343b732a7d037e8e3e11", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566207" } } - ], - "Metropolis" : [ - { - "hash" : "0xe603e736b2478aff19fe9c113e4fdca7d5ed961015b595e5489a963c449ec96d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568187" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +148,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011.json index e870f570f..66e99bf4f 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011.json @@ -2,102 +2,120 @@ "callcallcodecallcode_011" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecallcode_011Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x85c03d931c3f5077955845ef94d8f4adeeb04d0a0ebc4e8323cb9ef8891a600a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x85c03d931c3f5077955845ef94d8f4adeeb04d0a0ebc4e8323cb9ef8891a600a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xba6ef1b69820a7ad8995c4e63c6041d9cb7e757ef25aac97394ad02388f04bd4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x13ca8e995f548f339ea686f3e5915454936c78c06a32637f9b19c30afab93cd2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x85c03d931c3f5077955845ef94d8f4adeeb04d0a0ebc4e8323cb9ef8891a600a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000001", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620493e0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000036203d090f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +125,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGE.json index 2b8550448..4775d4411 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGE.json @@ -2,102 +2,136 @@ "callcallcodecallcode_011_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1ea792061c27067d2bdce78e7d8ff18758c568268300832bf393a7626eedf4a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1ea792061c27067d2bdce78e7d8ff18758c568268300832bf393a7626eedf4a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3a2c894b5ff321d4aded923d0bf5c001e32bcb59a14573dace4e62a3a0adac84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7927f6a33fbcf1038594c4e4c2ebf251ad384f96d9a415264f5ad8a8addea455", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1ea792061c27067d2bdce78e7d8ff18758c568268300832bf393a7626eedf4a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGMAfter.json index fb174f7d6..58f781f76 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGMAfter.json @@ -2,102 +2,142 @@ "callcallcodecallcode_011_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdd118bf6242fb4b338d4e7296394fd9b163a073146a4dea27799249382b2ccb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdd118bf6242fb4b338d4e7296394fd9b163a073146a4dea27799249382b2ccb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x953f39215417f53317d23e5a28ff959337d00e9f1507b5c1617499d6b518613f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x953f39215417f53317d23e5a28ff959337d00e9f1507b5c1617499d6b518613f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdd118bf6242fb4b338d4e7296394fd9b163a073146a4dea27799249382b2ccb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaecf1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60140 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGMBefore.json index 087b9f470..3860698a8 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGMBefore.json @@ -2,102 +2,140 @@ "callcallcodecallcode_011_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecallcode_011_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6af01ac747656fe7a05d5a259f623988075b9d891259fe5d786599d38abc8726", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6af01ac747656fe7a05d5a259f623988075b9d891259fe5d786599d38abc8726", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb6c7b0f5226add8fd9ed68a88fdb017f600c3d2ee4458e34f72056d0f5b41cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3f1c7273386c298f5392261a497d7556caa3329f90f938005f9ea59f2a9dfcc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6af01ac747656fe7a05d5a259f623988075b9d891259fe5d786599d38abc8726", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +145,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_SuicideEnd.json index 9ad333a4a..ce08e5281 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_SuicideEnd.json @@ -2,102 +2,125 @@ "callcallcodecallcode_011_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecallcode_011_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0145b68510b90b05b3b63a6697919fdfd9b241a631b51dfd6667896ee28bac67", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0145b68510b90b05b3b63a6697919fdfd9b241a631b51dfd6667896ee28bac67", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8078b41dcef7f0ca4654ea4612274e0307ee6b78224aa1c2d4ab002956304281", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf2b42a2ee391f7845a214c1f2a6c77ccfacdef2cb8eb81407a4c52ca75d897c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0145b68510b90b05b3b63a6697919fdfd9b241a631b51dfd6667896ee28bac67", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350f4600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +130,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_SuicideMiddle.json index 6a84e1196..2a07bbd65 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_011_SuicideMiddle.json @@ -2,102 +2,102 @@ "callcallcodecallcode_011_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecallcode_011_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xef2ded777fb69c06cd9f42c413a1e48b2503667cb7165bf8848c975ae4131b68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xef2ded777fb69c06cd9f42c413a1e48b2503667cb7165bf8848c975ae4131b68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0288af047e1bb7b1e1ea10edda37040684b22b05a1e3e38291537beab4d31ac6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc776b132e512dfb5464a47a06edaa49676a72cc3d707ee365ace6843f57a4609", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xef2ded777fb69c06cd9f42c413a1e48b2503667cb7165bf8848c975ae4131b68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +107,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_ABCB_RECURSIVE.json index 18406c50a..7196300a8 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcallcodecallcode_ABCB_RECURSIVE.json @@ -2,95 +2,143 @@ "callcallcodecallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcallcodecallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1bdb315f1b62639188fb3c2c654d43b6364dd8320f2d2f782537ae1d75b69f3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "25026070" } } - ], - "EIP158" : [ - { - "hash" : "0x1bdb315f1b62639188fb3c2c654d43b6364dd8320f2d2f782537ae1d75b69f3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x553dc493aee58271db97e8548de28ce210118dcc2ea5cb0e8817e11692843c91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x71190006f0b807a2903a9eeef286858dde45dc9601578f3cd4d16c2f1d468e48", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566204" } } - ], - "Metropolis" : [ - { - "hash" : "0x1bdb315f1b62639188fb3c2c654d43b6364dd8320f2d2f782537ae1d75b69f3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568184" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 25000000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +148,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecall_10.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecall_10.json index 7fcd1ba11..70be2e7be 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecall_10.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecall_10.json @@ -2,95 +2,105 @@ "callcodecall_10" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecall_10Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdc6bb994c348a1f1b201d7f9cc73d05fa388c874bdb660a622fdd97e69beeaf9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdc6bb994c348a1f1b201d7f9cc73d05fa388c874bdb660a622fdd97e69beeaf9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x42ebad2ea8c83e4e7487ee8fbd8596a659787db7e254e4b6b19b297102e3a9f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x11e907470a071cc8ed741079998b534218bcf64bf8eaff0bf30e75e08c475e9c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdc6bb994c348a1f1b201d7f9cc73d05fa388c874bdb660a622fdd97e69beeaf9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01", + "0xe6" : "0x1000000000000000000000000000000000000002", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060017310000000000000000000000000000000000000026203d090f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALL 250000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025533600455346007553060e6553260e8553660ec553860ee553a60f055", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +110,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecall_10_OOGE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecall_10_OOGE.json index 55aa87d98..cf95b4798 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecall_10_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecall_10_OOGE.json @@ -2,95 +2,113 @@ "callcodecall_10_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecall_10_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd8dab02b1b06bb27af0e543afb99418fe7fd649ef4427dfc455c7d3a47cd5d63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd8dab02b1b06bb27af0e543afb99418fe7fd649ef4427dfc455c7d3a47cd5d63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x27f21273e3c30026be11401fea844845410f6c5ee717ddb6ff72763bf472c10b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x959160347b671918c4a4ec0c9eaea0928221bd063b775a32b215b3f2077ff4e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd8dab02b1b06bb27af0e543afb99418fe7fd649ef4427dfc455c7d3a47cd5d63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002614e34f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 20020 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +118,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecall_10_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecall_10_SuicideEnd.json index fba1ed421..108aa6105 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecall_10_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecall_10_SuicideEnd.json @@ -2,95 +2,98 @@ "callcodecall_10_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecall_10_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x009814dfa849443dad38895eed5ea659402323c415d6300a1a17d61fa461bf0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x009814dfa849443dad38895eed5ea659402323c415d6300a1a17d61fa461bf0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x862825790db9c97d965a56199cf335583d15f15eb79714d664f6a38b5c0823f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4ecbb5c54ea61600a16049c95caea71f3542b2bf48f9260cb8d5526b34eb32c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x009814dfa849443dad38895eed5ea659402323c415d6300a1a17d61fa461bf0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +103,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100.json index c398020bc..c5172a231 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100.json @@ -2,102 +2,124 @@ "callcodecallcall_100" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcall_100Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdac6f0f3c94347378cae2101d22b87b2c34cc88bfd84082aa8efe16dc3d24a20", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdac6f0f3c94347378cae2101d22b87b2c34cc88bfd84082aa8efe16dc3d24a20", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7bdd25aff444fec6b4e24b7cb10ed1fbc8d8de8bfdafdc291fcf860cf790ff9e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x91e03f033209ebaab3452c315004575c99c8344298b060aaa02b0573b3658dd4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdac6f0f3c94347378cae2101d22b87b2c34cc88bfd84082aa8efe16dc3d24a20", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000002", + "0x07" : "0x02" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006001731000000000000000000000000000000000000002620493e0f160015533600555", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALL 300000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060027310000000000000000000000000000000000000036203d090f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALL 250000 0x1000000000000000000000000000000000000003 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +129,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGE.json index e83244d2c..cd5a62cbc 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGE.json @@ -2,102 +2,138 @@ "callcodecallcall_100_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcall_100_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x47eabe756b689cbc9059a8887d3e68374f01efb1fa7ede6230a3b02d4387a25d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x47eabe756b689cbc9059a8887d3e68374f01efb1fa7ede6230a3b02d4387a25d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5ce9fac023698c5e84f821f8f29391aae92d8d9b09c2463e2407e508e41a814a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf96c63546af60b45af65062e78d27662a4a5d16a8474de15d2177a37c0a5543c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x47eabe756b689cbc9059a8887d3e68374f01efb1fa7ede6230a3b02d4387a25d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +143,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGMAfter.json index ddbe3fe70..931a755ee 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGMAfter.json @@ -2,102 +2,142 @@ "callcodecallcall_100_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcall_100_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa50cb0d18f5a8f36f9db0aa1bdf1c77f149dd4e941b7d4cc5e5710a78f3f0b56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa50cb0d18f5a8f36f9db0aa1bdf1c77f149dd4e941b7d4cc5e5710a78f3f0b56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x46dd20e8074230b6e3dc9d29cea3d5b5aeabc6032c31d751130053cb15cb917f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd6eff2dc4e89f3ba043d1c75f6e19070f941a1c617f3d4a81c2d22faf2c8f395", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa50cb0d18f5a8f36f9db0aa1bdf1c77f149dd4e941b7d4cc5e5710a78f3f0b56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGMBefore.json index 0eec0df5b..e19fb1883 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_OOGMBefore.json @@ -2,102 +2,140 @@ "callcodecallcall_100_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcall_100_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1f16f1d619b0ae40d7567b36ecd3e40120ec827138d95448fb3ab70ae09d7750", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1f16f1d619b0ae40d7567b36ecd3e40120ec827138d95448fb3ab70ae09d7750", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x73cabd721338079ff25a73d252530a8273e3017f76fb88926d56d9f71788a52a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x38a2f97a93932ee353182a749b8ced8f720ce2f956bfd94031374a8d0c1e0220", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1f16f1d619b0ae40d7567b36ecd3e40120ec827138d95448fb3ab70ae09d7750", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +145,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_SuicideEnd.json index 5cc775677..b598c73e9 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_SuicideEnd.json @@ -2,102 +2,129 @@ "callcodecallcall_100_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcall_100_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x18f41d43d843148837b34e206d699dd98a617ca5fe9c1b16338e92dff9e070ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x18f41d43d843148837b34e206d699dd98a617ca5fe9c1b16338e92dff9e070ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd2700cb3cd66c3ec7d542e3fe0319012fa4426b30b5b3f657eb8df5d92f02041", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xae1b1c8768f8cbc5827e1fdaa4ea5e037b2d48aac3594cf9854ab34800e10d13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x18f41d43d843148837b34e206d699dd98a617ca5fe9c1b16338e92dff9e070ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +134,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_SuicideMiddle.json index 817e1cac4..717992e00 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_100_SuicideMiddle.json @@ -2,102 +2,117 @@ "callcodecallcall_100_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcall_100_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3601e32b0855ed38b9679700d83cac7cb09832d0635631cc03bc32d47062ac6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x3601e32b0855ed38b9679700d83cac7cb09832d0635631cc03bc32d47062ac6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x612498d13bc5820996076cadd7ab7bfae2710fce59fc1873bbb64d3d0bf6cb81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x29414a1701f21d34113676a009ddb109b3e79dcf9fd26dbfe7e16e04f4d805f6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3601e32b0855ed38b9679700d83cac7cb09832d0635631cc03bc32d47062ac6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +122,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_ABCB_RECURSIVE.json index 1bf2f60fa..7d973204c 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcall_ABCB_RECURSIVE.json @@ -2,95 +2,158 @@ "callcodecallcall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0e7650f4ce186b6f5ecc28b7100df3cf692cdcddde128d71f53fa9a1f333a14d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0e7650f4ce186b6f5ecc28b7100df3cf692cdcddde128d71f53fa9a1f333a14d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf089a77cbe8f12bc917714a45976827bf35f24d096e2c9e605b8f506b3ada038", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x56ef374913f7efb50d7859ed06448c08638560f881b3ed2a6ee8de4688aa1850", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566207" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x0e7650f4ce186b6f5ecc28b7100df3cf692cdcddde128d71f53fa9a1f333a14d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568187" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +163,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101.json index c66d3bf55..7d6411ad2 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101.json @@ -2,102 +2,142 @@ "callcodecallcallcode_101" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcallcode_101Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x84e0417a096444285414996a7385278ecd74564c3e24043887a25c1e4371d9e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x05" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x06" : "0x00", + "0x07" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x84e0417a096444285414996a7385278ecd74564c3e24043887a25c1e4371d9e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcbac6874f08a763e0b27e00000eb33fbc51796ed88b51d479251dac7dd3546f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0061db75543976053f51e37e6fa1b6b80bc2e4ad282986ed5831aa87cb731bac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x84e0417a096444285414996a7385278ecd74564c3e24043887a25c1e4371d9e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000002", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x06" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006001731000000000000000000000000000000000000002620493e0f160015533600555", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALL 300000 0x1000000000000000000000000000000000000002 1 0 64 0 64 ) (SSTORE 5 (CALLER)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000036203d090f460025533600655", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SSTORE 6 (CALLER)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGE.json index 6e1356e30..297184646 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGE.json @@ -2,102 +2,138 @@ "callcodecallcallcode_101_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8262d21dc9c0f751d67237db7159ebf3ccd07c77fc6c92fe7d9365027ae0e473", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8262d21dc9c0f751d67237db7159ebf3ccd07c77fc6c92fe7d9365027ae0e473", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x635e3a5e0295f9e3c6b0f80a4592bcdf06f4bde9650cd0841fbddc4ea72145f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2bbdcae6cdff17f4116267db2a308ad9d94736aabd402683a6c2d37d61401a5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8262d21dc9c0f751d67237db7159ebf3ccd07c77fc6c92fe7d9365027ae0e473", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +143,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGMAfter.json index d900d809c..2f8b52b3a 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGMAfter.json @@ -2,102 +2,142 @@ "callcodecallcallcode_101_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x58639a1a71f4da2f6795c2a3c4dbcac89c34e9b9aeebd669d1f5868615a93208", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x58639a1a71f4da2f6795c2a3c4dbcac89c34e9b9aeebd669d1f5868615a93208", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x32d1c8975997225104e8de7199b9e8ce62ba0565858d7061c949cb14f2acf6d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x84f98a6f88dfc72446020065f3e1b40263570f9ab2fa17d80a47a1c5594d9bfe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x58639a1a71f4da2f6795c2a3c4dbcac89c34e9b9aeebd669d1f5868615a93208", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGMBefore.json index b6fce8c91..cc5a1593e 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGMBefore.json @@ -2,102 +2,140 @@ "callcodecallcallcode_101_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcallcode_101_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf868bf241e2af9337a419243cde48f8cb37c75ffda08fc6c0200bd1d0505bbe8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf868bf241e2af9337a419243cde48f8cb37c75ffda08fc6c0200bd1d0505bbe8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2f81f1b963019fd02ddd56ed06b52c33fa843cb58aa1adbd646c8d2f7bcb7106", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd1bafc562d19ab61bbc395f6d0deb46a112d47b3db101028534a742991d2d6c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf868bf241e2af9337a419243cde48f8cb37c75ffda08fc6c0200bd1d0505bbe8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +145,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_SuicideEnd.json index 6843acb0c..a6873628f 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_SuicideEnd.json @@ -2,102 +2,133 @@ "callcodecallcallcode_101_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcallcode_101_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x19842c2b19c4fb203040249b06332db65c99268f3ddc7d6e82f38e454748b8ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x19842c2b19c4fb203040249b06332db65c99268f3ddc7d6e82f38e454748b8ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6dd3a887a94b67aeac2d7110f726391116b73ebcef975ff479cbdd3d539cb85d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x92f876a0a5e43612fdbe68b794440c67036d453c82b4aac3c34a05638c310b29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x19842c2b19c4fb203040249b06332db65c99268f3ddc7d6e82f38e454748b8ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350f4600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +138,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_SuicideMiddle.json index b8ff3a2ca..03abfa600 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_101_SuicideMiddle.json @@ -2,102 +2,117 @@ "callcodecallcallcode_101_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcallcode_101_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3601e32b0855ed38b9679700d83cac7cb09832d0635631cc03bc32d47062ac6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x3601e32b0855ed38b9679700d83cac7cb09832d0635631cc03bc32d47062ac6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x612498d13bc5820996076cadd7ab7bfae2710fce59fc1873bbb64d3d0bf6cb81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x29414a1701f21d34113676a009ddb109b3e79dcf9fd26dbfe7e16e04f4d805f6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3601e32b0855ed38b9679700d83cac7cb09832d0635631cc03bc32d47062ac6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000010000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +122,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_ABCB_RECURSIVE.json index f557253b5..51ac1f053 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcallcode_ABCB_RECURSIVE.json @@ -2,95 +2,158 @@ "callcodecallcallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x71c439b813cdc088f1b111212d1862f9ded98e3a0b46a6c1b1d0b83e8a174f65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x71c439b813cdc088f1b111212d1862f9ded98e3a0b46a6c1b1d0b83e8a174f65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0df655acb97fbdd90d4031457df1361b1229dd1ba9a8b911d542940cfea2c50f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x853de8403a99df851fad888e421c9f6273207ce44812b729eca18df1ecb7a6f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566204" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x71c439b813cdc088f1b111212d1862f9ded98e3a0b46a6c1b1d0b83e8a174f65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568184" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (CALL 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +163,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcode_11.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcode_11.json index 933a5923d..c25af20cc 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcode_11.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcode_11.json @@ -2,95 +2,135 @@ "callcodecallcode_11" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcode_11Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa9c2c4521a7cbcb04884cfe7b256c01f603fc0717b414db3d144aba1b4d08c38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa9c2c4521a7cbcb04884cfe7b256c01f603fc0717b414db3d144aba1b4d08c38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x73b4d10c1d600113d411bc5cec3f3df067d296a1fb38fe8f30bca653efd05344", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5ca41b785c1d76fe896c544593e65d994af17f27e036a040cf4b5564e446c38c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa9c2c4521a7cbcb04884cfe7b256c01f603fc0717b414db3d144aba1b4d08c38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x04" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xe6" : "0x1000000000000000000000000000000000000000", + "0xe8" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0xec" : "0x40", + "0xee" : "0x21", + "0xf0" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x04" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060007310000000000000000000000000000000000000026203d090f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025533600455346007553060e6553260e8553660ec553860ee553a60f055", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +140,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcode_11_OOGE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcode_11_OOGE.json index 2518dc8d3..e0ba91bd5 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcode_11_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcode_11_OOGE.json @@ -2,95 +2,115 @@ "callcodecallcode_11_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcode_11_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0e28cf3f4db47f3b35650b9458b37fd2c6ef988619e9357c7aad99c2ca509bb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0e28cf3f4db47f3b35650b9458b37fd2c6ef988619e9357c7aad99c2ca509bb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x096698b31d54f0040cd099ba66b817a9f1ffc5a5bafa28ffa59a3d758923547a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcd71afecf18c68473965101df3bee68f05e811bc3cc85263f2e873db0bab603e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0e28cf3f4db47f3b35650b9458b37fd2c6ef988619e9357c7aad99c2ca509bb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002614e34f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +120,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcode_11_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcode_11_SuicideEnd.json index d4fdfd893..2e9bc0d06 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcode_11_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcode_11_SuicideEnd.json @@ -2,95 +2,100 @@ "callcodecallcode_11_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcode_11_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf13d84f79216159b8c1952beb0241a3fddabeecd458a1575d751fe3b95c44218", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf13d84f79216159b8c1952beb0241a3fddabeecd458a1575d751fe3b95c44218", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe35649fa1eea660604dcabe69e77842e8a2f22da1dfdd6dea4c69d397b659a89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x703f353348a2430256b3810b8e11fcf46575186df153666c0e2da48ccb9bcb05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf13d84f79216159b8c1952beb0241a3fddabeecd458a1575d751fe3b95c44218", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000261c350f4600155731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +105,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110.json index 44664e762..e51c9cb47 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110.json @@ -2,102 +2,130 @@ "callcodecallcodecall_110" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecall_110Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc0f335bb1b78fc64d0db454d07518af0f87027e14c85372181c2c85612cbcca8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x05" : "0x00", + "0x06" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc0f335bb1b78fc64d0db454d07518af0f87027e14c85372181c2c85612cbcca8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xacadae7fe7e428799359cf9a0006ed57b20e2e232be44f7818c1398aeaa63cda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x164de5a4a5debc40231b22c380a1e787402abe0f72d34c02a685a6939f9c53e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc0f335bb1b78fc64d0db454d07518af0f87027e14c85372181c2c85612cbcca8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x06" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x1000000000000000000000000000000000000003", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x03" : "0x01", + "0x04" : "0x1000000000000000000000000000000000000000", + "0x07" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620493e0f460015533600555", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 5 (CALLER))}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060017310000000000000000000000000000000000000036203d090f160025533600655", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALL 250000 0x1000000000000000000000000000000000000003 1 0 64 0 64 ) (SSTORE 6 (CALLER))}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +135,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGE.json index 37ec5d2ad..258f45e4f 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGE.json @@ -2,102 +2,140 @@ "callcodecallcodecall_110_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf13e18d94988480e465c7f5ee1b4261b945fbffc27854fff1207a4f00342ed7c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf13e18d94988480e465c7f5ee1b4261b945fbffc27854fff1207a4f00342ed7c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfa54b7fd7af78f7da9b95d81f5f9e0ac9ff3324964422f740473c13e8677f646", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x21e5930ebfd524403afa629e910aa6d34dcbce2c97fe20fa2ca6f3e4ed895ee8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf13e18d94988480e465c7f5ee1b4261b945fbffc27854fff1207a4f00342ed7c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +145,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGMAfter.json index 6a30a5f24..e5d2f9038 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGMAfter.json @@ -2,102 +2,142 @@ "callcodecallcodecall_110_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x62010bbb8d95a6c25afbaa0ede857cd283cac73a00a420261a3ec0169a5bd5b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x62010bbb8d95a6c25afbaa0ede857cd283cac73a00a420261a3ec0169a5bd5b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x138c60f195439626897fb8dadf9cfe47c646ad81c58e574189074f237c6ae056", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xad940b40dea79c3e416dae92a5713a44612a519ad5dc4e9d71268c0155fc847c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x62010bbb8d95a6c25afbaa0ede857cd283cac73a00a420261a3ec0169a5bd5b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGMBefore.json index 285eaa45c..d096754dc 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGMBefore.json @@ -2,102 +2,140 @@ "callcodecallcodecall_110_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecall_110_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb725b12b3fc3f862ba15daec86fe94f444d651fb98a9215dc2143954cf855e86", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb725b12b3fc3f862ba15daec86fe94f444d651fb98a9215dc2143954cf855e86", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4625fecbe8d5a034506c096cc90e2d97d271a5f9f0a11d278026c53c74b96d19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbda9eb076173298a99c962e931e0711d1c30250732311f2d5066d9ee46bedb22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb725b12b3fc3f862ba15daec86fe94f444d651fb98a9215dc2143954cf855e86", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +145,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_SuicideEnd.json index 298a2c5e9..3126cbc4b 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_SuicideEnd.json @@ -2,102 +2,115 @@ "callcodecallcodecall_110_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecall_110_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6a31c55e60f7feb3f60dba0f8dca02b95b85ccd49dbdd85e6feca95392ba5221", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6a31c55e60f7feb3f60dba0f8dca02b95b85ccd49dbdd85e6feca95392ba5221", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb15e870c9fa7c6befd413d0e4ed2ec19b94175ccf0467edba6f91fdef8a3b86f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6c3acc4ef20b7afcdbfe25c329659464e1602eb606a15a6d4b84e17bf3cec1dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6a31c55e60f7feb3f60dba0f8dca02b95b85ccd49dbdd85e6feca95392ba5221", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +120,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_SuicideMiddle.json index 9c5ee6ea8..937e1c2bb 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_110_SuicideMiddle.json @@ -2,102 +2,117 @@ "callcodecallcodecall_110_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecall_110_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0af21ebddea0328af1e15f809f5f6e3401af37ed2501075300bebe479b006d49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0af21ebddea0328af1e15f809f5f6e3401af37ed2501075300bebe479b006d49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x687ad44bee4e1068abc98c35dff3917fa0dc8ff8ccf85658cb69dbaa8e1b972d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7fda4cd60dc6ec236dd59307b889261919971ef3903191d463357779686d2eee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0af21ebddea0328af1e15f809f5f6e3401af37ed2501075300bebe479b006d49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (CALL 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +122,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_ABCB_RECURSIVE.json index 29c91e81f..d54b1d073 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecall_ABCB_RECURSIVE.json @@ -2,95 +2,158 @@ "callcodecallcodecall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x97f1edcdfea93c670158755cbd53cc111e737cf892bbc78510ff20c9fea8cf1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x97f1edcdfea93c670158755cbd53cc111e737cf892bbc78510ff20c9fea8cf1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xeaf36e0227183784833409de2e2b5e88ec9ad34e3f56a2c5ce12aef7dbd41d9e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x96594d6ef8a2bb38ed384dea3c898cab3e2bfc0499ada76dbf0f213427172e9e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566204" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x97f1edcdfea93c670158755cbd53cc111e737cf892bbc78510ff20c9fea8cf1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568184" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (CALL 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +163,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111.json index 8d3a33283..89ff6e0e3 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111.json @@ -2,102 +2,120 @@ "callcodecallcodecallcode_111" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecallcode_111Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x869a98c314bc25e3bf2d4d3f8b576565913f95eed2a9ff80700431af2bbe209e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x869a98c314bc25e3bf2d4d3f8b576565913f95eed2a9ff80700431af2bbe209e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc7f9afc1eedbe922848181dc4804a4f38e3caf92bb1d629b8dc5ce4ecd2f2ab3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb10bd06603fe9088c4c6972e911bac01ff45d82c13ffdc9e0b68a06876fc9ccc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x869a98c314bc25e3bf2d4d3f8b576565913f95eed2a9ff80700431af2bbe209e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x014a" : "0x1000000000000000000000000000000000000000", + "0x014c" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0150" : "0x40", + "0x0152" : "0x26", + "0x0154" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620493e0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000036203d090f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +125,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGE.json index e94d2237f..10fda42d5 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGE.json @@ -2,102 +2,140 @@ "callcodecallcodecallcode_111_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xec005918210b0e6927b59a05397a92e4fcaae057575cb6dc29c39a5adc8c385a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xec005918210b0e6927b59a05397a92e4fcaae057575cb6dc29c39a5adc8c385a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x73d851e02f75a740bfeb2a2aa7699d8449fcc4a5870b6a83c4521dd980749f25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x51a9c1e504660a3963b82f1deef6cf5f46723d8374f13642c4ca736ad094a946", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xec005918210b0e6927b59a05397a92e4fcaae057575cb6dc29c39a5adc8c385a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +145,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGMAfter.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGMAfter.json index 88252fb65..4068f0312 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGMAfter.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGMAfter.json @@ -2,102 +2,142 @@ "callcodecallcodecallcode_111_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x011fa4e27c42d447b72696d3aa37e5c1594c5a0228c2703270fc76b48b2ee39b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x011fa4e27c42d447b72696d3aa37e5c1594c5a0228c2703270fc76b48b2ee39b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x89be528276a8183204498a5272ed515fa790cee710ef54d679657bd45159b59b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0550d64d8201900071745405c166cde9253bbc201a9031b932c76f4d5f496ddc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x011fa4e27c42d447b72696d3aa37e5c1594c5a0228c2703270fc76b48b2ee39b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaecf4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60140 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGMBefore.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGMBefore.json index 5b4a0167c..741b76263 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGMBefore.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGMBefore.json @@ -2,102 +2,138 @@ "callcodecallcodecallcode_111_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb4dbea16de17b59147fa94280092aad3126e017f4a453a065186300d2448c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb4dbea16de17b59147fa94280092aad3126e017f4a453a065186300d2448c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4e3ad257e8d352958cea3ec50c3ffe9eb8864cec4cfccc5d9d5fae441c0a9977", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3f299a1af6b8063deb96c41f54078ebb5a5e2f78a5913b9d73c7e2c2f8755f38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb4dbea16de17b59147fa94280092aad3126e017f4a453a065186300d2448c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +143,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_SuicideEnd.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_SuicideEnd.json index 951337d49..530f633d0 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_SuicideEnd.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_SuicideEnd.json @@ -2,102 +2,110 @@ "callcodecallcodecallcode_111_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9864a50ab338548bf3a7d0a839fb494f344034f011673774ca7230dccd38ccd8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9864a50ab338548bf3a7d0a839fb494f344034f011673774ca7230dccd38ccd8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7cdc002673f5a04d1896f78c6c910249ec5ec95d2b2c72d69c13558830acb369", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x23059d8c10d91e710f1c1f7e22704af4fab5274394c646cad2522e917c2576c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9864a50ab338548bf3a7d0a839fb494f344034f011673774ca7230dccd38ccd8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350f4600255731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +115,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_SuicideMiddle.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_SuicideMiddle.json index 01726c184..0167aa4d3 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_SuicideMiddle.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_SuicideMiddle.json @@ -2,102 +2,118 @@ "callcodecallcodecallcode_111_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecallcode_111_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0af21ebddea0328af1e15f809f5f6e3401af37ed2501075300bebe479b006d49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0af21ebddea0328af1e15f809f5f6e3401af37ed2501075300bebe479b006d49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x687ad44bee4e1068abc98c35dff3917fa0dc8ff8ccf85658cb69dbaa8e1b972d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7fda4cd60dc6ec236dd59307b889261919971ef3903191d463357779686d2eee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0af21ebddea0328af1e15f809f5f6e3401af37ed2501075300bebe479b006d49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) [[ 2 ]] (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +123,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_ABCB_RECURSIVE.json index c7124d15e..01074d33c 100644 --- a/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stCallDelegateCodesHomestead/callcodecallcodecallcode_ABCB_RECURSIVE.json @@ -2,95 +2,158 @@ "callcodecallcodecallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCallDelegateCodesHomestead/callcodecallcodecallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7534562771847b5e3213d441c5b7eaf174fe4f238bf44b5893525f441e031284", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7534562771847b5e3213d441c5b7eaf174fe4f238bf44b5893525f441e031284", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0829e05ae238200ab794bf1978f724286bceaf1a947662cf408ac5c65421157d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8502b9c5e0f229cb9c9f5eeacc11b9f136428645edc6e0627ed08c0ab578ac6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "566201" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x7534562771847b5e3213d441c5b7eaf174fe4f238bf44b5893525f441e031284", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "568181" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240f4600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ [[ 1 ]] (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ [[ 2 ]] (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +163,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/Call1024BalanceTooLow.json b/GeneralStateTests/stChangedEIP150/Call1024BalanceTooLow.json index a336d4df4..6fedaf094 100644 --- a/GeneralStateTests/stChangedEIP150/Call1024BalanceTooLow.json +++ b/GeneralStateTests/stChangedEIP150/Call1024BalanceTooLow.json @@ -2,88 +2,76 @@ "Call1024BalanceTooLow" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/Call1024BalanceTooLowFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x28d138", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "2675000", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xaaead1065382a87e86f895d97eb30e29a9fbc52341b6991ee0a6892345a36e73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x0401", + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xaaead1065382a87e86f895d97eb30e29a9fbc52341b6991ee0a6892345a36e73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x95039d2266cf043d284b35099fd1eaeb9343465e37cf97db82b86af218a992dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x95039d2266cf043d284b35099fd1eaeb9343465e37cf97db82b86af218a992dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaaead1065382a87e86f895d97eb30e29a9fbc52341b6991ee0a6892345a36e73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005401600055600060006000600060005473bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffff1600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b @@0 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +81,14 @@ "" ], "gasLimit" : [ - "0x10000000d788" + "17592186099592" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stChangedEIP150/Call1024PreCalls.json b/GeneralStateTests/stChangedEIP150/Call1024PreCalls.json index ada93b5fa..4deadb122 100644 --- a/GeneralStateTests/stChangedEIP150/Call1024PreCalls.json +++ b/GeneralStateTests/stChangedEIP150/Call1024PreCalls.json @@ -2,88 +2,80 @@ "Call1024PreCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/Call1024PreCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x34c0da29bceb7ce1061ce30b71df471f7f667f87b3f013d6e838a5691ddc6255", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x03e4", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x34c0da29bceb7ce1061ce30b71df471f7f667f87b3f013d6e838a5691ddc6255", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf602f8357f3f9231189f843971ff00681946cc6ce3415c9479a50589b9fbaffc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf602f8357f3f9231189f843971ff00681946cc6ce3415c9479a50589b9fbaffc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x34c0da29bceb7ce1061ce30b71df471f7f667f87b3f013d6e838a5691ddc6255", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "1", + "0x01" : "0", + "0x02" : "1", + "0x03" : "1" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07e8", - "code" : "0x6000600060006000600173aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffff16002556000600060006000600173aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffff16003556001600054016000556000600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffff1600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ [[ 2 ]] (CALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[ 3 ]] (CALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -95,12 +87,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stChangedEIP150/Callcode1024BalanceTooLow.json b/GeneralStateTests/stChangedEIP150/Callcode1024BalanceTooLow.json index e169561a3..d93de3684 100644 --- a/GeneralStateTests/stChangedEIP150/Callcode1024BalanceTooLow.json +++ b/GeneralStateTests/stChangedEIP150/Callcode1024BalanceTooLow.json @@ -2,88 +2,76 @@ "Callcode1024BalanceTooLow" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/Callcode1024BalanceTooLowFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcd7b0f52aa9ac64427a044dc051e761cbd67e5abe9a79c15c63062ed6f5e45eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x0401", + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xcd7b0f52aa9ac64427a044dc051e761cbd67e5abe9a79c15c63062ed6f5e45eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x963d1b4a5f3d2ccf85ae1c43dc3c7540b60a540d09ef403d1b2a58db4c224401", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x963d1b4a5f3d2ccf85ae1c43dc3c7540b60a540d09ef403d1b2a58db4c224401", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcd7b0f52aa9ac64427a044dc051e761cbd67e5abe9a79c15c63062ed6f5e45eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005401600055600060006000600060005473bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffff2600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (CALLCODE 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b @@0 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -95,12 +83,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcall_00_OOGE_1.json b/GeneralStateTests/stChangedEIP150/callcall_00_OOGE_1.json index 928a043e3..e39e49ed0 100644 --- a/GeneralStateTests/stChangedEIP150/callcall_00_OOGE_1.json +++ b/GeneralStateTests/stChangedEIP150/callcall_00_OOGE_1.json @@ -2,95 +2,83 @@ "callcall_00_OOGE_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcall_00_OOGE_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x33bb0456eb22ddeb54adf46f74d79d465efa4a577efa67a29aab5c67640123cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01", + "0x05" : "0x02" + } } } - ], - "EIP158" : [ - { - "hash" : "0x33bb0456eb22ddeb54adf46f74d79d465efa4a577efa67a29aab5c67640123cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdefca738f9a2ae3474a4035fadd06340c827fb753aa8285c2f39446b0210cdfe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdefca738f9a2ae3474a4035fadd06340c827fb753aa8285c2f39446b0210cdfe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x33bb0456eb22ddeb54adf46f74d79d465efa4a577efa67a29aab5c67640123cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0", + "0x05" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006001731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025534600555", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 5 (CALLVALUE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +88,14 @@ "" ], "gasLimit" : [ - "0x02bf62" + "180066" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcall_00_OOGE_2.json b/GeneralStateTests/stChangedEIP150/callcall_00_OOGE_2.json index 7e2e0d715..329355e96 100644 --- a/GeneralStateTests/stChangedEIP150/callcall_00_OOGE_2.json +++ b/GeneralStateTests/stChangedEIP150/callcall_00_OOGE_2.json @@ -2,95 +2,83 @@ "callcall_00_OOGE_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcall_00_OOGE_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x33bb0456eb22ddeb54adf46f74d79d465efa4a577efa67a29aab5c67640123cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x01", + "0x05" : "0x02" + } } } - ], - "EIP158" : [ - { - "hash" : "0x33bb0456eb22ddeb54adf46f74d79d465efa4a577efa67a29aab5c67640123cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x41fa034882c906ca932f8218b784af202dee537413a6f342d083257609f77efa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x41fa034882c906ca932f8218b784af202dee537413a6f342d083257609f77efa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x33bb0456eb22ddeb54adf46f74d79d465efa4a577efa67a29aab5c67640123cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x05" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006001731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620186a0f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (CALL 100000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025534600555", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 5 (CALLVALUE)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +88,14 @@ "" ], "gasLimit" : [ - "0x024a32" + "150066" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcall_00_OOGE_valueTransfer.json b/GeneralStateTests/stChangedEIP150/callcall_00_OOGE_valueTransfer.json index 43a69b2cd..6998fda2d 100644 --- a/GeneralStateTests/stChangedEIP150/callcall_00_OOGE_valueTransfer.json +++ b/GeneralStateTests/stChangedEIP150/callcall_00_OOGE_valueTransfer.json @@ -2,95 +2,89 @@ "callcall_00_OOGE_valueTransfer" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcall_00_OOGE_valueTransferFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfbfab140075c759ed020052405b4a2369d5c42cc185569f9427b1744b353214e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "10" + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10", + "storage" : { + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfbfab140075c759ed020052405b4a2369d5c42cc185569f9427b1744b353214e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd571f2018d13b8898f61434841ec3bd1380bf3720cd9d916580cf0bf04aa793d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd571f2018d13b8898f61434841ec3bd1380bf3720cd9d916580cf0bf04aa793d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfbfab140075c759ed020052405b4a2369d5c42cc185569f9427b1744b353214e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "0" + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "storage" : { + "0x02" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006014731000000000000000000000000000000000000001620249f0f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 150000 0x1000000000000000000000000000000000000001 20 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000600a73100000000000000000000000000000000000000261c350f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 50000 0x1000000000000000000000000000000000000002 10 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +94,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcallcall_000_OOGMAfter.json b/GeneralStateTests/stChangedEIP150/callcallcall_000_OOGMAfter.json index 254c6dff3..b2eef73bd 100644 --- a/GeneralStateTests/stChangedEIP150/callcallcall_000_OOGMAfter.json +++ b/GeneralStateTests/stChangedEIP150/callcallcall_000_OOGMAfter.json @@ -2,102 +2,130 @@ "callcallcall_000_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcallcall_000_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xeaa75d5c02ffb6835ea792d976c4944bc11f4e27a85227c8cf73ee14c451ff46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xeaa75d5c02ffb6835ea792d976c4944bc11f4e27a85227c8cf73ee14c451ff46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa767a97d79ec39107df9149cc68b1199fcdc3fd89a41193dd5c280eeb56ddc42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa767a97d79ec39107df9149cc68b1199fcdc3fd89a41193dd5c280eeb56ddc42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xeaa75d5c02ffb6835ea792d976c4944bc11f4e27a85227c8cf73ee14c451ff46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +135,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcallcallcode_001_OOGMAfter_1.json b/GeneralStateTests/stChangedEIP150/callcallcallcode_001_OOGMAfter_1.json index 7de84479d..6a66c44c4 100644 --- a/GeneralStateTests/stChangedEIP150/callcallcallcode_001_OOGMAfter_1.json +++ b/GeneralStateTests/stChangedEIP150/callcallcallcode_001_OOGMAfter_1.json @@ -2,102 +2,154 @@ "callcallcallcode_001_OOGMAfter_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcallcallcode_001_OOGMAfter_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa17df9238a8f84b1d45abbf2608ef80e5dcd07de0c8dd2bbcf98ca21db99753c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158", + "Frontier" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa17df9238a8f84b1d45abbf2608ef80e5dcd07de0c8dd2bbcf98ca21db99753c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x59f3975264b93f4097b183f9ed5dfda26667e2feb0ef6c0938dd9f49e97fdbdc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xef211f7b041d3ef77a8575136a6364fd7ec5975ec2fedac3668d61ed1d9ff93e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa17df9238a8f84b1d45abbf2608ef80e5dcd07de0c8dd2bbcf98ca21db99753c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf7f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60151 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c89f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40073 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +159,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcallcallcode_001_OOGMAfter_2.json b/GeneralStateTests/stChangedEIP150/callcallcallcode_001_OOGMAfter_2.json index dc926d003..b513abe48 100644 --- a/GeneralStateTests/stChangedEIP150/callcallcallcode_001_OOGMAfter_2.json +++ b/GeneralStateTests/stChangedEIP150/callcallcallcode_001_OOGMAfter_2.json @@ -2,102 +2,146 @@ "callcallcallcode_001_OOGMAfter_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcallcallcode_001_OOGMAfter_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf8bdb1563d3bfa59ad72beb2da61a648e252f9a626690a34720b4a570c4c53a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158", + "Frontier" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf8bdb1563d3bfa59ad72beb2da61a648e252f9a626690a34720b4a570c4c53a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3d6bf725e57e6ea3481ed50a8f0338c92858bdf33c36fdb336b5d1b1d3fdb646", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x59d69179aa4aaa0694c84e6c803e6d9fb3932568a197083bb0b7ac9ba1f01559", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf8bdb1563d3bfa59ad72beb2da61a648e252f9a626690a34720b4a570c4c53a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c95f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40085 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +151,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcallcallcode_001_OOGMAfter_3.json b/GeneralStateTests/stChangedEIP150/callcallcallcode_001_OOGMAfter_3.json index 4a0495fb5..e75c05069 100644 --- a/GeneralStateTests/stChangedEIP150/callcallcallcode_001_OOGMAfter_3.json +++ b/GeneralStateTests/stChangedEIP150/callcallcallcode_001_OOGMAfter_3.json @@ -2,102 +2,130 @@ "callcallcallcode_001_OOGMAfter_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcallcallcode_001_OOGMAfter_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x85024ce7f661d120051f7221c36fa705e32eb6e5f0a1df3de2452b6dd3f0f488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x85024ce7f661d120051f7221c36fa705e32eb6e5f0a1df3de2452b6dd3f0f488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xed050e8941d0530b3fab2fe1307f8b8ebed135ad216d2aa8f52c2d83f22399b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xed050e8941d0530b3fab2fe1307f8b8ebed135ad216d2aa8f52c2d83f22399b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x85024ce7f661d120051f7221c36fa705e32eb6e5f0a1df3de2452b6dd3f0f488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +135,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcallcodecall_010_OOGMAfter_1.json b/GeneralStateTests/stChangedEIP150/callcallcodecall_010_OOGMAfter_1.json index a5a66181b..ecb557fdf 100644 --- a/GeneralStateTests/stChangedEIP150/callcallcodecall_010_OOGMAfter_1.json +++ b/GeneralStateTests/stChangedEIP150/callcallcodecall_010_OOGMAfter_1.json @@ -2,102 +2,136 @@ "callcallcodecall_010_OOGMAfter_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcallcodecall_010_OOGMAfter_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xde101ef70f3ec3b41bfbc894ed9af86d9f1e28b95d30fba017aeb5f5fbda601b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xde101ef70f3ec3b41bfbc894ed9af86d9f1e28b95d30fba017aeb5f5fbda601b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdd76ee8ba39a7071c313c6482b98e2db641023bf18a796e77cf2eb4758a18549", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdd76ee8ba39a7071c313c6482b98e2db641023bf18a796e77cf2eb4758a18549", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xde101ef70f3ec3b41bfbc894ed9af86d9f1e28b95d30fba017aeb5f5fbda601b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf7f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60151 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c8df46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40077 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcallcodecall_010_OOGMAfter_2.json b/GeneralStateTests/stChangedEIP150/callcallcodecall_010_OOGMAfter_2.json index 3b76e26b6..310f79585 100644 --- a/GeneralStateTests/stChangedEIP150/callcallcodecall_010_OOGMAfter_2.json +++ b/GeneralStateTests/stChangedEIP150/callcallcodecall_010_OOGMAfter_2.json @@ -2,102 +2,142 @@ "callcallcodecall_010_OOGMAfter_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcallcodecall_010_OOGMAfter_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x25eb00ab4fb36d94c41162afd9e87daf94cc10f2ccc7bd6c3b8199092996c0fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x25eb00ab4fb36d94c41162afd9e87daf94cc10f2ccc7bd6c3b8199092996c0fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x60c4f8cfe444a136e9b4bd6dc4619484fbabe8dea905ee61b243f8e2568f9b42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x60c4f8cfe444a136e9b4bd6dc4619484fbabe8dea905ee61b243f8e2568f9b42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x25eb00ab4fb36d94c41162afd9e87daf94cc10f2ccc7bd6c3b8199092996c0fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e48f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20040 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcallcodecall_010_OOGMAfter_3.json b/GeneralStateTests/stChangedEIP150/callcallcodecall_010_OOGMAfter_3.json index bfbdc0554..415d6d4a5 100644 --- a/GeneralStateTests/stChangedEIP150/callcallcodecall_010_OOGMAfter_3.json +++ b/GeneralStateTests/stChangedEIP150/callcallcodecall_010_OOGMAfter_3.json @@ -2,102 +2,136 @@ "callcallcodecall_010_OOGMAfter_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcallcodecall_010_OOGMAfter_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0e2b3eba8b61eda5f874976573a954510a2097f039564011eb11bb356a52eee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0e2b3eba8b61eda5f874976573a954510a2097f039564011eb11bb356a52eee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc41a25808023d223b1dc3f3914c233a901168605f5f02a9f15c5fadce6044462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc41a25808023d223b1dc3f3914c233a901168605f5f02a9f15c5fadce6044462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0e2b3eba8b61eda5f874976573a954510a2097f039564011eb11bb356a52eee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcallcodecallcode_011_OOGMAfter_1.json b/GeneralStateTests/stChangedEIP150/callcallcodecallcode_011_OOGMAfter_1.json index f3d61d7e1..318f34c03 100644 --- a/GeneralStateTests/stChangedEIP150/callcallcodecallcode_011_OOGMAfter_1.json +++ b/GeneralStateTests/stChangedEIP150/callcallcodecallcode_011_OOGMAfter_1.json @@ -2,102 +2,142 @@ "callcallcodecallcode_011_OOGMAfter_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcallcodecallcode_011_OOGMAfter_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdd118bf6242fb4b338d4e7296394fd9b163a073146a4dea27799249382b2ccb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdd118bf6242fb4b338d4e7296394fd9b163a073146a4dea27799249382b2ccb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x953f39215417f53317d23e5a28ff959337d00e9f1507b5c1617499d6b518613f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x953f39215417f53317d23e5a28ff959337d00e9f1507b5c1617499d6b518613f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdd118bf6242fb4b338d4e7296394fd9b163a073146a4dea27799249382b2ccb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaecf1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60140 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcallcodecallcode_011_OOGMAfter_2.json b/GeneralStateTests/stChangedEIP150/callcallcodecallcode_011_OOGMAfter_2.json index 4bb45c8db..3f3767e73 100644 --- a/GeneralStateTests/stChangedEIP150/callcallcodecallcode_011_OOGMAfter_2.json +++ b/GeneralStateTests/stChangedEIP150/callcallcodecallcode_011_OOGMAfter_2.json @@ -2,102 +2,132 @@ "callcallcodecallcode_011_OOGMAfter_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcallcodecallcode_011_OOGMAfter_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb1ae24b7ad575830405dcb5f29c2aeaa71ad90828970a9a729542de6a3d35daa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb1ae24b7ad575830405dcb5f29c2aeaa71ad90828970a9a729542de6a3d35daa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcd6b0d134a9ebf655f0e1f76cb2d6c8c66a36c478867d3abbb00d7655dbf0911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcd6b0d134a9ebf655f0e1f76cb2d6c8c66a36c478867d3abbb00d7655dbf0911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb1ae24b7ad575830405dcb5f29c2aeaa71ad90828970a9a729542de6a3d35daa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +137,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcall_100_OOGMAfter_1.json b/GeneralStateTests/stChangedEIP150/callcodecallcall_100_OOGMAfter_1.json index 648a06331..9db7773c0 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcall_100_OOGMAfter_1.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcall_100_OOGMAfter_1.json @@ -2,102 +2,142 @@ "callcodecallcall_100_OOGMAfter_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcall_100_OOGMAfter_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xaf584519416197f347328bd8c334df83e892e6821fa77a6409e17acc7f07c875", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xaf584519416197f347328bd8c334df83e892e6821fa77a6409e17acc7f07c875", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb62569cbaffe068e783d4870d965fa783b0dd7d06bded6838715228457cb3262", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaae346ca92f96acc0d6b144e16bf1690ff1c32d06bf5e595f6f23f3366925abd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaf584519416197f347328bd8c334df83e892e6821fa77a6409e17acc7f07c875", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c95f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40085 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcall_100_OOGMAfter_2.json b/GeneralStateTests/stChangedEIP150/callcodecallcall_100_OOGMAfter_2.json index 3997b98da..747533695 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcall_100_OOGMAfter_2.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcall_100_OOGMAfter_2.json @@ -2,102 +2,142 @@ "callcodecallcall_100_OOGMAfter_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcall_100_OOGMAfter_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa50cb0d18f5a8f36f9db0aa1bdf1c77f149dd4e941b7d4cc5e5710a78f3f0b56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa50cb0d18f5a8f36f9db0aa1bdf1c77f149dd4e941b7d4cc5e5710a78f3f0b56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x46dd20e8074230b6e3dc9d29cea3d5b5aeabc6032c31d751130053cb15cb917f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd6eff2dc4e89f3ba043d1c75f6e19070f941a1c617f3d4a81c2d22faf2c8f395", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa50cb0d18f5a8f36f9db0aa1bdf1c77f149dd4e941b7d4cc5e5710a78f3f0b56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcall_100_OOGMAfter_3.json b/GeneralStateTests/stChangedEIP150/callcodecallcall_100_OOGMAfter_3.json index 2c7cf94e5..4ed7afc26 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcall_100_OOGMAfter_3.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcall_100_OOGMAfter_3.json @@ -2,102 +2,128 @@ "callcodecallcall_100_OOGMAfter_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcall_100_OOGMAfter_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1ccdddfee7c5341f862e77e4b217b4ab98be631d8dd5c81a328b57efcb2f00ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1ccdddfee7c5341f862e77e4b217b4ab98be631d8dd5c81a328b57efcb2f00ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x278c6d69454c759028bab28462a540d7f0d8affdf3be9ab83ad873942f4d7169", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x278c6d69454c759028bab28462a540d7f0d8affdf3be9ab83ad873942f4d7169", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1ccdddfee7c5341f862e77e4b217b4ab98be631d8dd5c81a328b57efcb2f00ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +133,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_1.json b/GeneralStateTests/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_1.json index 1670eeb4b..b52f3337d 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_1.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_1.json @@ -2,102 +2,126 @@ "callcodecallcallcode_101_OOGMAfter_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9cea071166a4152be65f70641dad45a5281bb3166af3b879a1f81c1f30cd03dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9cea071166a4152be65f70641dad45a5281bb3166af3b879a1f81c1f30cd03dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9dadc649bd108ae1326e1f7d8a113435e18e38fa2e345ebbe8e3b6c57d17c0b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9dadc649bd108ae1326e1f7d8a113435e18e38fa2e345ebbe8e3b6c57d17c0b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9cea071166a4152be65f70641dad45a5281bb3166af3b879a1f81c1f30cd03dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +131,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_2.json b/GeneralStateTests/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_2.json index be63e9ec9..c57dc3358 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_2.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_2.json @@ -2,102 +2,146 @@ "callcodecallcallcode_101_OOGMAfter_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x72789093fd286d124a94068c11cb5189564e50490626464d2d3aab6ec7049aac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x72789093fd286d124a94068c11cb5189564e50490626464d2d3aab6ec7049aac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6d479eeebd4394d608e4c0773568b4b397afc1528e762283fe0e412f9dd4cd61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe992a79fb556b4ffabc16a460d25f8201d477ff4bccf72b91d505b74e5084069", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x72789093fd286d124a94068c11cb5189564e50490626464d2d3aab6ec7049aac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c95f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40085 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +151,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_3.json b/GeneralStateTests/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_3.json index bee26e439..d9c9deec5 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_3.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_3.json @@ -2,102 +2,142 @@ "callcodecallcallcode_101_OOGMAfter_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcallcode_101_OOGMAfter_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x58639a1a71f4da2f6795c2a3c4dbcac89c34e9b9aeebd669d1f5868615a93208", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x58639a1a71f4da2f6795c2a3c4dbcac89c34e9b9aeebd669d1f5868615a93208", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x32d1c8975997225104e8de7199b9e8ce62ba0565858d7061c949cb14f2acf6d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x84f98a6f88dfc72446020065f3e1b40263570f9ab2fa17d80a47a1c5594d9bfe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x58639a1a71f4da2f6795c2a3c4dbcac89c34e9b9aeebd669d1f5868615a93208", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f16001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALL 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_1.json b/GeneralStateTests/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_1.json index 609790f92..44e73988d 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_1.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_1.json @@ -2,102 +2,144 @@ "callcodecallcodecall_110_OOGMAfter_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x19981474be0091e4bcf8c3ced4c9a2b9264ab6f76ccb3708560a5fa014f74677", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x19981474be0091e4bcf8c3ced4c9a2b9264ab6f76ccb3708560a5fa014f74677", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7f80cbb5991fa0786b95a163abe66f6ed0b4e9a59ea334c8b9c849dfd8578cb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9c301320a19121eac101086d4959324be54a0409be44ca96a9a6047bb76a74a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x19981474be0091e4bcf8c3ced4c9a2b9264ab6f76ccb3708560a5fa014f74677", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c95f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +149,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_2.json b/GeneralStateTests/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_2.json index 49b172dab..723f47811 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_2.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_2.json @@ -2,102 +2,142 @@ "callcodecallcodecall_110_OOGMAfter_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x62010bbb8d95a6c25afbaa0ede857cd283cac73a00a420261a3ec0169a5bd5b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x62010bbb8d95a6c25afbaa0ede857cd283cac73a00a420261a3ec0169a5bd5b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x138c60f195439626897fb8dadf9cfe47c646ad81c58e574189074f237c6ae056", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xad940b40dea79c3e416dae92a5713a44612a519ad5dc4e9d71268c0155fc847c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x62010bbb8d95a6c25afbaa0ede857cd283cac73a00a420261a3ec0169a5bd5b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_3.json b/GeneralStateTests/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_3.json index 836602e9e..0683ece1f 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_3.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_3.json @@ -2,102 +2,136 @@ "callcodecallcodecall_110_OOGMAfter_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcodecall_110_OOGMAfter_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x36fee991ca568d9360f7aea3e69b13c04ed83efa13dd71b91b7bb3b9d41e345b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x36fee991ca568d9360f7aea3e69b13c04ed83efa13dd71b91b7bb3b9d41e345b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x961d5c285a8e9cfd352cd1a30ff61cc7afe45d8474265fc2b63c6c9c67296b90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x961d5c285a8e9cfd352cd1a30ff61cc7afe45d8474265fc2b63c6c9c67296b90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x36fee991ca568d9360f7aea3e69b13c04ed83efa13dd71b91b7bb3b9d41e345b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALL 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +141,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter.json b/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter.json index 8691637cf..caa90b1a4 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter.json @@ -2,102 +2,108 @@ "callcodecallcodecallcode_111_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2f6ccfc9fda43ebb03e01bc68951ec9bf51f62a9c5cf1ed708701f343df4eee4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2f6ccfc9fda43ebb03e01bc68951ec9bf51f62a9c5cf1ed708701f343df4eee4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6b91bfc795dca3991ec5721c8ea8a823e6dd446688e27285d8d0500bba8ab56c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6b91bfc795dca3991ec5721c8ea8a823e6dd446688e27285d8d0500bba8ab56c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2f6ccfc9fda43ebb03e01bc68951ec9bf51f62a9c5cf1ed708701f343df4eee4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f2600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f26001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +113,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_1.json b/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_1.json index 6f309e441..033dac3fd 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_1.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_1.json @@ -2,102 +2,142 @@ "callcodecallcodecallcode_111_OOGMAfter_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1b7fea7d4d78014c3e60b9a5f7c93a6588cfbf841bf82a6dae077a662a20e2df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1b7fea7d4d78014c3e60b9a5f7c93a6588cfbf841bf82a6dae077a662a20e2df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa4e4b368d67023020c45ebf2a58f6e357d6d2a9b74191722a0ef6ecea030a9ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfb7d9040e9e5916420948b71d1a123ab257038690f6998aa29bcc2de613c26b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1b7fea7d4d78014c3e60b9a5f7c93a6588cfbf841bf82a6dae077a662a20e2df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaecf4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60140 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619ca4f46001555a600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40100 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 (GAS)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_2.json b/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_2.json index 39d317145..7ab0c3178 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_2.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_2.json @@ -2,102 +2,142 @@ "callcodecallcodecallcode_111_OOGMAfter_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x711948edc65c8b7d199a7731e6054d7e07d06c083eb98c473d3cde0e85488e5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x711948edc65c8b7d199a7731e6054d7e07d06c083eb98c473d3cde0e85488e5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b024b21c2daf897cc6913b84049c8e13b8919bd596cb7041d771e8c44262849", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb53d71ec73b762655d97cbd7e1b208ae64409ae2cd3d38574dec49d07d20109f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x711948edc65c8b7d199a7731e6054d7e07d06c083eb98c473d3cde0e85488e5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaecf4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60140 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619ca4f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40100 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_3.json b/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_3.json index 6c335e127..9b1d5923d 100644 --- a/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_3.json +++ b/GeneralStateTests/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_3.json @@ -2,102 +2,142 @@ "callcodecallcodecallcode_111_OOGMAfter_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/callcodecallcodecallcode_111_OOGMAfter_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x011fa4e27c42d447b72696d3aa37e5c1594c5a0228c2703270fc76b48b2ee39b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x011fa4e27c42d447b72696d3aa37e5c1594c5a0228c2703270fc76b48b2ee39b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x89be528276a8183204498a5272ed515fa790cee710ef54d679657bd45159b59b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0550d64d8201900071745405c166cde9253bbc201a9031b932c76f4d5f496ddc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x011fa4e27c42d447b72696d3aa37e5c1594c5a0228c2703270fc76b48b2ee39b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaecf4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60140 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f46001556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 2 ]] (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +147,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stChangedEIP150/contractCreationMakeCallThatAskMoreGasThenTransactionProvided.json b/GeneralStateTests/stChangedEIP150/contractCreationMakeCallThatAskMoreGasThenTransactionProvided.json index 20fa720c9..29ad717c9 100644 --- a/GeneralStateTests/stChangedEIP150/contractCreationMakeCallThatAskMoreGasThenTransactionProvided.json +++ b/GeneralStateTests/stChangedEIP150/contractCreationMakeCallThatAskMoreGasThenTransactionProvided.json @@ -2,128 +2,171 @@ "contractCreationMakeCallThatAskMoreGasThenTransactionProvided" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x28986b1dd2a8b774b9c931b43a146f60686ed1fd6073f59f6ce678a27eb9ff7a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : [ + 0 + ], + "value" : -1 }, - { - "hash" : "0x300c3dcbb928cdde2440ae30efc403477bf180332c5c7cc66a393a7b2b7c14be", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP150", + "EIP158", + "Frontier" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0x8b1de25de155bec2239c83319199bd3b822b0bfbf7cbb6a23ac39ef11538f018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 1 + ], + "value" : -1 }, - { - "hash" : "0x6c43348eb68de9bdb634ccf1100bc057055fbc061e09d9ea9affa3f08cded27b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0" } } - ], - "Frontier" : [ - { - "hash" : "0x2960c7ae0990124a74d14254b302f847bdac3c0f0d6e438d93114ab442c54bf1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 1 + ], + "value" : -1 }, - { - "hash" : "0x691a7195d6b0ac3628e8c660b3231ecaf2d49db9f02781a84ec680224558b65e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0xaf7b43e1b2c6afeca739391b312df5262af05dd64b6d0716d26d8d66816c8278", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 0 + ], + "value" : -1 }, - { - "hash" : "0x691a7195d6b0ac3628e8c660b3231ecaf2d49db9f02781a84ec680224558b65e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x01" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0" } } - ], - "Metropolis" : [ - { - "hash" : "0x8b1de25de155bec2239c83319199bd3b822b0bfbf7cbb6a23ac39ef11538f018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 1 + ], + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0" } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x6c43348eb68de9bdb634ccf1100bc057055fbc061e09d9ea9affa3f08cded27b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0186a0", - "code" : "0x6001600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{(SSTORE 1 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x10c8e0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161c350f1", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(CALL 50000 0x1000000000000000000000000000000000000001 0 0 64 0 64)}", + "nonce" : "0", "storage" : { } } @@ -133,15 +176,15 @@ "0x6040600060406000600073100000000000000000000000000000000000000161c350f1" ], "gasLimit" : [ - "0x017700", - "0xea60" + "96000", + "60000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stChangedEIP150/createInitFail_OOGduringInit.json b/GeneralStateTests/stChangedEIP150/createInitFail_OOGduringInit.json index c199d13d2..50630fdb5 100644 --- a/GeneralStateTests/stChangedEIP150/createInitFail_OOGduringInit.json +++ b/GeneralStateTests/stChangedEIP150/createInitFail_OOGduringInit.json @@ -2,81 +2,79 @@ "createInitFail_OOGduringInit" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stChangedEIP150/createInitFail_OOGduringInitFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x97f22c8456ec99501c3eb4f86927b26c6aa50f658a5939fdc20234f1d376a6e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x0de0b6b3a7640000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76330e3" } } - ], - "EIP158" : [ - { - "hash" : "0x97f22c8456ec99501c3eb4f86927b26c6aa50f658a5939fdc20234f1d376a6e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x297303455494578a5176177ff1b9db0b0a516255a3d062fb960bbc99e60d8eb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x297303455494578a5176177ff1b9db0b0a516255a3d062fb960bbc99e60d8eb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x97f22c8456ec99501c3eb4f86927b26c6aa50f658a5939fdc20234f1d376a6e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1000000000000100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999870979" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x605a600053600160006001f0ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{(MSTORE8 0 0x5a ) (SELFDESTRUCT (CREATE 1 0 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +84,14 @@ "" ], "gasLimit" : [ - "0xcf1d" + "53021" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stCodeSizeLimit/codesizeOOGInvalidSize.json b/GeneralStateTests/stCodeSizeLimit/codesizeOOGInvalidSize.json index 6002442d6..5e9710cb2 100644 --- a/GeneralStateTests/stCodeSizeLimit/codesizeOOGInvalidSize.json +++ b/GeneralStateTests/stCodeSizeLimit/codesizeOOGInvalidSize.json @@ -2,74 +2,56 @@ "codesizeOOGInvalidSize" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCodeSizeLimit/codesizeOOGInvalidSizeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x01312d00", - "currentNumber" : "0x1388", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "20000000", + "currentNumber" : "5000", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7a4cf6e89654deb5c906223784e50161be0fb8bfb5e851eebdc810362f812e79", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xf4a92bf13d856a56cf6c8116417600dce83d0a8f3d13953424dbacb1baa2a3fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5ecc2d76e1e33d08da794adfc95249b1b7edd85b164598fab13306b2471ec1d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7a4cf6e89654deb5c906223784e50161be0fb8bfb5e851eebdc810362f812e79", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0xf4a92bf13d856a56cf6c8116417600dce83d0a8f3d13953424dbacb1baa2a3fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +61,14 @@ "0x606060405261600d806100126000396000f36060604052361561007f576000357c010000000000000000000000000000000000000000000000000000000090048063a3b9f3e514610084578063b50345b614610098578063d4f639ea146100ac578063d9bb316f146100c0578063e0afb8bd146100d4578063e22a5d5b146100e8578063f983c0fa146100fc5761007f565b610002565b34610002576100966004805050610110565b005b34610002576100aa60048050506110b6565b005b34610002576100be600480505061205c565b005b34610002576100d26004805050613002565b005b34610002576100e66004805050613fa8565b005b34610002576100fa60048050506140c1565b005b346100025761010e6004805050615067565b005b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b600073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000311905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b5056" ], "gasLimit" : [ - "0xe4e1c0" + "15000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stCodeSizeLimit/codesizeValid.json b/GeneralStateTests/stCodeSizeLimit/codesizeValid.json index a606923fe..126b98b83 100644 --- a/GeneralStateTests/stCodeSizeLimit/codesizeValid.json +++ b/GeneralStateTests/stCodeSizeLimit/codesizeValid.json @@ -2,74 +2,57 @@ "codesizeValid" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCodeSizeLimit/codesizeValidFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x01312d00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "20000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6322ef095d21e84a502f9b8f57dcfb33098cd0744b3b732ed2143a0b42386655", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x5de745f7ceaf31700c6ace69b00b6ac7586270a0d09455ef48529080cfc1cedc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x781aca177d6e578a2b902e08207e79c89db94bd1d2138d53687b652586eb8a45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6322ef095d21e84a502f9b8f57dcfb33098cd0744b3b732ed2143a0b42386655", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x5de745f7ceaf31700c6ace69b00b6ac7586270a0d09455ef48529080cfc1cedc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +62,14 @@ "0x6060604052615ed5806100126000396000f360606040523615610074576000357c010000000000000000000000000000000000000000000000000000000090048063a3b9f3e514610079578063b50345b61461008d578063d4f639ea146100a1578063d9bb316f146100b5578063e22a5d5b146100c9578063f983c0fa146100dd57610074565b610002565b346100025761008b60048050506100f1565b005b346100025761009f6004805050611097565b005b34610002576100b3600480505061203d565b005b34610002576100c76004805050612fe3565b005b34610002576100db6004805050613f89565b005b34610002576100ef6004805050614f2f565b005b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b50565b6000731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000019050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000002905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000390508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000049050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000005905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000690508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000079050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000008905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000000990508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000000109050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000101905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010290508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001039050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000104905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010590508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001069050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000107905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010890508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001099050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000110905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020190508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002029050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000203905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020490508050731000000000000000000000000000000000000205905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000206905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020790508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002089050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000209905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000021090508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003019050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000302905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030390508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003049050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000305905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030690508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003079050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000308905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000030990508050731000000000000000000000000000000000000310905080507310000000000000000000000000000000000003109050805073100000000000000000000000000000000000000190508050731000000000000000000000000000000000000001905080507310000000000000000000000000000000000000029050805073100000000000000000000000000000000000000290508050731000000000000000000000000000000000000003905080507310000000000000000000000000000000000000039050805073100000000000000000000000000000000000000490508050731000000000000000000000000000000000000004905080507310000000000000000000000000000000000000059050805073100000000000000000000000000000000000000590508050731000000000000000000000000000000000000006905080507310000000000000000000000000000000000000069050805073100000000000000000000000000000000000000790508050731000000000000000000000000000000000000007905080507310000000000000000000000000000000000000089050805073100000000000000000000000000000000000000890508050731000000000000000000000000000000000000009905080507310000000000000000000000000000000000000099050805073100000000000000000000000000000000000001090508050731000000000000000000000000000000000000010905080507310000000000000000000000000000000000001019050805073100000000000000000000000000000000000010190508050731000000000000000000000000000000000000102905080507310000000000000000000000000000000000001029050805073100000000000000000000000000000000000010390508050731000000000000000000000000000000000000103905080507310000000000000000000000000000000000001049050805073100000000000000000000000000000000000010490508050731000000000000000000000000000000000000105905080507310000000000000000000000000000000000001059050805073100000000000000000000000000000000000010690508050731000000000000000000000000000000000000106905080507310000000000000000000000000000000000001079050805073100000000000000000000000000000000000010790508050731000000000000000000000000000000000000108905080507310000000000000000000000000000000000001089050805073100000000000000000000000000000000000010990508050731000000000000000000000000000000000000109905080507310000000000000000000000000000000000001109050805073100000000000000000000000000000000000011090508050731000000000000000000000000000000000000201905080507310000000000000000000000000000000000002019050805073100000000000000000000000000000000000020290508050731000000000000000000000000000000000000202905080507310000000000000000000000000000000000002039050805073100000000000000000000000000000000000020390508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002049050805073100000000000000000000000000000000000020590508050731000000000000000000000000000000000000204905080507310000000000000000000000000000000000002069050805073100000000000000000000000000000000000020690508050731000000000000000000000000000000000000207905080507310000000000000000000000000000000000002079050805073100000000000000000000000000000000000020890508050731000000000000000000000000000000000000208905080507310000000000000000000000000000000000002099050805073100000000000000000000000000000000000020990508050731000000000000000000000000000000000000210905080507310000000000000000000000000000000000002109050805073100000000000000000000000000000000000030190508050731000000000000000000000000000000000000301905080507310000000000000000000000000000000000003029050805073100000000000000000000000000000000000030290508050731000000000000000000000000000000000000303905080507310000000000000000000000000000000000003039050805073100000000000000000000000000000000000030490508050731000000000000000000000000000000000000304905080507310000000000000000000000000000000000003059050805073100000000000000000000000000000000000030590508050731000000000000000000000000000000000000306905080507310000000000000000000000000000000000003069050805073100000000000000000000000000000000000030790508050731000000000000000000000000000000000000307905080507310000000000000000000000000000000000003089050805073100000000000000000000000000000000000030890508050731000000000000000000000000000000000000309905080507310000000000000000000000000000000000003099050805073100000000000000000000000000000000000031090508050731000000000000000000000000000000000000310905080505b5056" ], "gasLimit" : [ - "0xe4e1c0" + "15000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_AcreateB_BSuicide_BStore.json b/GeneralStateTests/stCreateTest/CREATE_AcreateB_BSuicide_BStore.json index dd2fb2c14..b238d55c3 100644 --- a/GeneralStateTests/stCreateTest/CREATE_AcreateB_BSuicide_BStore.json +++ b/GeneralStateTests/stCreateTest/CREATE_AcreateB_BSuicide_BStore.json @@ -2,88 +2,76 @@ "CREATE_AcreateB_BSuicide_BStore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_AcreateB_BSuicide_BStoreFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd4753925482b62ec7ad7fc3bddff66de44a3a7cd83e3cdba0cd8b6fa73f814b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe2cd6426cb1f1056e3499789297ae9c15323adaac4bf86a28929eb3ebe26fe67", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcb20c3bae000723d5ebaf98ff88ff867c7a017644c44c647533ecdb13a40baec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcb20c3bae000723d5ebaf98ff88ff867c7a017644c44c647533ecdb13a40baec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe2cd6426cb1f1056e3499789297ae9c15323adaac4bf86a28929eb3ebe26fe67", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0c" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x01", + "1000000000000000000000000000000000000000" : { + "balance" : "1", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "0x60606040526000357c010000000000000000000000000000000000000000000000000000000090048063c04062261461003c57610037565b610002565b346100025761004e6004805050610050565b005b600060405160c9806101d3833901809050604051809103906000f080156100025790508073ffffffffffffffffffffffffffffffffffffffff166369bda7aa604051817c0100000000000000000000000000000000000000000000000000000000028152600401809050600060405180830381600087803b156100025760325a03f115610002575050508073ffffffffffffffffffffffffffffffffffffffff16633ac6dff3604051817c0100000000000000000000000000000000000000000000000000000000028152600401809050600060405180830381600087803b156100025760325a03f115610002575050508073ffffffffffffffffffffffffffffffffffffffff16636f118b2b600060405160200152604051817c0100000000000000000000000000000000000000000000000000000000028152600401809050602060405180830381600087803b156100025760325a03f115610002575050506040518051906020015060016000508190555060016000600050819055505b5056606060405260b98060106000396000f360606040526000357c0100000000000000000000000000000000000000000000000000000000900480633ac6dff314604d57806369bda7aa14605e5780636f118b2b14606f576049565b6002565b34600257605c60048050506094565b005b34600257606d600480505060a2565b005b34600257607e600480505060a8565b6040518082815260200191505060405180910390f35b600c6000600050819055505b565b6011ff5b565b6000600060005054905060b6565b9056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +81,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit.json b/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit.json index 7c841ef2d..05cff31a0 100644 --- a/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit.json +++ b/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit.json @@ -2,81 +2,75 @@ "CREATE_ContractSuicideDuringInit" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_ContractSuicideDuringInitFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf5351ae35a94adcc18f2c1a7146c9104063025540cf13f0bb9e1a70bae6c8b8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf5351ae35a94adcc18f2c1a7146c9104063025540cf13f0bb9e1a70bae6c8b8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf333a603e17f77ee796862f7866bba49c697f704dcd4b42c12f496849d18c466", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7663f589c5be87be629223cdc3dba8feebabdd3d3a66978cc994481d9ab8185d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf5351ae35a94adcc18f2c1a7146c9104063025540cf13f0bb9e1a70bae6c8b8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -86,14 +80,14 @@ "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff" ], "gasLimit" : [ - "0x0249f0" + "150000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit_ThenStoreThenReturn.json b/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit_ThenStoreThenReturn.json index bd0278c3e..33281e148 100644 --- a/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit_ThenStoreThenReturn.json +++ b/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit_ThenStoreThenReturn.json @@ -2,88 +2,94 @@ "CREATE_ContractSuicideDuringInit_ThenStoreThenReturn" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb595384d7a1d0a1da23f6922efd8fe572594738d52fd73d01911cab6d0c7f5c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "0" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb595384d7a1d0a1da23f6922efd8fe572594738d52fd73d01911cab6d0c7f5c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x78fa6f579e8822277b1d808d4fd1aba99be3a9e6ebbe9d850fa5956f996c54f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcd847e15911f01978a16197eea0c4a9610bacdd08ea1d9d3cf17eb2f2f6b2440", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb595384d7a1d0a1da23f6922efd8fe572594738d52fd73d01911cab6d0c7f5c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "0" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } }, - "0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600c600155", - "nonce" : "0x00", + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -93,14 +99,14 @@ "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005273d94f5374fce5edbc8e2a8697c15331677e6ebf0bff6000600060006000600073d94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150600b600055600e6012f3" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit_WithValue.json b/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit_WithValue.json index 1403a8957..af4e5b138 100644 --- a/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit_WithValue.json +++ b/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit_WithValue.json @@ -2,81 +2,75 @@ "CREATE_ContractSuicideDuringInit_WithValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_ContractSuicideDuringInit_WithValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x01a15e87137e1d98fbd54a8848b1fa9af1d6ef167cb44676cf8eedf32760e916", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "12" + } } } - ], - "EIP158" : [ - { - "hash" : "0x01a15e87137e1d98fbd54a8848b1fa9af1d6ef167cb44676cf8eedf32760e916", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x96315472f25e8d8de55427dbff149b38266f4bd3089be65f9535ebf3a173a930", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x53b23926c5e12f4869f749070ff00caa71b17ea05153e6223673689c7d15cb5b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x01a15e87137e1d98fbd54a8848b1fa9af1d6ef167cb44676cf8eedf32760e916", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "12" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -86,14 +80,14 @@ "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff" ], "gasLimit" : [ - "0x0249f0" + "150000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit_WithValueToItself.json b/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit_WithValueToItself.json index eb5a471ad..c17d74491 100644 --- a/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit_WithValueToItself.json +++ b/GeneralStateTests/stCreateTest/CREATE_ContractSuicideDuringInit_WithValueToItself.json @@ -2,81 +2,169 @@ "CREATE_ContractSuicideDuringInit_WithValueToItself" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_ContractSuicideDuringInit_WithValueToItselfFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7cd0af0907df25d710cfcfe805b74940f69be3945f08318cce347245199fe023", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "58039" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999941951" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7cd0af0907df25d710cfcfe805b74940f69be3945f08318cce347245199fe023", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "22190" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999977800" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } } } - ], - "Frontier" : [ - { - "hash" : "0xcb312cfb389099b2c1f2de560878a9c6a1a4d4a97c31b4424f60bfb32f11410b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "52379" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999947611" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } } } - ], - "Homestead" : [ - { - "hash" : "0x2002743e54dee8add3d37611f23eecbfcfb9fe9f520ed9071d5a2a7dbc0fc0be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "58039" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999941951" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x7cd0af0907df25d710cfcfe805b74940f69be3945f08318cce347245199fe023", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1a3e089e89a1d995552b4005c40cd5c8832b929b" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "58039" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999941951" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "12" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -86,14 +174,14 @@ "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf360005230ff" ], "gasLimit" : [ - "0x0249f0" + "150000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_EContractCreateEContractInInit_Tr.json b/GeneralStateTests/stCreateTest/CREATE_EContractCreateEContractInInit_Tr.json index 4cf9a4b69..3e9f7a0de 100644 --- a/GeneralStateTests/stCreateTest/CREATE_EContractCreateEContractInInit_Tr.json +++ b/GeneralStateTests/stCreateTest/CREATE_EContractCreateEContractInInit_Tr.json @@ -2,81 +2,93 @@ "CREATE_EContractCreateEContractInInit_Tr" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_EContractCreateEContractInInit_TrFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa53c16ef764e59942826a272cb0c2a22cf857019299de8ba689ea99622b96e96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } } } - ], - "EIP158" : [ - { - "hash" : "0x008b89d8adaea6f4f0fb50436a903b21ceecff1cc4cd96e77e87a73641815c7f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6a3caa9a78c30fa01e1b6dd5c0fe614d05a3c783655d83a0d4d24242c77e4c7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x83a8d130edbb4e577e083be49413b90f513f2a9da710706bbd6f99f35874e366", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x008b89d8adaea6f4f0fb50436a903b21ceecff1cc4cd96e77e87a73641815c7f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x01" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -86,14 +98,14 @@ "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150602060006000f0" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_EContractCreateNEContractInInitOOG_Tr.json b/GeneralStateTests/stCreateTest/CREATE_EContractCreateNEContractInInitOOG_Tr.json index 6376425c5..53fadb62a 100644 --- a/GeneralStateTests/stCreateTest/CREATE_EContractCreateNEContractInInitOOG_Tr.json +++ b/GeneralStateTests/stCreateTest/CREATE_EContractCreateNEContractInInitOOG_Tr.json @@ -2,121 +2,129 @@ "CREATE_EContractCreateNEContractInInitOOG_Tr" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_EContractCreateNEContractInInitOOG_TrFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x79636e75640ef283fed3222de13e8771ed5c47b474630aa9a120a9b2b45d86d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xde57d3e6c712a43c036e67e52f47b97db2526acb3a7f86ef47342b9cdb567ae8", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd63b15ea67d73a31e74acd8df318571c176aff36c564266a6731b7fcb589bb99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xde57d3e6c712a43c036e67e52f47b97db2526acb3a7f86ef47342b9cdb567ae8", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x31615cdaada9cfc5f00dcbfaee0844dc2faf4bbd8fafe6de377de1a5beccffd7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xde57d3e6c712a43c036e67e52f47b97db2526acb3a7f86ef47342b9cdb567ae8", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x0c" + } } } - ], - "Homestead" : [ - { - "hash" : "0x614c26d1539f1de71127ba0184bae3aac2ab10d3ace6fbb3c7b2eec3466314b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xde57d3e6c712a43c036e67e52f47b97db2526acb3a7f86ef47342b9cdb567ae8", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xd63b15ea67d73a31e74acd8df318571c176aff36c564266a6731b7fcb589bb99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xde57d3e6c712a43c036e67e52f47b97db2526acb3a7f86ef47342b9cdb567ae8", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x01" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "balance" : "0", + "code" : "0x600c600055", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x0c" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -126,15 +134,15 @@ "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052600e60126000f0" ], "gasLimit" : [ - "0x027100", - "0xea60" + "160000", + "60000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_EContractCreateNEContractInInit_Tr.json b/GeneralStateTests/stCreateTest/CREATE_EContractCreateNEContractInInit_Tr.json index 0df40f170..db9af6afe 100644 --- a/GeneralStateTests/stCreateTest/CREATE_EContractCreateNEContractInInit_Tr.json +++ b/GeneralStateTests/stCreateTest/CREATE_EContractCreateNEContractInInit_Tr.json @@ -2,81 +2,102 @@ "CREATE_EContractCreateNEContractInInit_Tr" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_EContractCreateNEContractInInit_TrFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x79636e75640ef283fed3222de13e8771ed5c47b474630aa9a120a9b2b45d86d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "64e2ebd6405af8cb348aec519084d3fff42ebba6" : { + "code" : "0x600c600055" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd63b15ea67d73a31e74acd8df318571c176aff36c564266a6731b7fcb589bb99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x31615cdaada9cfc5f00dcbfaee0844dc2faf4bbd8fafe6de377de1a5beccffd7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x614c26d1539f1de71127ba0184bae3aac2ab10d3ace6fbb3c7b2eec3466314b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "64e2ebd6405af8cb348aec519084d3fff42ebba6" : { + "code" : "0x600c600055" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xd63b15ea67d73a31e74acd8df318571c176aff36c564266a6731b7fcb589bb99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x01" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "code" : "0x600c600055" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -86,14 +107,14 @@ "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1506d64600c6000556000526005601bf3600052600e60126000f0" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_EContract_ThenCALLToNonExistentAcc.json b/GeneralStateTests/stCreateTest/CREATE_EContract_ThenCALLToNonExistentAcc.json index 858cdffd5..ef92b6a4f 100644 --- a/GeneralStateTests/stCreateTest/CREATE_EContract_ThenCALLToNonExistentAcc.json +++ b/GeneralStateTests/stCreateTest/CREATE_EContract_ThenCALLToNonExistentAcc.json @@ -2,81 +2,113 @@ "CREATE_EContract_ThenCALLToNonExistentAcc" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_EContract_ThenCALLToNonExistentAccFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x96e22cad6add90b24312de855deb754fdd95e9a703b37db2dfe50bfb4c24a6db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071d49" + } + }, + "e1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x3fe65b80e475f6dd5cbba1dc5ab1c48192190b5152dec14d585a2dda3b8cb09c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x414473e2b5ccbb95bfc9d02ca0e01da229de28551c4f95979c3f37d46ba075a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x414473e2b5ccbb95bfc9d02ca0e01da229de28551c4f95979c3f37d46ba075a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x06be35" + } + }, + "e1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" } } - ], - "Metropolis" : [ - { - "hash" : "0x3fe65b80e475f6dd5cbba1dc5ab1c48192190b5152dec14d585a2dda3b8cb09c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x06bba1" + } + }, + "e1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055602060006000f06001555a6002556000600060006000600073e1ecf98489fa9ed60a664fc4998db699cfa39d4061ea60f16003555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]] (CALL 60000 0xe1ecf98489fa9ed60a664fc4998db699cfa39d40 0 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +118,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_EmptyContract.json b/GeneralStateTests/stCreateTest/CREATE_EmptyContract.json index dd3ea5082..879fba043 100644 --- a/GeneralStateTests/stCreateTest/CREATE_EmptyContract.json +++ b/GeneralStateTests/stCreateTest/CREATE_EmptyContract.json @@ -2,81 +2,81 @@ "CREATE_EmptyContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_EmptyContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xccb5dd1bdab508758d44e650ebf8eb21e79f58d0a20b0fe7d4f102dc3b5104d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x64" : "0x07bc62" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x308525f16a2448ccfd5e19ad719a7da2791e36860391b6400e1a9550abdfd281", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xccb5dd1bdab508758d44e650ebf8eb21e79f58d0a20b0fe7d4f102dc3b5104d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xccb5dd1bdab508758d44e650ebf8eb21e79f58d0a20b0fe7d4f102dc3b5104d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x308525f16a2448ccfd5e19ad719a7da2791e36860391b6400e1a9550abdfd281", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x64" : "0x07bc62" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055602060006000f06001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +86,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_EmptyContractAndCallIt_0wei.json b/GeneralStateTests/stCreateTest/CREATE_EmptyContractAndCallIt_0wei.json index dc8d9f61f..5f0b5386d 100644 --- a/GeneralStateTests/stCreateTest/CREATE_EmptyContractAndCallIt_0wei.json +++ b/GeneralStateTests/stCreateTest/CREATE_EmptyContractAndCallIt_0wei.json @@ -2,81 +2,104 @@ "CREATE_EmptyContractAndCallIt_0wei" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_EmptyContractAndCallIt_0weiFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9d9b0f4d83b4cc9d694f684b3c5e02ce331296f6de2ca235676789b1fe08efae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071c81" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x19d6310e52c8d20f7f4fc424c5b48de170aaf5687712d75530d68ee079457234", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc2f8f38782b85d584ac54b4bcd1f3fb47abdcdb89d866651d89c0f92e4cf7734", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc2f8f38782b85d584ac54b4bcd1f3fb47abdcdb89d866651d89c0f92e4cf7734", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071fab" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" } } - ], - "Metropolis" : [ - { - "hash" : "0x19d6310e52c8d20f7f4fc424c5b48de170aaf5687712d75530d68ee079457234", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071c81" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055602060006000f06001555a6002556000600060006000600060015461ea60f16003555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]] (CALL 60000 (SLOAD 1) 0 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +109,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_EmptyContractAndCallIt_1wei.json b/GeneralStateTests/stCreateTest/CREATE_EmptyContractAndCallIt_1wei.json index 79877c5eb..294e258a2 100644 --- a/GeneralStateTests/stCreateTest/CREATE_EmptyContractAndCallIt_1wei.json +++ b/GeneralStateTests/stCreateTest/CREATE_EmptyContractAndCallIt_1wei.json @@ -2,81 +2,107 @@ "CREATE_EmptyContractAndCallIt_1wei" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_EmptyContractAndCallIt_1weiFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5f819235613ee824d9931511c4f3fcc6b9e6380f531fd55e5d0b194e946f407c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x070255" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "nonce" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0x1335ca3b57b2762b2b943682205ae7e792e2b3a2ec8a123a98a96eb53186f5dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x53a30101b6f54133217dd206b739841e0472d29e176290d6e3464b94837be861", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x53a30101b6f54133217dd206b739841e0472d29e176290d6e3464b94837be861", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x07057f" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "nonce" : "0x00" } } - ], - "Metropolis" : [ - { - "hash" : "0x1335ca3b57b2762b2b943682205ae7e792e2b3a2ec8a123a98a96eb53186f5dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x070255" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "nonce" : "0x00" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x5a600055602060006000f06001555a6002556000600060006000600160015461ea60f16003555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]](CALL 60000 (SLOAD 1) 1 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +112,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithBalance.json b/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithBalance.json index 24b937c46..ad39f95d2 100644 --- a/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithBalance.json +++ b/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithBalance.json @@ -2,81 +2,53 @@ "CREATE_EmptyContractWithBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_EmptyContractWithBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf4bd411c00e8158955baa48589471d9b3c534e77697173b44baeac86828a4782", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x64" : "0x07bc62" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0x87dcd926369bb5229d8aa73a4dc5295ce32a9bd9b6448336678f000d3420be18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf4bd411c00e8158955baa48589471d9b3c534e77697173b44baeac86828a4782", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf4bd411c00e8158955baa48589471d9b3c534e77697173b44baeac86828a4782", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x87dcd926369bb5229d8aa73a4dc5295ce32a9bd9b6448336678f000d3420be18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x5a600055602060006001f06001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]](GAS) [[1]] (CREATE 1 0 32) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +58,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithStorage.json b/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithStorage.json index 2697e95b1..c00f43e2b 100644 --- a/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithStorage.json +++ b/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithStorage.json @@ -2,88 +2,120 @@ "CREATE_EmptyContractWithStorage" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_EmptyContractWithStorageFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2933815c2af5c423c25ef33d349898f15a3b79b763de49671616c310b6effcbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x64" : "0x071d30" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xa401bb1798616adafc66608fd09285c0c68831f97a9b4d404970da9c2a99a1e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcb4d3f29a0485b8ec3eb183afc0b394fc098772e8fa0a84f38014d440933dbd4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcb4d3f29a0485b8ec3eb183afc0b394fc098772e8fa0a84f38014d440933dbd4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x64" : "0x071fc4" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" } } - ], - "Metropolis" : [ - { - "hash" : "0xa401bb1798616adafc66608fd09285c0c68831f97a9b4d404970da9c2a99a1e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x64" : "0x071d30" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000557f600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331676000527f7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000602052604060006000f06001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -93,14 +125,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithStorageAndCallIt_0wei.json b/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithStorageAndCallIt_0wei.json index fb383c9f4..8a78d300b 100644 --- a/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithStorageAndCallIt_0wei.json +++ b/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithStorageAndCallIt_0wei.json @@ -2,88 +2,126 @@ "CREATE_EmptyContractWithStorageAndCallIt_0wei" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x95724b5fb02381aa665d22187075abd0d6e60a2d7f1d98233fc1e2a9478e7018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071d30", + "0x03" : "0x01", + "0x64" : "0x067d4f" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xa3b9c5957c28604d13f03fafd62478dca544d3dd2573699a404364b7622d871b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc8ad715cdf4e7489aab9aa1555a1b138356287e51ac3a73557c75c7b48629f96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc8ad715cdf4e7489aab9aa1555a1b138356287e51ac3a73557c75c7b48629f96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071fc4", + "0x03" : "0x01", + "0x64" : "0x06830d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" } } - ], - "Metropolis" : [ - { - "hash" : "0xa3b9c5957c28604d13f03fafd62478dca544d3dd2573699a404364b7622d871b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071d30", + "0x03" : "0x01", + "0x64" : "0x067d4f" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "0" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000557f600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331676000527f7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000602052604060006000f06001555a6002556000600060006000600060015461ea60f16003555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[2]] (GAS) [[3]] (CALL 60000 (SLOAD 1) 0 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -93,14 +131,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithStorageAndCallIt_1wei.json b/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithStorageAndCallIt_1wei.json index 36a5bc713..2c80b8c84 100644 --- a/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithStorageAndCallIt_1wei.json +++ b/GeneralStateTests/stCreateTest/CREATE_EmptyContractWithStorageAndCallIt_1wei.json @@ -2,88 +2,104 @@ "CREATE_EmptyContractWithStorageAndCallIt_1wei" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_EmptyContractWithStorageAndCallIt_1weiFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x79da1bc54589028fc4471e13af9b7b5e5c546f35b623f3d44cdf12afa263d38d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071d30", + "0x03" : "0x01", + "0x64" : "0x066323" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "storage" : { + "0x00" : "12" + } } } - ], - "EIP158" : [ - { - "hash" : "0x39f3f07069dc28f2485af1b33570a2cc31c565312f56fd0715cd4671d8072897", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdb693840d5eca93f43d95ef11946b7b5b2b994651b669b971544340bfeed89c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdb693840d5eca93f43d95ef11946b7b5b2b994651b669b971544340bfeed89c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x39f3f07069dc28f2485af1b33570a2cc31c565312f56fd0715cd4671d8072897", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071fc4", + "0x03" : "0x01", + "0x64" : "0x0668e1" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0x01", + "storage" : { + "0x00" : "12" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x5a6000557f600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331676000527f7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000602052604060006000f06001555a6002556000600060006000600160015461ea60f16003555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[2]] (GAS) [[3]] (CALL 60000 (SLOAD 1) 1 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -93,14 +109,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stCreateTest/CREATE_empty000CreateinInitCode_Transaction.json b/GeneralStateTests/stCreateTest/CREATE_empty000CreateinInitCode_Transaction.json index 4888fecbe..954c6c575 100644 --- a/GeneralStateTests/stCreateTest/CREATE_empty000CreateinInitCode_Transaction.json +++ b/GeneralStateTests/stCreateTest/CREATE_empty000CreateinInitCode_Transaction.json @@ -2,81 +2,106 @@ "CREATE_empty000CreateinInitCode_Transaction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stCreateTest/CREATE_empty000CreateinInitCode_TransactionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x14f55f5a337ba2e8d3282dc8e35821cf9e0418040fe8a38a4cc685d0b3de91f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } } } - ], - "EIP158" : [ - { - "hash" : "0x130a3511ff49e18b6c345692ae59f91919b89ce32c4ff1d0b5117baf99266e9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa31291b591da36e79fe99a2dea8664d3e327097d50416054c348d5e7a9277d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0eadf14941ab52c4bd16e5f80717342215a2ffc76116af4237d0fe1761f5db3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x02" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x130a3511ff49e18b6c345692ae59f91919b89ce32c4ff1d0b5117baf99266e9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "0x01" + }, + "a42676447b7cedfa5fde894d1d3df24aab362701" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -86,14 +111,14 @@ "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f150600060006000f0" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/Call1024BalanceTooLow.json b/GeneralStateTests/stDelegatecallTestHomestead/Call1024BalanceTooLow.json index 70b3c6191..ade7f7c68 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/Call1024BalanceTooLow.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/Call1024BalanceTooLow.json @@ -2,88 +2,89 @@ "Call1024BalanceTooLow" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/Call1024BalanceTooLowFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf89e6292c4be9ae00ea7c7a3f200fdda6343f26e11220bd7270e0060c2dd52f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf89e6292c4be9ae00ea7c7a3f200fdda6343f26e11220bd7270e0060c2dd52f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc42e890ccb4c38119ff0d6d688719dec416fcfac6c8e689e0c3c9c959745d597", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe3c9d254cdc04524ea97f2b69997356811f2a78f1cd291ad76e60fdda029ca89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xf89e6292c4be9ae00ea7c7a3f200fdda6343f26e11220bd7270e0060c2dd52f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x0401", + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005401600055600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffff4600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +94,14 @@ "" ], "gasLimit" : [ - "0x10000000d788" + "17592186099592" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/Call1024OOG.json b/GeneralStateTests/stDelegatecallTestHomestead/Call1024OOG.json index c6afe051f..12d05c3fc 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/Call1024OOG.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/Call1024OOG.json @@ -2,88 +2,94 @@ "Call1024OOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/Call1024OOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa02a93a32d38eb1caaff7d439a54ee709513ffbf7cb2e94fe4867760efa630e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa02a93a32d38eb1caaff7d439a54ee709513ffbf7cb2e94fe4867760efa630e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf5da42d8840745448354e89d1480751a81ef2764041df668de157c9c20e01153", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x00ea8388f351e1cf10f03125b74cac80ab5367c73763f4746a20429b285148ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x0401", + "0x01" : "0x01", + "0x02" : "0x0fa3e9" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xa02a93a32d38eb1caaff7d439a54ee709513ffbf7cb2e94fe4867760efa630e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x85", + "0x01" : "0x01", + "0x02" : "0x020789" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005401600055600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b610401600054046001036127105a0302f46001556103e860005402600101600255", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +99,14 @@ "" ], "gasLimit" : [ - "0xefe17a" + "15720826" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/Call1024PreCalls.json b/GeneralStateTests/stDelegatecallTestHomestead/Call1024PreCalls.json index 177e85691..a1d080521 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/Call1024PreCalls.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/Call1024PreCalls.json @@ -2,88 +2,95 @@ "Call1024PreCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/Call1024PreCallsFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd2f55a959af507ebc66062ee3e5a94fc5ce6d05a0cce8ee81ca95f6c57d793d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd2f55a959af507ebc66062ee3e5a94fc5ce6d05a0cce8ee81ca95f6c57d793d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x359e48d3f702c199d9ae8ccec578d191a0b4ea827c27abb2ca3aa6be3d5457be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8d9b08f0c1f72af68ada841536bfa26af24586859ef2f11f8bd68f4e5686845e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xd2f55a959af507ebc66062ee3e5a94fc5ce6d05a0cce8ee81ca95f6c57d793d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x03e4", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07e8", - "code" : "0x6000600060006000600173aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffff16002556000600060006000600173aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffff1600355600160005401600055600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffff4600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ [[ 2 ]] (CALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[ 3 ]] (CALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -95,12 +102,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/CallLoseGasOOG.json b/GeneralStateTests/stDelegatecallTestHomestead/CallLoseGasOOG.json index eee278519..9e7caa234 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/CallLoseGasOOG.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/CallLoseGasOOG.json @@ -2,88 +2,74 @@ "CallLoseGasOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/CallLoseGasOOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x76b676c40691a124d702a8e95f2d949ea577fa4fec13942bcdb6e6671fe45779", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x76b676c40691a124d702a8e95f2d949ea577fa4fec13942bcdb6e6671fe45779", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x46cdf423ca61bdd9b7e9832556c468045366b2680c101ffc7e274d85ec5318b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x68c34a88a0fe3b7334b8c67a33f46ba7aae6c38a73ec7f35a6ce5e656122d7f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x76b676c40691a124d702a8e95f2d949ea577fa4fec13942bcdb6e6671fe45779", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01", + "0x02" : "0x03e9" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005401600055600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620186a060005402600101f46001556103e860005402600101600255", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL (ADD 1(MUL @@0 100000)) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", "storage" : { } } @@ -95,12 +81,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/CallRecursiveBombPreCall.json b/GeneralStateTests/stDelegatecallTestHomestead/CallRecursiveBombPreCall.json index 6b721c4d4..030b11d92 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/CallRecursiveBombPreCall.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/CallRecursiveBombPreCall.json @@ -2,88 +2,92 @@ "CallRecursiveBombPreCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/CallRecursiveBombPreCallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x37d720f4b503f45cfa2e7204a42c8021435dbd3cb81cab6ff33f64dd5e4e74b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x37d720f4b503f45cfa2e7204a42c8021435dbd3cb81cab6ff33f64dd5e4e74b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd8e2ff5fe7d8ad10816dafd8ad4206cd211be1e5fcb039f897813c000b8ae902", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6fa0501e55377f47a378886c63112ca3738a5269399d41c7613e9f50bb016d16", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x37d720f4b503f45cfa2e7204a42c8021435dbd3cb81cab6ff33f64dd5e4e74b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x03ff", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0fffffffffffffffffffffffffffffff", - "code" : "0x6000600060006000601773bad304eb96065b2a98b57a48a06ae28d285a71b5620186a0f150600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b56707fffffffffffffff4", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0xfffffffffffffffffffffffffffffff", + "code" : "{ (CALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) (DELEGATECALL 0x7ffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001600054016000556000600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b562036b005a03f1600155", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -95,12 +99,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/CallcodeLoseGasOOG.json b/GeneralStateTests/stDelegatecallTestHomestead/CallcodeLoseGasOOG.json index 924939f44..75d544b69 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/CallcodeLoseGasOOG.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/CallcodeLoseGasOOG.json @@ -2,88 +2,76 @@ "CallcodeLoseGasOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/CallcodeLoseGasOOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x803cabf86f2634d681c9a05e8a637fc65e925039850f565f3846dbbeb42251fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x803cabf86f2634d681c9a05e8a637fc65e925039850f565f3846dbbeb42251fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x803cabf86f2634d681c9a05e8a637fc65e925039850f565f3846dbbeb42251fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x68c34a88a0fe3b7334b8c67a33f46ba7aae6c38a73ec7f35a6ce5e656122d7f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x803cabf86f2634d681c9a05e8a637fc65e925039850f565f3846dbbeb42251fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01", + "0x02" : "0x03e9" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005401600055600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620186a060005402600101f46001556103e860005402600101600255", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL (ADD 1(MUL @@0 100000)) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +81,14 @@ "" ], "gasLimit" : [ - "0x028976" + "166262" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/Delegatecall1024.json b/GeneralStateTests/stDelegatecallTestHomestead/Delegatecall1024.json index 35d92e806..1b08feea9 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/Delegatecall1024.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/Delegatecall1024.json @@ -2,88 +2,89 @@ "Delegatecall1024" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/Delegatecall1024Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf89e6292c4be9ae00ea7c7a3f200fdda6343f26e11220bd7270e0060c2dd52f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf89e6292c4be9ae00ea7c7a3f200fdda6343f26e11220bd7270e0060c2dd52f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x91c2381a360e81340004604a496994b7d585dca9e8834c0f3aa75739ff7861ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe3c9d254cdc04524ea97f2b69997356811f2a78f1cd291ad76e60fdda029ca89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xf89e6292c4be9ae00ea7c7a3f200fdda6343f26e11220bd7270e0060c2dd52f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x0401", + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005401600055600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffff4600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -95,12 +96,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/Delegatecall1024OOG.json b/GeneralStateTests/stDelegatecallTestHomestead/Delegatecall1024OOG.json index 8d8c5906e..8be8f8b6e 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/Delegatecall1024OOG.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/Delegatecall1024OOG.json @@ -2,88 +2,94 @@ "Delegatecall1024OOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/Delegatecall1024OOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa02a93a32d38eb1caaff7d439a54ee709513ffbf7cb2e94fe4867760efa630e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa02a93a32d38eb1caaff7d439a54ee709513ffbf7cb2e94fe4867760efa630e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf5da42d8840745448354e89d1480751a81ef2764041df668de157c9c20e01153", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x00ea8388f351e1cf10f03125b74cac80ab5367c73763f4746a20429b285148ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x0401", + "0x01" : "0x01", + "0x02" : "0x0fa3e9" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xa02a93a32d38eb1caaff7d439a54ee709513ffbf7cb2e94fe4867760efa630e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x85", + "0x01" : "0x01", + "0x02" : "0x020789" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005401600055600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b610401600054046001036127105a0302f46001556103e860005402600101600255", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +99,14 @@ "" ], "gasLimit" : [ - "0xefe17a" + "15720826" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callOutput1.json b/GeneralStateTests/stDelegatecallTestHomestead/callOutput1.json index ba9b2355a..bc11e2b3f 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callOutput1.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callOutput1.json @@ -2,128 +2,92 @@ "callOutput1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callOutput1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x06d2ec985e0fb09df5041c16dcc89a07ca981c6a3cee8373b879187172c09b6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x068ae35f557da951c6407104a8a59d0bf8348710cf2c2f41d57107b18e8b9000", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x06d2ec985e0fb09df5041c16dcc89a07ca981c6a3cee8373b879187172c09b6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb30cb132c5dcad75bae0377f1c798af7f22f3d007c03e538126204b188015c47", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x06d2ec985e0fb09df5041c16dcc89a07ca981c6a3cee8373b879187172c09b6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xcf919fbe638c0a9914cd897b0eee0c54d256b2f2151ccc0be601b832725cfec0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : "ALL", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x06d2ec985e0fb09df5041c16dcc89a07ca981c6a3cee8373b879187172c09b6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x068ae35f557da951c6407104a8a59d0bf8348710cf2c2f41d57107b18e8b9000", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x06d2ec985e0fb09df5041c16dcc89a07ca981c6a3cee8373b879187172c09b6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xb30cb132c5dcad75bae0377f1c798af7f22f3d007c03e538126204b188015c47", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f450600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) [[ 0 ]] (MLOAD 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +97,15 @@ "" ], "gasLimit" : [ - "0x10c8e0", - "0x0dbba0" + "1100000", + "900000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callOutput2.json b/GeneralStateTests/stDelegatecallTestHomestead/callOutput2.json index 296d63784..162874900 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callOutput2.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callOutput2.json @@ -2,128 +2,94 @@ "callOutput2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callOutput2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x16fbf8f44ee0390178f1bb8be896c0e97bf0fa8602476bdbe5f9c3a7c6c2f238", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7c812ae27fb6114b03cf557d6a7a7a7ae2a64680d50e5493c024b65acd3509bd", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x16fbf8f44ee0390178f1bb8be896c0e97bf0fa8602476bdbe5f9c3a7c6c2f238", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x03962b53fdaea7ca84a2731cace90a5324f5d57a1560b465b9ff80e423aa1584", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x16fbf8f44ee0390178f1bb8be896c0e97bf0fa8602476bdbe5f9c3a7c6c2f238", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0x78b367e7118f6cee1621affd9aefa30dd2c0db56c6c276a5c24c2f16ff2a619b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x16fbf8f44ee0390178f1bb8be896c0e97bf0fa8602476bdbe5f9c3a7c6c2f238", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7c812ae27fb6114b03cf557d6a7a7a7ae2a64680d50e5493c024b65acd3509bd", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x16fbf8f44ee0390178f1bb8be896c0e97bf0fa8602476bdbe5f9c3a7c6c2f238", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x03962b53fdaea7ca84a2731cace90a5324f5d57a1560b465b9ff80e423aa1584", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600060006020600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f450600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 32 0 0) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +99,15 @@ "" ], "gasLimit" : [ - "0x10c8e0", - "0x0dbba0" + "1100000", + "900000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callOutput3.json b/GeneralStateTests/stDelegatecallTestHomestead/callOutput3.json index 8224dc503..ab06234d8 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callOutput3.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callOutput3.json @@ -2,128 +2,92 @@ "callOutput3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callOutput3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb3e4e1251821dfe4c6d52f8b9540b67f7f13c1d20269acae261c5defe3d67a9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb77c61969e66250323aa42c02c709add3e0699af9a573829a741eb17977870dc", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb3e4e1251821dfe4c6d52f8b9540b67f7f13c1d20269acae261c5defe3d67a9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x02e679656f8753d867a9af516cd59841c49f0620936f76a418457d9bb314648c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb3e4e1251821dfe4c6d52f8b9540b67f7f13c1d20269acae261c5defe3d67a9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xdaaa42dbc4fc90068f17dff17bdffe46fd4b982a477a9a82d39ee69426858014", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } } } - ], - "Homestead" : [ - { - "hash" : "0xb3e4e1251821dfe4c6d52f8b9540b67f7f13c1d20269acae261c5defe3d67a9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb77c61969e66250323aa42c02c709add3e0699af9a573829a741eb17977870dc", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb3e4e1251821dfe4c6d52f8b9540b67f7f13c1d20269acae261c5defe3d67a9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x02e679656f8753d867a9af516cd59841c49f0620936f76a418457d9bb314648c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052602060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f450600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +97,15 @@ "" ], "gasLimit" : [ - "0x10c8e0", - "0x0dbba0" + "1100000", + "900000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callOutput3Fail.json b/GeneralStateTests/stDelegatecallTestHomestead/callOutput3Fail.json index f6301a86f..4f14079a9 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callOutput3Fail.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callOutput3Fail.json @@ -2,128 +2,92 @@ "callOutput3Fail" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callOutput3FailFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x61ba6d9ae6c7024bd60812f414de46b68755d0459748c309b6de131893896dca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e42c382668ca4e46c62ec30f79331a2953382bc8b7639a1458bc4e32ed32354", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x61ba6d9ae6c7024bd60812f414de46b68755d0459748c309b6de131893896dca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa61f6282e0aae7a71aecd2b93ae52b635f52f3b45abd0ed8d8b6722f3387f23b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x61ba6d9ae6c7024bd60812f414de46b68755d0459748c309b6de131893896dca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0x3fba3507eee80bdc1a8c2ac07981adca8f6e5110673a0339e40c6d276314bc85", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : "ALL", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x61ba6d9ae6c7024bd60812f414de46b68755d0459748c309b6de131893896dca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e42c382668ca4e46c62ec30f79331a2953382bc8b7639a1458bc4e32ed32354", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x61ba6d9ae6c7024bd60812f414de46b68755d0459748c309b6de131893896dca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xa61f6282e0aae7a71aecd2b93ae52b635f52f3b45abd0ed8d8b6722f3387f23b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052602060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f450600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x016001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +97,15 @@ "" ], "gasLimit" : [ - "0x10c8e0", - "0x0dbba0" + "1100000", + "900000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callOutput3partial.json b/GeneralStateTests/stDelegatecallTestHomestead/callOutput3partial.json index 97707955a..e4da93902 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callOutput3partial.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callOutput3partial.json @@ -2,128 +2,92 @@ "callOutput3partial" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callOutput3partialFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa36015c22035bf31a50b980e8419e4ca9618d3a923f1f279b4463154ce950a78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5bc2c3418e307e12aeb67b03a2a2c0d84aa6b35c286bd61dc900c872bdfb565b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa36015c22035bf31a50b980e8419e4ca9618d3a923f1f279b4463154ce950a78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcd37783c7cd7783f650009c3a0542dd9b20aaa48f929e5e53722d1d3e9582c2f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa36015c22035bf31a50b980e8419e4ca9618d3a923f1f279b4463154ce950a78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xd9eac24117d8e8180aa96ed111a294c57dedc6dbc855e649c243d11bf330127b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : "ALL", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0xa36015c22035bf31a50b980e8419e4ca9618d3a923f1f279b4463154ce950a78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5bc2c3418e307e12aeb67b03a2a2c0d84aa6b35c286bd61dc900c872bdfb565b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa36015c22035bf31a50b980e8419e4ca9618d3a923f1f279b4463154ce950a78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xcd37783c7cd7783f650009c3a0542dd9b20aaa48f929e5e53722d1d3e9582c2f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600a60006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f450600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +97,15 @@ "" ], "gasLimit" : [ - "0x10c8e0", - "0x0dbba0" + "1100000", + "900000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callOutput3partialFail.json b/GeneralStateTests/stDelegatecallTestHomestead/callOutput3partialFail.json index fbca717b8..c42090864 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callOutput3partialFail.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callOutput3partialFail.json @@ -2,128 +2,92 @@ "callOutput3partialFail" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callOutput3partialFailFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc02b6bdc3bd48cd6a29272b00bfc73a63aeba61bb3096360c716987ee9e8cb19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc98dfd74fa23d95c0ce68ada2a6ef2b348f566890b32f3a932d81d4b5e1fefbd", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc02b6bdc3bd48cd6a29272b00bfc73a63aeba61bb3096360c716987ee9e8cb19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x16601ea0e8c65451bae42cac0d74aa67d465f5b613c27559cdbd3feeaacaedd5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc02b6bdc3bd48cd6a29272b00bfc73a63aeba61bb3096360c716987ee9e8cb19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0x1740acac1df2e5b484cfac44850638c455419665ede6d3dbed9341129e7ccde7", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : "ALL", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0xc02b6bdc3bd48cd6a29272b00bfc73a63aeba61bb3096360c716987ee9e8cb19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc98dfd74fa23d95c0ce68ada2a6ef2b348f566890b32f3a932d81d4b5e1fefbd", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc02b6bdc3bd48cd6a29272b00bfc73a63aeba61bb3096360c716987ee9e8cb19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x16601ea0e8c65451bae42cac0d74aa67d465f5b613c27559cdbd3feeaacaedd5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600a60006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f450600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x016001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +97,15 @@ "" ], "gasLimit" : [ - "0x10c8e0", - "0x0dbba0" + "1100000", + "900000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callWithHighValueAndGasOOG.json b/GeneralStateTests/stDelegatecallTestHomestead/callWithHighValueAndGasOOG.json index 0b8dd8cf0..58c85b086 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callWithHighValueAndGasOOG.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callWithHighValueAndGasOOG.json @@ -2,88 +2,74 @@ "callWithHighValueAndGasOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callWithHighValueAndGasOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x54daa803bda94d91431e59da207338a9e4414900841128a7b465bc40a4b66407", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x54daa803bda94d91431e59da207338a9e4414900841128a7b465bc40a4b66407", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3627d19480c5de4564b2a814de4cda322e03d8481116406811ccb90b4b8f9040", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3627d19480c5de4564b2a814de4cda322e03d8481116406811ccb90b4b8f9040", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x54daa803bda94d91431e59da207338a9e4414900841128a7b465bc40a4b66407", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa602052600260006040600073945304eb96065b2a98b57a48a06ae28d285a71b56bfffffffffffffffffffffffff4600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (DELEGATECALL 0xffffffffffffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +79,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput1.json b/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput1.json index c2f41fb79..3f0b9e649 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput1.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput1.json @@ -2,88 +2,70 @@ "callcodeOutput1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callcodeOutput1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x06d2ec985e0fb09df5041c16dcc89a07ca981c6a3cee8373b879187172c09b6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x06d2ec985e0fb09df5041c16dcc89a07ca981c6a3cee8373b879187172c09b6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x06d2ec985e0fb09df5041c16dcc89a07ca981c6a3cee8373b879187172c09b6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x06d2ec985e0fb09df5041c16dcc89a07ca981c6a3cee8373b879187172c09b6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x06d2ec985e0fb09df5041c16dcc89a07ca981c6a3cee8373b879187172c09b6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f450600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) [[ 0 ]] (MLOAD 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +75,14 @@ "" ], "gasLimit" : [ - "0x10c8e0" + "1100000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput2.json b/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput2.json index 037695048..049c15a05 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput2.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput2.json @@ -2,88 +2,70 @@ "callcodeOutput2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callcodeOutput2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x16fbf8f44ee0390178f1bb8be896c0e97bf0fa8602476bdbe5f9c3a7c6c2f238", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x16fbf8f44ee0390178f1bb8be896c0e97bf0fa8602476bdbe5f9c3a7c6c2f238", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x16fbf8f44ee0390178f1bb8be896c0e97bf0fa8602476bdbe5f9c3a7c6c2f238", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x16fbf8f44ee0390178f1bb8be896c0e97bf0fa8602476bdbe5f9c3a7c6c2f238", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x16fbf8f44ee0390178f1bb8be896c0e97bf0fa8602476bdbe5f9c3a7c6c2f238", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600060006020600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f450600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 32 0 0) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +75,14 @@ "" ], "gasLimit" : [ - "0x10c8e0" + "1100000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3.json b/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3.json index ac75ddfcd..a536fa126 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3.json @@ -2,88 +2,70 @@ "callcodeOutput3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callcodeOutput3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb3e4e1251821dfe4c6d52f8b9540b67f7f13c1d20269acae261c5defe3d67a9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xb3e4e1251821dfe4c6d52f8b9540b67f7f13c1d20269acae261c5defe3d67a9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb3e4e1251821dfe4c6d52f8b9540b67f7f13c1d20269acae261c5defe3d67a9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb3e4e1251821dfe4c6d52f8b9540b67f7f13c1d20269acae261c5defe3d67a9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb3e4e1251821dfe4c6d52f8b9540b67f7f13c1d20269acae261c5defe3d67a9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052602060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f450600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +75,14 @@ "" ], "gasLimit" : [ - "0x10c8e0" + "1100000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3Fail.json b/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3Fail.json index ccfdbff6f..fbce10966 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3Fail.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3Fail.json @@ -2,88 +2,70 @@ "callcodeOutput3Fail" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callcodeOutput3FailFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9be484174db6f7fbe30c0005277095ca7e1022c3210e064e96bb264700afb8ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9be484174db6f7fbe30c0005277095ca7e1022c3210e064e96bb264700afb8ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9be484174db6f7fbe30c0005277095ca7e1022c3210e064e96bb264700afb8ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9be484174db6f7fbe30c0005277095ca7e1022c3210e064e96bb264700afb8ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9be484174db6f7fbe30c0005277095ca7e1022c3210e064e96bb264700afb8ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b66000526020600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f250600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (CALLCODE 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x016001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +75,14 @@ "" ], "gasLimit" : [ - "0x10c8e0" + "1100000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3partial.json b/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3partial.json index e906c235c..acfdb0d8a 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3partial.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3partial.json @@ -2,88 +2,70 @@ "callcodeOutput3partial" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callcodeOutput3partialFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa36015c22035bf31a50b980e8419e4ca9618d3a923f1f279b4463154ce950a78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xa36015c22035bf31a50b980e8419e4ca9618d3a923f1f279b4463154ce950a78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa36015c22035bf31a50b980e8419e4ca9618d3a923f1f279b4463154ce950a78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa36015c22035bf31a50b980e8419e4ca9618d3a923f1f279b4463154ce950a78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa36015c22035bf31a50b980e8419e4ca9618d3a923f1f279b4463154ce950a78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600a60006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f450600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +75,14 @@ "" ], "gasLimit" : [ - "0x10c8e0" + "1100000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3partialFail.json b/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3partialFail.json index e2101460b..027fb6b5d 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3partialFail.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callcodeOutput3partialFail.json @@ -2,88 +2,70 @@ "callcodeOutput3partialFail" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callcodeOutput3partialFailFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc02b6bdc3bd48cd6a29272b00bfc73a63aeba61bb3096360c716987ee9e8cb19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc02b6bdc3bd48cd6a29272b00bfc73a63aeba61bb3096360c716987ee9e8cb19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc02b6bdc3bd48cd6a29272b00bfc73a63aeba61bb3096360c716987ee9e8cb19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc02b6bdc3bd48cd6a29272b00bfc73a63aeba61bb3096360c716987ee9e8cb19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc02b6bdc3bd48cd6a29272b00bfc73a63aeba61bb3096360c716987ee9e8cb19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600a60006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350f450600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (DELEGATECALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x016001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +75,14 @@ "" ], "gasLimit" : [ - "0x10c8e0" + "1100000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/callcodeWithHighValueAndGasOOG.json b/GeneralStateTests/stDelegatecallTestHomestead/callcodeWithHighValueAndGasOOG.json index f8f2e7fb6..a93f451ec 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/callcodeWithHighValueAndGasOOG.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/callcodeWithHighValueAndGasOOG.json @@ -2,88 +2,74 @@ "callcodeWithHighValueAndGasOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/callcodeWithHighValueAndGasOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x54daa803bda94d91431e59da207338a9e4414900841128a7b465bc40a4b66407", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x54daa803bda94d91431e59da207338a9e4414900841128a7b465bc40a4b66407", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3627d19480c5de4564b2a814de4cda322e03d8481116406811ccb90b4b8f9040", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3627d19480c5de4564b2a814de4cda322e03d8481116406811ccb90b4b8f9040", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x54daa803bda94d91431e59da207338a9e4414900841128a7b465bc40a4b66407", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa602052600260006040600073945304eb96065b2a98b57a48a06ae28d285a71b56bfffffffffffffffffffffffff4600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (DELEGATECALL 0xffffffffffffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +79,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/deleagateCallAfterValueTransfer.json b/GeneralStateTests/stDelegatecallTestHomestead/deleagateCallAfterValueTransfer.json index 0807e32ac..d76e6d578 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/deleagateCallAfterValueTransfer.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/deleagateCallAfterValueTransfer.json @@ -2,88 +2,90 @@ "deleagateCallAfterValueTransfer" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/deleagateCallAfterValueTransferFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x34eee42d18251585d6f194c31dd0a32fce9ce11d401b461283fa59cd2e4a908f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x34eee42d18251585d6f194c31dd0a32fce9ce11d401b461283fa59cd2e4a908f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6b675b43db04a786f746800c6468b5e0f172fb6bbe81ec4224cb71d9d8d5db8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa1e359f8d476209f735120764824acf4f05313fa0763cb17b6fcbd828f54e4eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x34eee42d18251585d6f194c31dd0a32fce9ce11d401b461283fa59cd2e4a908f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x10c8e0", - "code" : "0x60016000526040600060406000731000000000000000000000000000000000000001620186a0f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1100000", + "code" : "{ (MSTORE 0 0x01) (DELEGATECALL 100000 0x1000000000000000000000000000000000000001 0 64 0 64) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3460005533600155600035600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "", + "code" : "{ (SSTORE 0 (CALLVALUE)) (SSTORE 1 (CALLER)) (SSTORE 2 (CALLDATALOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2386f26fc10000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +95,14 @@ "" ], "gasLimit" : [ - "0x06e9d9" + "453081" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallAndOOGatTxLevel.json b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallAndOOGatTxLevel.json index d9bb4278a..f9f4354cf 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallAndOOGatTxLevel.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallAndOOGatTxLevel.json @@ -2,88 +2,80 @@ "delegatecallAndOOGatTxLevel" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/delegatecallAndOOGatTxLevelFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xba5b78a980dd457d36a4662048a50e4dd61ae61dc46aa65fd8c7e62d3737c23f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "3000000" } } - ], - "EIP158" : [ - { - "hash" : "0xba5b78a980dd457d36a4662048a50e4dd61ae61dc46aa65fd8c7e62d3737c23f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2e18df95e1e1ff61fc388c004dcb33c7ec8d70f7ecf1582b8a7b9e09d0213aff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2e18df95e1e1ff61fc388c004dcb33c7ec8d70f7ecf1582b8a7b9e09d0213aff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xba5b78a980dd457d36a4662048a50e4dd61ae61dc46aa65fd8c7e62d3737c23f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "61745" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", - "code" : "0x600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b5622dc6c1f4600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "100000", + "code" : "{ [[ 0 ]] (DELEGATECALL 3000001 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +85,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallBasic.json b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallBasic.json index 21cb00921..e50c31d4a 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallBasic.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallBasic.json @@ -2,88 +2,74 @@ "delegatecallBasic" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/delegatecallBasicFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2512ff0ce792e9e7cc6baf69efc98fdc84eaf90e02b42359155dc3dbe11a216f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2512ff0ce792e9e7cc6baf69efc98fdc84eaf90e02b42359155dc3dbe11a216f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b36c981d9b509f87383320c6075f2db04df7a63c8cfd266747fba3e0f3c5e23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbbf97b3bd7ab803993f910fce99ea8d201f3edf99cd9d5bb0dbb67efa76e7af1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2512ff0ce792e9e7cc6baf69efc98fdc84eaf90e02b42359155dc3dbe11a216f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600260006040600073945304eb96065b2a98b57a48a06ae28d285a71b56207a120f4600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 500000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +79,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallEmptycontract.json b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallEmptycontract.json index a263bf937..3f2680e48 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallEmptycontract.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallEmptycontract.json @@ -2,81 +2,65 @@ "delegatecallEmptycontract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/delegatecallEmptycontractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe401648d71617dd66da72c98c4b195f9942c6ab1b8d47cc8df112f70bbdbe59c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe401648d71617dd66da72c98c4b195f9942c6ab1b8d47cc8df112f70bbdbe59c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x421e15ae720639d82241626c9e33c4724a90b9606e030bd95ea29f5cf182abbc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6ab445199097ad4916576058e1f45ea664254d2a185f7a6770f93f6249b67a6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe401648d71617dd66da72c98c4b195f9942c6ab1b8d47cc8df112f70bbdbe59c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x03e8", - "code" : "0x604060006040600073945304eb96065b2a98b57a48a06ae28d285a71b561c350f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000", + "code" : "{ [[ 0 ]] (DELEGATECALL 50000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 64 )}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x10c8e0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +70,14 @@ "" ], "gasLimit" : [ - "0x019a54" + "105044" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallInInitcodeToEmptyContract.json b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallInInitcodeToEmptyContract.json index 5f1e01210..d5d164ed2 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallInInitcodeToEmptyContract.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallInInitcodeToEmptyContract.json @@ -2,81 +2,64 @@ "delegatecallInInitcodeToEmptyContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/delegatecallInInitcodeToEmptyContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfc586f571a68abde4664489c9403bcc34c00b5a5a901b08f20286ba4df9f6808", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x158d67812da0bb53249d5b1eef7a3afd6d49d30a48a5e44b8fb5adc04b7f24b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf64b295c03ee71e17306638045fbdc1410407d4053da492f8d0439bf6d019dfa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4d96399212e798bced58a2f159526808d3d3d3693ba75daa5a612710bae2b666", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x158d67812da0bb53249d5b1eef7a3afd6d49d30a48a5e44b8fb5adc04b7f24b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x01", + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x2710", - "code" : "0x7f604060006040600073945304eb96065b2a98b57a48a06ae28d285a71b56201866000527fa0f4600055000000000000000000000000000000000000000000000000000000602052604060006001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "10000", + "code" : "{ (MSTORE 0 0x604060006040600073945304eb96065b2a98b57a48a06ae28d285a71b5620186) (MSTORE 32 0xa0f4600055000000000000000000000000000000000000000000000000000000) (CREATE 1 0 64) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2386f26fc10000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +69,14 @@ "" ], "gasLimit" : [ - "0x06e9d9" + "453081" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallInInitcodeToExistingContract.json b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallInInitcodeToExistingContract.json index 80ba88fe8..606717fd4 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallInInitcodeToExistingContract.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallInInitcodeToExistingContract.json @@ -2,95 +2,81 @@ "delegatecallInInitcodeToExistingContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/delegatecallInInitcodeToExistingContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc605c5a5aed700f9a860c312d674957fadc7f8bb8eba731e354c955a5b560abc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x75cab413f0e28fa5f089e9717bd2b0a83f696b9b2f4d7b29bacb88089627b436", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd87bd102ecdc321d465c120f8ab1b7879c76ff2ea668a30e654d54980990e815", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa71b08f56ca855abe5d005ca76d485d33f504e1ab287fce444a7a2b981ca0bf7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x75cab413f0e28fa5f089e9717bd2b0a83f696b9b2f4d7b29bacb88089627b436", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x01", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x1000000000000000000000000000000000000000", + "0x02" : "0x01", + "0x0b" : "0x1000000000000000000000000000000000000000" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x2710", - "code" : "0x7f604060006040600073945304eb96065b2a98b57a48a06ae28d285a71b56201866000527fa0f4600055336001550000000000000000000000000000000000000000000000602052604060006001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "10000", + "code" : "{ (MSTORE 0 0x604060006040600073945304eb96065b2a98b57a48a06ae28d285a71b5620186) (MSTORE 32 0xa0f4600055336001550000000000000000000000000000000000000000000000) (CREATE 1 0 64) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x03e8", - "code" : "0x6460016000556000526005601b6001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000", + "code" : "{ (MSTORE 0 0x6001600055) (CREATE 1 27 5) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x00", - "code" : "0x600160025533600b55", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) [[ 11 ]] (CALLER) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2386f26fc10000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +86,14 @@ "" ], "gasLimit" : [ - "0x06e9d9" + "453081" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallInInitcodeToExistingContractOOG.json b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallInInitcodeToExistingContractOOG.json index 1eb380b48..8720be560 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallInInitcodeToExistingContractOOG.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallInInitcodeToExistingContractOOG.json @@ -2,88 +2,69 @@ "delegatecallInInitcodeToExistingContractOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/delegatecallInInitcodeToExistingContractOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1e065699c57a6069c9e414c1d2d48e5b844e0dcba2ca115346fdce55e390eea0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x403001f1fecf0f1933d3e75932c1a47e82e9771f7384c0b5e8cc4f8fa69d51b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xeaab62f1092ba56b88d26964035cfb32a8f8ecc0324e3055e54eb3c3c656c2ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xeaab62f1092ba56b88d26964035cfb32a8f8ecc0324e3055e54eb3c3c656c2ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x403001f1fecf0f1933d3e75932c1a47e82e9771f7384c0b5e8cc4f8fa69d51b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x2710", - "code" : "0x7f604060006040600073945304eb96065b2a98b57a48a06ae28d285a71b56201866000527fa0f4600a5533600b550000000000000000000000000000000000000000000000602052604060006005f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "10000", + "code" : "{ (MSTORE 0 0x604060006040600073945304eb96065b2a98b57a48a06ae28d285a71b5620186) (MSTORE 32 0xa0f4600a5533600b550000000000000000000000000000000000000000000000) (CREATE 5 0 64) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x00", - "code" : "0x6001600255", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2386f26fc10000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +74,14 @@ "" ], "gasLimit" : [ - "0x025608" + "153096" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallOOGinCall.json b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallOOGinCall.json index f4c3fa4fe..157ff19c0 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallOOGinCall.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallOOGinCall.json @@ -2,88 +2,92 @@ "delegatecallOOGinCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/delegatecallOOGinCallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x97f7583d78c8460de11a3d242e60cec9e4c5102a4dd716b7c349affa46dc5fbd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x97f7583d78c8460de11a3d242e60cec9e4c5102a4dd716b7c349affa46dc5fbd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8782ba71653982d5b1499fc3925f998a296935f2b93532ced17a11995e7470f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xea679add7136ceac29a5959418b80efbf9a2bc06180ba11f4c86ee879873b71e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x97f7583d78c8460de11a3d242e60cec9e4c5102a4dd716b7c349affa46dc5fbd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", - "code" : "0x6001600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b5612710f401600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "100000", + "code" : "{ [[ 0 ]] (ADD (DELEGATECALL 10000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0 ) 1) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +97,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallSenderCheck.json b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallSenderCheck.json index c424e3327..4352d1625 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallSenderCheck.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallSenderCheck.json @@ -2,88 +2,74 @@ "delegatecallSenderCheck" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/delegatecallSenderCheckFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3ee3def6faec0d2b15492365eb1b13e698028761b972eecb90debc5f4fca1b8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x3ee3def6faec0d2b15492365eb1b13e698028761b972eecb90debc5f4fca1b8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x79e93486f433ce20789892e86732ea1b82da98e95e3106a4e230d7375bf8ce78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xff3106c25f8522d36427351cfe036b0de9c6a31fb1dc11369330263b8bb8671d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3ee3def6faec0d2b15492365eb1b13e698028761b972eecb90debc5f4fca1b8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600260006040600073945304eb96065b2a98b57a48a06ae28d285a71b56207a120f4600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 500000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x33600155", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{[[ 1 ]] (CALLER)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +79,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallValueCheck.json b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallValueCheck.json index 027f0d5ba..1833319ad 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/delegatecallValueCheck.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/delegatecallValueCheck.json @@ -2,88 +2,74 @@ "delegatecallValueCheck" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/delegatecallValueCheckFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x14122ff01c9fbf8e582d0f8e8b334179bc3cbb23eaa4b8a110fd68f1b837c2da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x14122ff01c9fbf8e582d0f8e8b334179bc3cbb23eaa4b8a110fd68f1b837c2da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2e53a8d0a33187907d3212bcf073019c5fd52c265eb1dacc1bdafd0523319fa3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbbfbd005f26707e3c305c91bce59be351d4364f047e8207a352a312a9ebfd474", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x14122ff01c9fbf8e582d0f8e8b334179bc3cbb23eaa4b8a110fd68f1b837c2da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x17" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600260006040600073945304eb96065b2a98b57a48a06ae28d285a71b56207a120f4600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 500000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x34600155", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{[[ 1 ]] (CALLVALUE) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +79,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x17" + "23" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/delegatecodeDynamicCode.json b/GeneralStateTests/stDelegatecallTestHomestead/delegatecodeDynamicCode.json index d1994574b..adc6aed96 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/delegatecodeDynamicCode.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/delegatecodeDynamicCode.json @@ -2,81 +2,125 @@ "delegatecodeDynamicCode" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/delegatecodeDynamicCodeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x34616e4bebbecdb2ee6df873d01dc9cae9c8df6ada0f82a771bdbb263a45fabd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "0xffe4ebd2a68c02d9dcb0a17283d13346beb2d8b6" : { + "shouldnotexist" : "1" + }, + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xd43ad6ed360b96eed203341e247d9b966de5023edeea7f56faeeca0599c19dee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2c22ecfb190e74da4016ed037b12bc3c03567d4d0c0dbd1072a0f328dbd133ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "0xffe4ebd2a68c02d9dcb0a17283d13346beb2d8b6" : { + "balance" : "0x01" + }, + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x0a" : "0xffe4ebd2a68c02d9dcb0a17283d13346beb2d8b6", + "0x0b" : "0x01", + "0x14" : "0x1000000000000000000000000000000000000000" + } } } - ], - "Homestead" : [ - { - "hash" : "0xc1fec9297af842876aa7b3fdc2fc0ba3cd149ce001258d23dcfe76480b8af925", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "0xffe4ebd2a68c02d9dcb0a17283d13346beb2d8b6" : { + "shouldnotexist" : "1" + }, + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x0a" : "0x568a95f77b047bece6aa68843d2019332c46a585", + "0x0b" : "0x01", + "0x14" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xd43ad6ed360b96eed203341e247d9b966de5023edeea7f56faeeca0599c19dee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "0xffe4ebd2a68c02d9dcb0a17283d13346beb2d8b6" : { + "balance" : "0x01", + "code" : "0x600160005533601455", + "nonce" : "0x00", + "storage" : { + } + }, + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x0a" : "0xffe4ebd2a68c02d9dcb0a17283d13346beb2d8b6", + "0x0b" : "0x01", + "0x14" : "0x1000000000000000000000000000000000000000" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x2710", - "code" : "0x7f716860016000553360145560005260096017f36000526012600e6001f0600a556000527f604060006040600073ffe4ebd2a68c02d9dcb0a17283d13346beb2d8b66201866020527fa0f4600b55000000000000000000000000000000000000000000000000000000604052606060006001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "10000", + "code" : "{ (MSTORE 0 0x716860016000553360145560005260096017f36000526012600e6001f0600a55) (MSTORE 32 0x604060006040600073ffe4ebd2a68c02d9dcb0a17283d13346beb2d8b6620186) (MSTORE 64 0xa0f4600b55000000000000000000000000000000000000000000000000000000) (CREATE 1 0 96) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2386f26fc10000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +130,14 @@ "" ], "gasLimit" : [ - "0x06e9d9" + "453081" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stDelegatecallTestHomestead/delegatecodeDynamicCode2SelfCall.json b/GeneralStateTests/stDelegatecallTestHomestead/delegatecodeDynamicCode2SelfCall.json index 7dacca187..7711377c6 100644 --- a/GeneralStateTests/stDelegatecallTestHomestead/delegatecodeDynamicCode2SelfCall.json +++ b/GeneralStateTests/stDelegatecallTestHomestead/delegatecodeDynamicCode2SelfCall.json @@ -2,81 +2,65 @@ "delegatecodeDynamicCode2SelfCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stDelegatecallTestHomestead/delegatecodeDynamicCode2SelfCallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2771f7c6dc351bc4d63081a5b17d3db73cbc82d66257d11b07bd0893c69a1013", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xc493cd7d3b0bee68dfcd27c0b98ac21cf7df2237d58cdb6c6e5b8143f31e8cee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x019c584e05bc713b729b4f8f297a1b15c3ed2acbc5f13961fad470b0d2c7ce54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x89ae3fb825e0f39499e54ecd90b9caafe8fafba9fb1c2d17a6a0d112851053f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc493cd7d3b0bee68dfcd27c0b98ac21cf7df2237d58cdb6c6e5b8143f31e8cee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "balance" : "0x01", + "storage" : { + "0x0b" : "0x01", + "0x0c" : "0x1000000000000000000000000000000000000000" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x10c8e0", - "code" : "0x7f60406000604060007313136008b64ff592819b2fa6d43f2835c452020e6201866000527fa0f4600b5533600c550000000000000000000000000000000000000000000000602052604060006001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1100000", + "code" : " {(MSTORE 0 0x60406000604060007313136008b64ff592819b2fa6d43f2835c452020e620186) (MSTORE 32 0xa0f4600b5533600c550000000000000000000000000000000000000000000000) \t\t\t\t (CREATE 1 0 64) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2386f26fc10000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +70,14 @@ "" ], "gasLimit" : [ - "0x06e9d9" + "453081" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stEIP150Specific/CallAndCallcodeConsumeMoreGasThenTransactionHas.json b/GeneralStateTests/stEIP150Specific/CallAndCallcodeConsumeMoreGasThenTransactionHas.json index 06facbe1c..c0ae17aba 100644 --- a/GeneralStateTests/stEIP150Specific/CallAndCallcodeConsumeMoreGasThenTransactionHas.json +++ b/GeneralStateTests/stEIP150Specific/CallAndCallcodeConsumeMoreGasThenTransactionHas.json @@ -2,88 +2,80 @@ "CallAndCallcodeConsumeMoreGasThenTransactionHas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe07824c59862157c8bf611662ba4c741fb14bbb207765ca6c089a3161c90e786", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x08" : "0x08d5b6", + "0x09" : "0x01", + "0x0a" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe07824c59862157c8bf611662ba4c741fb14bbb207765ca6c089a3161c90e786", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x492c80701f532eb73ec68a36db0cf88136e6674d58dbabcb4ddba0949fc62acd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x492c80701f532eb73ec68a36db0cf88136e6674d58dbabcb4ddba0949fc62acd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe07824c59862157c8bf611662ba4c741fb14bbb207765ca6c089a3161c90e786", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x08" : "0", + "0x09" : "0", + "0x0a" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000103" : { - "balance" : "0x00", - "code" : "0x6012600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000103" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x12) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a60085560006000600060006000731000000000000000000000000000000000000103620927c0f160095560006000600060006000731000000000000000000000000000000000000103620927c0f2600a55", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 600000 0x1000000000000000000000000000000000000103 0 0 0 0 0)) (SSTORE 10 (CALLCODE 600000 0x1000000000000000000000000000000000000103 0 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } } @@ -93,14 +85,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150Specific/CallAskMoreGasOnDepth2ThenTransactionHas.json b/GeneralStateTests/stEIP150Specific/CallAskMoreGasOnDepth2ThenTransactionHas.json index e86596c18..4f8797c18 100644 --- a/GeneralStateTests/stEIP150Specific/CallAskMoreGasOnDepth2ThenTransactionHas.json +++ b/GeneralStateTests/stEIP150Specific/CallAskMoreGasOnDepth2ThenTransactionHas.json @@ -2,95 +2,93 @@ "CallAskMoreGasOnDepth2ThenTransactionHas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/CallAskMoreGasOnDepth2ThenTransactionHasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xee81a2e65faf354a854a80b05a1cbe6ba6c4889c8904cef51fe58fe6b597ebd4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000107" : { + "storage" : { + "0x08" : "0x030d3e", + "0x09" : "0x01" + } + }, + "1000000000000000000000000000000000000108" : { + "storage" : { + "0x08" : "0x02b157" + } } } - ], - "EIP158" : [ - { - "hash" : "0xee81a2e65faf354a854a80b05a1cbe6ba6c4889c8904cef51fe58fe6b597ebd4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5c710e203f3b6994d828244ef8e1c0eeb7d81a697e0c530ea8a393819f78a979", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5c710e203f3b6994d828244ef8e1c0eeb7d81a697e0c530ea8a393819f78a979", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xee81a2e65faf354a854a80b05a1cbe6ba6c4889c8904cef51fe58fe6b597ebd4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000107" : { + "storage" : { + "0x08" : "0", + "0x09" : "0" + } + }, + "1000000000000000000000000000000000000108" : { + "storage" : { + "0x08" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000107" : { - "balance" : "0x00", - "code" : "0x5a60085560006000600060006000731000000000000000000000000000000000000108620927c0f1600955", - "nonce" : "0x00", + "1000000000000000000000000000000000000107" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 600000 0x1000000000000000000000000000000000000108 0 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000108" : { - "balance" : "0x00", - "code" : "0x5a600855", - "nonce" : "0x00", + "1000000000000000000000000000000000000108" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS))} ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6008556000600060006000600073100000000000000000000000000000000000010762030d40f1600955", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 200000 0x1000000000000000000000000000000000000107 0 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } } @@ -100,14 +98,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150Specific/CallGoesOOGOnSecondLevel.json b/GeneralStateTests/stEIP150Specific/CallGoesOOGOnSecondLevel.json index a221a07f7..5f65d3aca 100644 --- a/GeneralStateTests/stEIP150Specific/CallGoesOOGOnSecondLevel.json +++ b/GeneralStateTests/stEIP150Specific/CallGoesOOGOnSecondLevel.json @@ -2,95 +2,95 @@ "CallGoesOOGOnSecondLevel" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/CallGoesOOGOnSecondLevelFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xefa25a148e3c0182c26ed417bf44ed027fc73297a668655d82e61053866e5043", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000110" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000111" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xefa25a148e3c0182c26ed417bf44ed027fc73297a668655d82e61053866e5043", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xefa25a148e3c0182c26ed417bf44ed027fc73297a668655d82e61053866e5043", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xefa25a148e3c0182c26ed417bf44ed027fc73297a668655d82e61053866e5043", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xefa25a148e3c0182c26ed417bf44ed027fc73297a668655d82e61053866e5043", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000110" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000111" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000110" : { - "balance" : "0x00", - "code" : "0x5a60085560006000600060006000731000000000000000000000000000000000000111620927c0f1600955", - "nonce" : "0x00", + "1000000000000000000000000000000000000110" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 600000 0x1000000000000000000000000000000000000111 0 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000111" : { - "balance" : "0x00", - "code" : "0x5a600855600060006000f050600060006000f0505a6009555a600a55", - "nonce" : "0x00", + "1000000000000000000000000000000000000111" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (CREATE 0 0 0) (CREATE 0 0 0) (SSTORE 9 (GAS)) (SSTORE 10 (GAS)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a60085560006000600060006000731000000000000000000000000000000000000110620927c0f1600955", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 600000 0x1000000000000000000000000000000000000110 0 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } } @@ -100,14 +100,14 @@ "" ], "gasLimit" : [ - "0x035b60" + "220000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150Specific/CallGoesOOGOnSecondLevel2.json b/GeneralStateTests/stEIP150Specific/CallGoesOOGOnSecondLevel2.json index c8c0c87ea..3927e62d6 100644 --- a/GeneralStateTests/stEIP150Specific/CallGoesOOGOnSecondLevel2.json +++ b/GeneralStateTests/stEIP150Specific/CallGoesOOGOnSecondLevel2.json @@ -2,95 +2,95 @@ "CallGoesOOGOnSecondLevel2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/CallGoesOOGOnSecondLevel2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xce9eb695d33e2a0421b7c83dc50126010f662cfcab1c6cf971fc22d33e58ed49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000113" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000114" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xce9eb695d33e2a0421b7c83dc50126010f662cfcab1c6cf971fc22d33e58ed49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xce9eb695d33e2a0421b7c83dc50126010f662cfcab1c6cf971fc22d33e58ed49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xce9eb695d33e2a0421b7c83dc50126010f662cfcab1c6cf971fc22d33e58ed49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xce9eb695d33e2a0421b7c83dc50126010f662cfcab1c6cf971fc22d33e58ed49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000113" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000114" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000113" : { - "balance" : "0x00", - "code" : "0x5a60085560006000600060006000731000000000000000000000000000000000000114620927c0f1600955", - "nonce" : "0x00", + "1000000000000000000000000000000000000113" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 600000 0x1000000000000000000000000000000000000114 0 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000114" : { - "balance" : "0x00", - "code" : "0x5a6008555a6009555a600a55", - "nonce" : "0x00", + "1000000000000000000000000000000000000114" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (GAS)) (SSTORE 10 (GAS)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a60085560006000600060006000731000000000000000000000000000000000000113620927c0f1600955", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (CALL 600000 0x1000000000000000000000000000000000000113 0 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } } @@ -100,14 +100,14 @@ "" ], "gasLimit" : [ - "0x027100" + "160000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150Specific/CreateAndGasInsideCreate.json b/GeneralStateTests/stEIP150Specific/CreateAndGasInsideCreate.json index 512e5f7c2..76c34a29c 100644 --- a/GeneralStateTests/stEIP150Specific/CreateAndGasInsideCreate.json +++ b/GeneralStateTests/stEIP150Specific/CreateAndGasInsideCreate.json @@ -2,81 +2,81 @@ "CreateAndGasInsideCreate" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/CreateAndGasInsideCreateFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3ca082f6185a3019aea75573a032dd81b0e99f7b7f464b1a84e55eae4513baf5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x09" : "0x076e34", + "0x0a" : "0x08d5b6", + "0x0b" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "storage" : { + "0xfd" : "0x07ea53" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4bd8b2a14dc113c65caabef1a52808b711e65ef0eadb38e72a7d0527fbddf1aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0a54e84b6282918bc9e9ec50464ca2edf2e4e3f4ef2ce08fb8660e05b2b0cb02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0a54e84b6282918bc9e9ec50464ca2edf2e4e3f4ef2ce08fb8660e05b2b0cb02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4bd8b2a14dc113c65caabef1a52808b711e65ef0eadb38e72a7d0527fbddf1aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x09" : "0x076e34", + "0x0a" : "0x08d5b6", + "0x0b" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "storage" : { + "0xfd" : "0x080a7c" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600a55635a60fd556000526004601c6000f0600b555a600955", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SSTORE 10 (GAS)) (MSTORE 0 0x5a60fd55) (SSTORE 11 (CREATE 0 28 4)) (SSTORE 9 (GAS)) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +86,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150Specific/DelegateCallOnEIP.json b/GeneralStateTests/stEIP150Specific/DelegateCallOnEIP.json index 859c1fde5..fabbc749a 100644 --- a/GeneralStateTests/stEIP150Specific/DelegateCallOnEIP.json +++ b/GeneralStateTests/stEIP150Specific/DelegateCallOnEIP.json @@ -2,88 +2,78 @@ "DelegateCallOnEIP" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/DelegateCallOnEIPFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xccd9fad58a72db64ef2ed866ed2cef19f77371516bfed7fb06958262be55b9ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x08" : "0x08d5b6", + "0x09" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xccd9fad58a72db64ef2ed866ed2cef19f77371516bfed7fb06958262be55b9ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xba11e0c4133e225a4573c0cfcfe659593f5367809ded272dc41e3822ce25728a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xba11e0c4133e225a4573c0cfcfe659593f5367809ded272dc41e3822ce25728a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xccd9fad58a72db64ef2ed866ed2cef19f77371516bfed7fb06958262be55b9ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x08" : "0", + "0x09" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000105" : { - "balance" : "0x00", - "code" : "0x6012600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000105" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x12) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6008556000600060006000731000000000000000000000000000000000000105620927c0f4600955", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (DELEGATECALL 600000 0x1000000000000000000000000000000000000105 0 0 0 0)) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +83,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150Specific/ExecuteCallThatAskForeGasThenTrabsactionHas.json b/GeneralStateTests/stEIP150Specific/ExecuteCallThatAskForeGasThenTrabsactionHas.json index 779f5b999..0ec6ee4f4 100644 --- a/GeneralStateTests/stEIP150Specific/ExecuteCallThatAskForeGasThenTrabsactionHas.json +++ b/GeneralStateTests/stEIP150Specific/ExecuteCallThatAskForeGasThenTrabsactionHas.json @@ -2,88 +2,74 @@ "ExecuteCallThatAskForeGasThenTrabsactionHas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa306e41ea48a4777ce1ed4032d38cc4c56fd68acb409e69cec7e1315f08bf388", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa306e41ea48a4777ce1ed4032d38cc4c56fd68acb409e69cec7e1315f08bf388", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2ab90cc71d90ed870799ed29d0d2d6e73cf62d99216df95952b4bda626bf6f0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2ab90cc71d90ed870799ed29d0d2d6e73cf62d99216df95952b4bda626bf6f0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa306e41ea48a4777ce1ed4032d38cc4c56fd68acb409e69cec7e1315f08bf388", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0186a0", - "code" : "0x600c600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{ [[1]] 12 }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x60006000600060006000731000000000000000000000000000000000000001620927c0f1600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[1]] (CALL 600000 0x1000000000000000000000000000000000000001 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +79,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150Specific/NewGasPriceForCodes.json b/GeneralStateTests/stEIP150Specific/NewGasPriceForCodes.json index cc4ca7192..d99d7e947 100644 --- a/GeneralStateTests/stEIP150Specific/NewGasPriceForCodes.json +++ b/GeneralStateTests/stEIP150Specific/NewGasPriceForCodes.json @@ -2,95 +2,145 @@ "NewGasPriceForCodes" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/NewGasPriceForCodesFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x58530241bc470bb693bf79333ecdb9561a65cad9a5e2717df5e9d2e252ed111e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0x20", + "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", + "0x03" : "0xe8d49be840", + "0x04" : "0x12", + "0x07" : "0x01", + "0x08" : "0x01", + "0x0a" : "0x05e276", + "0x64" : "0x11" + } } } - ], - "EIP158" : [ - { - "hash" : "0x717eb439457deec8adb3980be18a1e4a5950a316b9612e18f487180b123cf1a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd6bfa0493ca6ab0b2dcf421757ba5c36fe8f4ee93b09f447c735404a063c77a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0x20", + "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", + "0x03" : "0xe8d49be840", + "0x04" : "0x12", + "0x07" : "0x01", + "0x08" : "0x01", + "0x0a" : "0x06441e", + "0x64" : "0x11" + } } } - ], - "Homestead" : [ - { - "hash" : "0xeaa47f6fe617ab6ca6fea56adfda649114ec8d4997aa586e5ee23517697db10b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0", + "0x02" : "0", + "0x03" : "0", + "0x04" : "0", + "0x07" : "0", + "0x08" : "0", + "0x0a" : "0", + "0x64" : "0" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x717eb439457deec8adb3980be18a1e4a5950a316b9612e18f487180b123cf1a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0x20", + "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", + "0x03" : "0xe8d49be840", + "0x04" : "0x12", + "0x07" : "0x01", + "0x08" : "0x01", + "0x0a" : "0x05f428", + "0x64" : "0x11" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000010" : { - "balance" : "0x6f", + "1000000000000000000000000000000000000010" : { + "balance" : "111", "code" : "0x1122334455667788991011121314151617181920212223242526272829303132", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000011" : { - "balance" : "0x00", - "code" : "0x6011606455", - "nonce" : "0x00", + "1000000000000000000000000000000000000011" : { + "balance" : "0", + "code" : "{ (SSTORE 100 0x11) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x7310000000000000000000000000000000000000103b6001556014600060007310000000000000000000000000000000000000103c60005160025560005460045560006000600060006001731000000000000000000000000000000000000011617530f160055560006000600060006001731000000000000000000000000000000000000011617530f26006556000600060006000731000000000000000000000000000000000000011617530f460075560006000600060006000731000000000000000000000000000000000000013617530f160085573a94f5374fce5edbc8e2a8697c15331677e6ebf0b316003555a600a55", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SSTORE 1 (EXTCODESIZE 0x1000000000000000000000000000000000000010)) (EXTCODECOPY 0x1000000000000000000000000000000000000010 0 0 20) (SSTORE 2 (MLOAD 0)) (SSTORE 4 (SLOAD 0)) (SSTORE 5 (CALL 30000 0x1000000000000000000000000000000000000011 1 0 0 0 0)) (SSTORE 6 (CALLCODE 30000 0x1000000000000000000000000000000000000011 1 0 0 0 0)) (SSTORE 7 (DELEGATECALL 30000 0x1000000000000000000000000000000000000011 0 0 0 0)) (SSTORE 8 (CALL 30000 0x1000000000000000000000000000000000000013 0 0 0 0 0)) (SSTORE 3 (BALANCE 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b)) (SSTORE 10 (GAS)) }", + "nonce" : "0", "storage" : { "0x00" : "0x12" } @@ -101,14 +151,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150Specific/SuicideToExistingContract.json b/GeneralStateTests/stEIP150Specific/SuicideToExistingContract.json index 03a61028b..628c51d3d 100644 --- a/GeneralStateTests/stEIP150Specific/SuicideToExistingContract.json +++ b/GeneralStateTests/stEIP150Specific/SuicideToExistingContract.json @@ -2,88 +2,80 @@ "SuicideToExistingContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/SuicideToExistingContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7f124d7f842eeeebc6889a06e0ad72ff0eb1ef804ee0254a6b3810b82eac0ddc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000118" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x08bf58" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7f124d7f842eeeebc6889a06e0ad72ff0eb1ef804ee0254a6b3810b82eac0ddc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x763d607a4cdc3b051ec38ee7163e301a0924d81abbc516930e5bc1eee311b000", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x763d607a4cdc3b051ec38ee7163e301a0924d81abbc516930e5bc1eee311b000", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7f124d7f842eeeebc6889a06e0ad72ff0eb1ef804ee0254a6b3810b82eac0ddc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000118" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x08d574" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000118" : { - "balance" : "0x00", - "code" : "0x73b94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "1000000000000000000000000000000000000118" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600073100000000000000000000000000000000000011861ea60f1505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (CALL 60000 0x1000000000000000000000000000000000000118 0 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +85,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150Specific/SuicideToNotExistingContract.json b/GeneralStateTests/stEIP150Specific/SuicideToNotExistingContract.json index e0455b183..e348d2f3a 100644 --- a/GeneralStateTests/stEIP150Specific/SuicideToNotExistingContract.json +++ b/GeneralStateTests/stEIP150Specific/SuicideToNotExistingContract.json @@ -2,88 +2,99 @@ "SuicideToNotExistingContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/SuicideToNotExistingContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb58c2baf17ec8ec989abfb6056bae2e5afe08d1bce5fc64039faba8e86f4fdd6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000116" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x085db0" + } } } - ], - "EIP158" : [ - { - "hash" : "0xce5fed1d914f20ec2be902b0c6eaffdb5c0cc0740d5eb6ea7ba96a9e62806fe7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x048a1a4296c851fa94efb1fd2b94b50f2e48ed2d4311dbe65e84e3f7f443f0ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x048a1a4296c851fa94efb1fd2b94b50f2e48ed2d4311dbe65e84e3f7f443f0ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000116" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x08bf58" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xce5fed1d914f20ec2be902b0c6eaffdb5c0cc0740d5eb6ea7ba96a9e62806fe7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000116" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x08d574" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000116" : { - "balance" : "0x00", - "code" : "0x732000000000000000000000000000000000000115ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000116" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0x2000000000000000000000000000000000000115) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600073100000000000000000000000000000000000011661ea60f1505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (CALL 60000 0x1000000000000000000000000000000000000116 0 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +104,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150Specific/Transaction64Rule_d64e0.json b/GeneralStateTests/stEIP150Specific/Transaction64Rule_d64e0.json index ffd369ce2..f2d334ef3 100644 --- a/GeneralStateTests/stEIP150Specific/Transaction64Rule_d64e0.json +++ b/GeneralStateTests/stEIP150Specific/Transaction64Rule_d64e0.json @@ -2,88 +2,86 @@ "Transaction64Rule_d64e0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/Transaction64Rule_d64e0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x300197205e17725d24ac15faf4b0a5703ca5a20900072391433f474fc6b0bdde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0x0c" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x021f34", + "0x02" : "0x018016" + } } } - ], - "EIP158" : [ - { - "hash" : "0x300197205e17725d24ac15faf4b0a5703ca5a20900072391433f474fc6b0bdde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0dd4965ee43d67558de611542f84ea9b0bfebeb3ba0ac08dac3a113a2d1be693", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0dd4965ee43d67558de611542f84ea9b0bfebeb3ba0ac08dac3a113a2d1be693", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x300197205e17725d24ac15faf4b0a5703ca5a20900072391433f474fc6b0bdde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x02" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000118" : { - "balance" : "0x00", - "code" : "0x600c600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000118" : { + "balance" : "0", + "code" : "{ [[1]] 12 }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073100000000000000000000000000000000000011862027100f1505a600255", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALL 160000 0x1000000000000000000000000000000000000118 0 0 0 0 0) [[2]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x02713e" + "160062" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150Specific/Transaction64Rule_d64m1.json b/GeneralStateTests/stEIP150Specific/Transaction64Rule_d64m1.json index 98cb66b2f..37208e6ad 100644 --- a/GeneralStateTests/stEIP150Specific/Transaction64Rule_d64m1.json +++ b/GeneralStateTests/stEIP150Specific/Transaction64Rule_d64m1.json @@ -2,88 +2,86 @@ "Transaction64Rule_d64m1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/Transaction64Rule_d64m1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7740dccc6594212bcd6b8cf509e183942d0f57059debd89fc73e5342f4ffa3e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0x0c" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x021f33", + "0x02" : "0x018015" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7740dccc6594212bcd6b8cf509e183942d0f57059debd89fc73e5342f4ffa3e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0d82c218e524c5acb7df66a7272be03c127fa60032e82dc6e0b6d1cd0b471bb8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0d82c218e524c5acb7df66a7272be03c127fa60032e82dc6e0b6d1cd0b471bb8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7740dccc6594212bcd6b8cf509e183942d0f57059debd89fc73e5342f4ffa3e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x02" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000118" : { - "balance" : "0x00", - "code" : "0x600c600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000118" : { + "balance" : "0", + "code" : "{ [[1]] 12 }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073100000000000000000000000000000000000011862027100f1505a600255", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALL 160000 0x1000000000000000000000000000000000000118 0 0 0 0 0) [[2]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x02713d" + "160061" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150Specific/Transaction64Rule_d64p1.json b/GeneralStateTests/stEIP150Specific/Transaction64Rule_d64p1.json index 5ab733202..0053b1442 100644 --- a/GeneralStateTests/stEIP150Specific/Transaction64Rule_d64p1.json +++ b/GeneralStateTests/stEIP150Specific/Transaction64Rule_d64p1.json @@ -2,88 +2,86 @@ "Transaction64Rule_d64p1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150Specific/Transaction64Rule_d64p1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc1fee512043ed639ec2ecb9c28eb25c50e5ab267b612e2c376d1dec2f7f7c53e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0x0c" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x021f35", + "0x02" : "0x018017" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc1fee512043ed639ec2ecb9c28eb25c50e5ab267b612e2c376d1dec2f7f7c53e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6d41678dd6a40efd6de0e8f748d863ce6887335dda01bd7c4eb5e443ea47bc3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6d41678dd6a40efd6de0e8f748d863ce6887335dda01bd7c4eb5e443ea47bc3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc1fee512043ed639ec2ecb9c28eb25c50e5ab267b612e2c376d1dec2f7f7c53e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000118" : { + "storage" : { + "0x01" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x02" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000118" : { - "balance" : "0x00", - "code" : "0x600c600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000118" : { + "balance" : "0", + "code" : "{ [[1]] 12 }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073100000000000000000000000000000000000011862027100f1505a600255", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALL 160000 0x1000000000000000000000000000000000000118 0 0 0 0 0) [[2]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x02713f" + "160063" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawBalanceGas.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawBalanceGas.json index 75bd87e15..a1e87b59d 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawBalanceGas.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawBalanceGas.json @@ -2,81 +2,69 @@ "RawBalanceGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawBalanceGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x78616469907b7fd3a5c3cece8f532ed97e1e21c043cd894ca4e1b651001aaf40", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x088791" + } } } - ], - "EIP158" : [ - { - "hash" : "0x78616469907b7fd3a5c3cece8f532ed97e1e21c043cd894ca4e1b651001aaf40", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x78616469907b7fd3a5c3cece8f532ed97e1e21c043cd894ca4e1b651001aaf40", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x78616469907b7fd3a5c3cece8f532ed97e1e21c043cd894ca4e1b651001aaf40", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x78616469907b7fd3a5c3cece8f532ed97e1e21c043cd894ca4e1b651001aaf40", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x088791" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000555a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (BALANCE 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +74,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGas.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGas.json index 1f3aeaf62..da6c41e80 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGas.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGas.json @@ -2,88 +2,108 @@ "RawCallCodeGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallCodeGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa9de43f50361bb52e8383e5018e5bbfd8160c40073af31c8803653f062752f73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06aff9", + "0x02" : "0x752e" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa9de43f50361bb52e8383e5018e5bbfd8160c40073af31c8803653f062752f73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x436e92e96d0098ec2950e7e748d41b646f6156a57c140a001ca5ad0e0fb344c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x436e92e96d0098ec2950e7e748d41b646f6156a57c140a001ca5ad0e0fb344c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06b28d", + "0x02" : "0x0752e" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xa9de43f50361bb52e8383e5018e5bbfd8160c40073af31c8803653f062752f73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06b28d", + "0x02" : "0x752e" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b617530f2505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALLCODE 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +113,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasAsk.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasAsk.json index 4eff7eb33..888e2c918 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasAsk.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasAsk.json @@ -2,88 +2,86 @@ "RawCallCodeGasAsk" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallCodeGasAskFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1b60ec8d034bb388ac3b901653c64f17b9cc255612599a25f0568e2d26a03396", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06aff9", + "0x02" : "0x06e228" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1b60ec8d034bb388ac3b901653c64f17b9cc255612599a25f0568e2d26a03396", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa3955a3f904c97066bd8999d4f24870bc4570c6a4be430bc1facc169f00cfe65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa3955a3f904c97066bd8999d4f24870bc4570c6a4be430bc1facc169f00cfe65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1b60ec8d034bb388ac3b901653c64f17b9cc255612599a25f0568e2d26a03396", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x02" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b622dc6c0f2505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALLCODE 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasMemory.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasMemory.json index 2821bf20a..21ed73f7f 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasMemory.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasMemory.json @@ -2,88 +2,86 @@ "RawCallCodeGasMemory" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallCodeGasMemoryFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbe24131f3cacd61852065ce4e951e44f21e09faf5592e19e9a154b9689b5d903", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06ac91", + "0x02" : "0x752e" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbe24131f3cacd61852065ce4e951e44f21e09faf5592e19e9a154b9689b5d903", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x25a1d6dffd60c9ff124f52b4d208e4977c55ff7b0556c92c3bc1aec273966268", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x25a1d6dffd60c9ff124f52b4d208e4977c55ff7b0556c92c3bc1aec273966268", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbe24131f3cacd61852065ce4e951e44f21e09faf5592e19e9a154b9689b5d903", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06af25", + "0x02" : "0x752e" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f406000611f406000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b617530f2505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALLCODE 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 8000 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasMemoryAsk.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasMemoryAsk.json index b05ea8052..9ba28d682 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasMemoryAsk.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasMemoryAsk.json @@ -2,88 +2,86 @@ "RawCallCodeGasMemoryAsk" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallCodeGasMemoryAskFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf9c6b537196e490df5ffde1c93010be0f221e107d87a5bcffb6ef8a3e4e716c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06ac91", + "0x02" : "0x06dece" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf9c6b537196e490df5ffde1c93010be0f221e107d87a5bcffb6ef8a3e4e716c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x266e3b403ae2a5f7158a91249c08b3e6fd267085ba4aab04bcac6eae2c34925b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x266e3b403ae2a5f7158a91249c08b3e6fd267085ba4aab04bcac6eae2c34925b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf9c6b537196e490df5ffde1c93010be0f221e107d87a5bcffb6ef8a3e4e716c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x02" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f406000611f406000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b622dc6c0f2505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALLCODE 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 8000 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransfer.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransfer.json index 5758b5706..cc833544d 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransfer.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransfer.json @@ -2,88 +2,86 @@ "RawCallCodeGasValueTransfer" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x81986bcc6162211f6bdf1e898413b97be5595607d67c4a6b6d1e6dfb6e625cb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0695cd", + "0x02" : "0x7e2a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x81986bcc6162211f6bdf1e898413b97be5595607d67c4a6b6d1e6dfb6e625cb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x026291c5288f263f79d5df5ff4cf7f76493758a6e5af0e2adbcdc3417a65a88d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x026291c5288f263f79d5df5ff4cf7f76493758a6e5af0e2adbcdc3417a65a88d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x81986bcc6162211f6bdf1e898413b97be5595607d67c4a6b6d1e6dfb6e625cb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x069861", + "0x02" : "0x7e2a" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600a73094f5374fce5edbc8e2a8697c15331677e6ebf0b617530f2505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALLCODE 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferAsk.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferAsk.json index 6021e9ba1..6c7338e78 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferAsk.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferAsk.json @@ -2,88 +2,86 @@ "RawCallCodeGasValueTransferAsk" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferAskFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x77966e6d1d7092b2a0265eae154775b15ad90b4b12853657961fc7ad67413fd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0695cd", + "0x02" : "0x06c889" + } } } - ], - "EIP158" : [ - { - "hash" : "0x77966e6d1d7092b2a0265eae154775b15ad90b4b12853657961fc7ad67413fd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xae6d57a264af762cf603b673d22bb14697901f3f99f79af0528afca7ed41c650", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xae6d57a264af762cf603b673d22bb14697901f3f99f79af0528afca7ed41c650", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x77966e6d1d7092b2a0265eae154775b15ad90b4b12853657961fc7ad67413fd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x02" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600a73094f5374fce5edbc8e2a8697c15331677e6ebf0b622dc6c0f2505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALLCODE 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferMemory.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferMemory.json index f5ad5156f..aa95dcd2f 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferMemory.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferMemory.json @@ -2,88 +2,86 @@ "RawCallCodeGasValueTransferMemory" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferMemoryFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x352c2b4f6d8c2b94575e87a102660501a4dcc77ceff28a1b9a1e71b8daeec53f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x069265", + "0x02" : "0x7e2a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x352c2b4f6d8c2b94575e87a102660501a4dcc77ceff28a1b9a1e71b8daeec53f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xed8dc1a5d3a2a2a298b8e6906b8e3daa16b9e4c0cebc22b48ce4699739cf07be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xed8dc1a5d3a2a2a298b8e6906b8e3daa16b9e4c0cebc22b48ce4699739cf07be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x352c2b4f6d8c2b94575e87a102660501a4dcc77ceff28a1b9a1e71b8daeec53f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0694f9", + "0x02" : "0x7e2a" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f406000611f406000600a73094f5374fce5edbc8e2a8697c15331677e6ebf0b617530f2505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALLCODE 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 8000 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferMemoryAsk.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferMemoryAsk.json index b32d0ca3c..c6c0aec60 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferMemoryAsk.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferMemoryAsk.json @@ -2,88 +2,86 @@ "RawCallCodeGasValueTransferMemoryAsk" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallCodeGasValueTransferMemoryAskFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x42fd1ee6696ceec53bccbefc5566dd46bc126b8347a86b242603cf016d7fa105", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x069265", + "0x02" : "0x06c52e" + } } } - ], - "EIP158" : [ - { - "hash" : "0x42fd1ee6696ceec53bccbefc5566dd46bc126b8347a86b242603cf016d7fa105", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x55ce044177361ed520bee5fcf11c37416ab57bd929f02760f3d3e715d1b72729", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x55ce044177361ed520bee5fcf11c37416ab57bd929f02760f3d3e715d1b72729", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x42fd1ee6696ceec53bccbefc5566dd46bc126b8347a86b242603cf016d7fa105", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x02" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f406000611f406000600a73094f5374fce5edbc8e2a8697c15331677e6ebf0b622dc6c0f2505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALLCODE 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 8000 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGas.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGas.json index 321cd8fb5..e630f99ba 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGas.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGas.json @@ -2,88 +2,86 @@ "RawCallGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6a3f5d5a1e41b13f138b96f1dd5a2c16151eb5846d1e11ae922f181c891e391d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x752e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06aff9" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6a3f5d5a1e41b13f138b96f1dd5a2c16151eb5846d1e11ae922f181c891e391d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2f373b8f988e05aca842b2731a5c229cbf67485ef92f564c51a793ed93ce6a86", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2f373b8f988e05aca842b2731a5c229cbf67485ef92f564c51a793ed93ce6a86", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6a3f5d5a1e41b13f138b96f1dd5a2c16151eb5846d1e11ae922f181c891e391d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x752e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06b28d" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b617530f1505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasAsk.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasAsk.json index 1e20ec531..f751e783c 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasAsk.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasAsk.json @@ -2,88 +2,86 @@ "RawCallGasAsk" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallGasAskFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9e524b1079059232d58d268ea909257fcd4b43dd00fc4cb7fdcc329e161710f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x06e228" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06aff9" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9e524b1079059232d58d268ea909257fcd4b43dd00fc4cb7fdcc329e161710f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x84bb30ba0337cdb822deb5dae3195e4e33e7f075ef2bb4e7c369f730ba563b6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x84bb30ba0337cdb822deb5dae3195e4e33e7f075ef2bb4e7c369f730ba563b6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9e524b1079059232d58d268ea909257fcd4b43dd00fc4cb7fdcc329e161710f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b622dc6c0f1505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransfer.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransfer.json index 8eb1dd404..ec11e4bd9 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransfer.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransfer.json @@ -2,88 +2,86 @@ "RawCallGasValueTransfer" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallGasValueTransferFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x53743363119daa3545155fb6e66499d142f4e88b839bc1fc96ccdc3bdccd51c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x7e2a" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0695cd" + } } } - ], - "EIP158" : [ - { - "hash" : "0x53743363119daa3545155fb6e66499d142f4e88b839bc1fc96ccdc3bdccd51c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x319c877894cd436e6eaeee70679efa83272bdd1b9841b02715b512b53cbff3b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x319c877894cd436e6eaeee70679efa83272bdd1b9841b02715b512b53cbff3b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x53743363119daa3545155fb6e66499d142f4e88b839bc1fc96ccdc3bdccd51c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x7e2a" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x069861" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600a73094f5374fce5edbc8e2a8697c15331677e6ebf0b617530f1505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransferAsk.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransferAsk.json index affafa0d9..711db6241 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransferAsk.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransferAsk.json @@ -2,88 +2,86 @@ "RawCallGasValueTransferAsk" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallGasValueTransferAskFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7326d3a2e1ab46d6f770874570d83fdec18a132bd8260957d6df2bd0c576b998", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x06c889" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0695cd" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7326d3a2e1ab46d6f770874570d83fdec18a132bd8260957d6df2bd0c576b998", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe0076a602530d15c8ccceafb9cd46357c713c7872fd4634f1aefecf9c9356ea7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe0076a602530d15c8ccceafb9cd46357c713c7872fd4634f1aefecf9c9356ea7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7326d3a2e1ab46d6f770874570d83fdec18a132bd8260957d6df2bd0c576b998", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600a73094f5374fce5edbc8e2a8697c15331677e6ebf0b622dc6c0f1505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransferMemory.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransferMemory.json index 2a3055af3..b6d74f112 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransferMemory.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransferMemory.json @@ -2,88 +2,86 @@ "RawCallGasValueTransferMemory" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallGasValueTransferMemoryFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x75a36bb5966cf991ef2c3bce1f26fbe18cf8ef791e4711c3ba99102cb66e7866", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x7e2a" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x069265" + } } } - ], - "EIP158" : [ - { - "hash" : "0x75a36bb5966cf991ef2c3bce1f26fbe18cf8ef791e4711c3ba99102cb66e7866", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x04a0baee683517e8d6a1a481f0606787c654e3ad3a44b4b4455df96e0f75bc17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x04a0baee683517e8d6a1a481f0606787c654e3ad3a44b4b4455df96e0f75bc17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x75a36bb5966cf991ef2c3bce1f26fbe18cf8ef791e4711c3ba99102cb66e7866", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x7e2a" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0694f9" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f406000611f406000600a73094f5374fce5edbc8e2a8697c15331677e6ebf0b617530f1505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 8000 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransferMemoryAsk.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransferMemoryAsk.json index 414eb72a7..5db663a0c 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransferMemoryAsk.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallGasValueTransferMemoryAsk.json @@ -2,88 +2,86 @@ "RawCallGasValueTransferMemoryAsk" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallGasValueTransferMemoryAskFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x38a9882d94b98319300b186630b0d54596fc84fb636ef6e3736edb43bd59eec4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x06c52e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x069265" + } } } - ], - "EIP158" : [ - { - "hash" : "0x38a9882d94b98319300b186630b0d54596fc84fb636ef6e3736edb43bd59eec4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xeaadd3be7f372407630197e81a9f04f8a84c9ccee0e8d9ee8ed76c9a2a2a1938", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xeaadd3be7f372407630197e81a9f04f8a84c9ccee0e8d9ee8ed76c9a2a2a1938", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x38a9882d94b98319300b186630b0d54596fc84fb636ef6e3736edb43bd59eec4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f406000611f406000600a73094f5374fce5edbc8e2a8697c15331677e6ebf0b622dc6c0f1505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 8000 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallMemoryGas.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallMemoryGas.json index 807732ad9..2b34e1763 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallMemoryGas.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallMemoryGas.json @@ -2,88 +2,86 @@ "RawCallMemoryGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallMemoryGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf4bb0b3beae4538ef32103fde8ec3a220e25346bc3dae89a3cacead75f135921", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x752e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06ac91" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf4bb0b3beae4538ef32103fde8ec3a220e25346bc3dae89a3cacead75f135921", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x576930e1e057042952521306058dc35a8cee5a53919d72da54ccdda095925ee4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x576930e1e057042952521306058dc35a8cee5a53919d72da54ccdda095925ee4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf4bb0b3beae4538ef32103fde8ec3a220e25346bc3dae89a3cacead75f135921", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x752e" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06af25" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f406000611f406000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b617530f1505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 8000 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallMemoryGasAsk.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallMemoryGasAsk.json index 262372de9..ef2c4806d 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallMemoryGasAsk.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCallMemoryGasAsk.json @@ -2,88 +2,86 @@ "RawCallMemoryGasAsk" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCallMemoryGasAskFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x77bef630a7e6cb48745f83e5a618a5a0f4d4fa6e3572c006769ba95c97463240", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x06dece" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06ac91" + } } } - ], - "EIP158" : [ - { - "hash" : "0x77bef630a7e6cb48745f83e5a618a5a0f4d4fa6e3572c006769ba95c97463240", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfa67f8254413de74863bdebf6a653f34032bbdb1bfde6e7263803182f06a2920", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfa67f8254413de74863bdebf6a653f34032bbdb1bfde6e7263803182f06a2920", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x77bef630a7e6cb48745f83e5a618a5a0f4d4fa6e3572c006769ba95c97463240", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f406000611f406000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b622dc6c0f1505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 8000 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateFailGasValueTransfer.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateFailGasValueTransfer.json index 78aa3732e..0158fd352 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateFailGasValueTransfer.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateFailGasValueTransfer.json @@ -2,81 +2,75 @@ "RawCreateFailGasValueTransfer" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCreateFailGasValueTransferFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x78b1837232c666307f4a9cb23e48b971eeb6a547a4b788815c6e60170ab03b8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0683e6" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x78b1837232c666307f4a9cb23e48b971eeb6a547a4b788815c6e60170ab03b8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x78b1837232c666307f4a9cb23e48b971eeb6a547a4b788815c6e60170ab03b8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x78b1837232c666307f4a9cb23e48b971eeb6a547a4b788815c6e60170ab03b8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x78b1837232c666307f4a9cb23e48b971eeb6a547a4b788815c6e60170ab03b8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0683e6" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a60005560006000600bf0505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CREATE 11 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +80,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateFailGasValueTransfer2.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateFailGasValueTransfer2.json index 358a1a34a..d0139b29c 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateFailGasValueTransfer2.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateFailGasValueTransfer2.json @@ -2,81 +2,75 @@ "RawCreateFailGasValueTransfer2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCreateFailGasValueTransfer2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8887a012bc134474e28263d35dd6da51cdf62dabae317588516cd9d972db2184", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06807e" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x8887a012bc134474e28263d35dd6da51cdf62dabae317588516cd9d972db2184", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8887a012bc134474e28263d35dd6da51cdf62dabae317588516cd9d972db2184", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8887a012bc134474e28263d35dd6da51cdf62dabae317588516cd9d972db2184", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8887a012bc134474e28263d35dd6da51cdf62dabae317588516cd9d972db2184", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06807e" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f406000600bf0505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CREATE 11 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +80,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGas.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGas.json index 3453c2ef4..bf4dd33b3 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGas.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGas.json @@ -2,81 +2,75 @@ "RawCreateGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCreateGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x98b0ca4f957c73bcac52f7587ac95d1046c9f247ca237f5bf538b6cf2446d6d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0683e6" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xb916802637eb51608d6ef5f2aefc37152cd59cb98b238b06a7276ffe8926879f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x98b0ca4f957c73bcac52f7587ac95d1046c9f247ca237f5bf538b6cf2446d6d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x98b0ca4f957c73bcac52f7587ac95d1046c9f247ca237f5bf538b6cf2446d6d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb916802637eb51608d6ef5f2aefc37152cd59cb98b238b06a7276ffe8926879f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0683e6" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000f0505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CREATE 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +80,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGasMemory.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGasMemory.json index 17de68766..8da234d76 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGasMemory.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGasMemory.json @@ -2,81 +2,75 @@ "RawCreateGasMemory" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCreateGasMemoryFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd5e6f06bf6b2a9352e049cd92c933096ac6824657fb5b28c2ac7e6d899e0dcee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06807e" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xe6701e817eca8c6146df517e058530c3ab277f3af8cea26f6643e94e7ad5f113", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd5e6f06bf6b2a9352e049cd92c933096ac6824657fb5b28c2ac7e6d899e0dcee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd5e6f06bf6b2a9352e049cd92c933096ac6824657fb5b28c2ac7e6d899e0dcee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe6701e817eca8c6146df517e058530c3ab277f3af8cea26f6643e94e7ad5f113", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06807e" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "0" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f4060006000f0505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CREATE 0 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +80,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGasValueTransfer.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGasValueTransfer.json index 2dc890363..3d54affd1 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGasValueTransfer.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGasValueTransfer.json @@ -2,81 +2,75 @@ "RawCreateGasValueTransfer" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCreateGasValueTransferFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x85b2c400d7c56f0b46006c42f350429138d89a153009a3b8e77d1af8b0e926c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0683e6" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "10" } } - ], - "EIP158" : [ - { - "hash" : "0xeb81439d01333840ec0930c4ddf3f5c175d272cde817b40b1163fdcd2a013e84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x85b2c400d7c56f0b46006c42f350429138d89a153009a3b8e77d1af8b0e926c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x85b2c400d7c56f0b46006c42f350429138d89a153009a3b8e77d1af8b0e926c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xeb81439d01333840ec0930c4ddf3f5c175d272cde817b40b1163fdcd2a013e84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x0683e6" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "10" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a60005560006000600af0505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CREATE 10 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +80,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGasValueTransferMemory.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGasValueTransferMemory.json index 045ca7cc3..16e3497f5 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGasValueTransferMemory.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawCreateGasValueTransferMemory.json @@ -2,81 +2,75 @@ "RawCreateGasValueTransferMemory" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawCreateGasValueTransferMemoryFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x454417282a9177c084c420b352336b40a9a68d61dc3f82038000d0425647d287", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06807e" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "10" } } - ], - "EIP158" : [ - { - "hash" : "0xd7f24038790cb5ae4392128d48ca82f08bbebe7275f23dde610323ce0ddb9874", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x454417282a9177c084c420b352336b40a9a68d61dc3f82038000d0425647d287", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x454417282a9177c084c420b352336b40a9a68d61dc3f82038000d0425647d287", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd7f24038790cb5ae4392128d48ca82f08bbebe7275f23dde610323ce0ddb9874", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06807e" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "balance" : "10" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f406000600af0505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (CREATE 10 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +80,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGas.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGas.json index c477913e1..2ec86f387 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGas.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGas.json @@ -2,88 +2,108 @@ "RawDelegateCallGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawDelegateCallGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf3feb27bd5aead6931cb022d68ea9807a9679afd269c4abba6f79643ea00ec39", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06affc", + "0x02" : "0x752e" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf3feb27bd5aead6931cb022d68ea9807a9679afd269c4abba6f79643ea00ec39", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4ef295967b34e8f6cec6931840bc0947960383d969a9e0f2236183f0faa7575d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x45015e5fa68594215fb6943b7e7212278fb25b5d2b13f844163c306e14c65838", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x02" : "0" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xf3feb27bd5aead6931cb022d68ea9807a9679afd269c4abba6f79643ea00ec39", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06b290", + "0x02" : "0x752e" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b617530f4505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (DELEGATECALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +113,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGasAsk.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGasAsk.json index 88eed8329..548b011ce 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGasAsk.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGasAsk.json @@ -2,88 +2,86 @@ "RawDelegateCallGasAsk" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawDelegateCallGasAskFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe201f686d6c3a0fda065d4c84218a9e5ecf91b7fe75ddfc3b4efd67f210ed9fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06affc", + "0x02" : "0x06e22b" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe201f686d6c3a0fda065d4c84218a9e5ecf91b7fe75ddfc3b4efd67f210ed9fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x426f5e836aae47940b3ed939db21cc9e335d12eda8949a1d5169f3d6d0e3ccb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x426f5e836aae47940b3ed939db21cc9e335d12eda8949a1d5169f3d6d0e3ccb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe201f686d6c3a0fda065d4c84218a9e5ecf91b7fe75ddfc3b4efd67f210ed9fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x02" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b622dc6c0f4505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (DELEGATECALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGasMemory.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGasMemory.json index f1b3616a8..70018fc60 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGasMemory.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGasMemory.json @@ -2,88 +2,108 @@ "RawDelegateCallGasMemory" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawDelegateCallGasMemoryFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x41d8038613105ad50a5b49d38f5f99f097f1e0a4a26332ee805237f159c7a23e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06ac94", + "0x02" : "0x752e" + } } } - ], - "EIP158" : [ - { - "hash" : "0x41d8038613105ad50a5b49d38f5f99f097f1e0a4a26332ee805237f159c7a23e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x65b7569621f6fe011a10e6f0e6bae950ee444caabd07c4536e6a5141678b25de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xceac93c2f55b3827be027e884c9e774d233e5109dd8fd35cf25c9fb804a47ec4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x02" : "0" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x41d8038613105ad50a5b49d38f5f99f097f1e0a4a26332ee805237f159c7a23e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06af28", + "0x02" : "0x752e" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f406000611f40600073094f5374fce5edbc8e2a8697c15331677e6ebf0b617530f4505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (DELEGATECALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 8000 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +113,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGasMemoryAsk.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGasMemoryAsk.json index de84e3ff0..5ed7b61fd 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGasMemoryAsk.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawDelegateCallGasMemoryAsk.json @@ -2,88 +2,86 @@ "RawDelegateCallGasMemoryAsk" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawDelegateCallGasMemoryAskFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x25290ff69aa4a920e50553973ef7a88ff58677e2b3ad95f1447ec29292c491cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x074f16", + "0x01" : "0x06ac94", + "0x02" : "0x06ded1" + } } } - ], - "EIP158" : [ - { - "hash" : "0x25290ff69aa4a920e50553973ef7a88ff58677e2b3ad95f1447ec29292c491cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf555a574c2f7fd08089b3a4a03595daa66e980fc2bd4cdb4615edfb07d19caf2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf555a574c2f7fd08089b3a4a03595daa66e980fc2bd4cdb4615edfb07d19caf2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x25290ff69aa4a920e50553973ef7a88ff58677e2b3ad95f1447ec29292c491cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x02" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600255", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ [[2]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055611f406000611f40600073094f5374fce5edbc8e2a8697c15331677e6ebf0b622dc6c0f4505a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (DELEGATECALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 8000 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +91,14 @@ "" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawExtCodeCopyGas.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawExtCodeCopyGas.json index e19710bac..efec06304 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawExtCodeCopyGas.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawExtCodeCopyGas.json @@ -2,88 +2,76 @@ "RawExtCodeCopyGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawExtCodeCopyGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf5da2fa2f8bd5badfe45d582dbc888cdd08a682259cfbef6342ce587cdf94086", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x0884c3" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf5da2fa2f8bd5badfe45d582dbc888cdd08a682259cfbef6342ce587cdf94086", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x299139e4ca9042a2dc9be3402cb96ef69ebbdb16d4485eb12ea5a230fd3b7c13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x299139e4ca9042a2dc9be3402cb96ef69ebbdb16d4485eb12ea5a230fd3b7c13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf5da2fa2f8bd5badfe45d582dbc888cdd08a682259cfbef6342ce587cdf94086", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x08876b" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "0x0112233445566778899101112131415161718191202122232425", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a60005560146000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b3c5a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (EXTCODECOPY 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 20) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +81,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawExtCodeCopyMemoryGas.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawExtCodeCopyMemoryGas.json index 5f578bd0b..f156ff9bd 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawExtCodeCopyMemoryGas.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawExtCodeCopyMemoryGas.json @@ -2,88 +2,76 @@ "RawExtCodeCopyMemoryGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawExtCodeCopyMemoryGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdd7c68b94ba7007eb5bff79c11b1dbb2f5bcc47d7bee305298b760856f7be6ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x087bb5" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdd7c68b94ba7007eb5bff79c11b1dbb2f5bcc47d7bee305298b760856f7be6ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x60b8a1372e768661d0c83723a862df03ba35138aac9478a00199511fa5e446f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x60b8a1372e768661d0c83723a862df03ba35138aac9478a00199511fa5e446f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdd7c68b94ba7007eb5bff79c11b1dbb2f5bcc47d7bee305298b760856f7be6ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x087e5d" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "0x0112233445566778899101112131415161718191202122232425", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055612b706000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b3c5a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (EXTCODECOPY 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 11120) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +81,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP150singleCodeGasPrices/RawExtCodeSizeGas.json b/GeneralStateTests/stEIP150singleCodeGasPrices/RawExtCodeSizeGas.json index 2705007db..88643d423 100644 --- a/GeneralStateTests/stEIP150singleCodeGasPrices/RawExtCodeSizeGas.json +++ b/GeneralStateTests/stEIP150singleCodeGasPrices/RawExtCodeSizeGas.json @@ -2,88 +2,76 @@ "RawExtCodeSizeGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP150singleCodeGasPrices/RawExtCodeSizeGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf346ad33132bb259364e57a873b8dcef7fbc87698fbce7f44201cf1793b57a42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x088791" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf346ad33132bb259364e57a873b8dcef7fbc87698fbce7f44201cf1793b57a42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf346ad33132bb259364e57a873b8dcef7fbc87698fbce7f44201cf1793b57a42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf346ad33132bb259364e57a873b8dcef7fbc87698fbce7f44201cf1793b57a42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf346ad33132bb259364e57a873b8dcef7fbc87698fbce7f44201cf1793b57a42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x088791" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "0x0112233445566778899101112131415161718191202122232425", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000555a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] (GAS) (EXTCODESIZE 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +81,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP158Specific/CALL_OneVCallSuicide.json b/GeneralStateTests/stEIP158Specific/CALL_OneVCallSuicide.json index ac82fe8c6..c7603b3fe 100644 --- a/GeneralStateTests/stEIP158Specific/CALL_OneVCallSuicide.json +++ b/GeneralStateTests/stEIP158Specific/CALL_OneVCallSuicide.json @@ -2,88 +2,84 @@ "CALL_OneVCallSuicide" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP158Specific/CALL_OneVCallSuicideFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9d6a0f433324877903fd7824e33158c62752deed863a8d2fdf3a1df012ba0f72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x085707" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x9d6a0f433324877903fd7824e33158c62752deed863a8d2fdf3a1df012ba0f72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xba636cbfdf864eed36b7fd36ad42e8694bb1817a4b8e8e9942c1ce8e1a8b452f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xba636cbfdf864eed36b7fd36ad42e8694bb1817a4b8e8e9942c1ce8e1a8b452f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9d6a0f433324877903fd7824e33158c62752deed863a8d2fdf3a1df012ba0f72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x64", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x086d23" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", - "code" : "0x5a6000556000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1505a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "code" : "{ [[0]](GAS) (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x73b94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +89,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP158Specific/CALL_ZeroVCallSuicide.json b/GeneralStateTests/stEIP158Specific/CALL_ZeroVCallSuicide.json index 2667db6ce..1abbd61a0 100644 --- a/GeneralStateTests/stEIP158Specific/CALL_ZeroVCallSuicide.json +++ b/GeneralStateTests/stEIP158Specific/CALL_ZeroVCallSuicide.json @@ -2,88 +2,84 @@ "CALL_ZeroVCallSuicide" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP158Specific/CALL_ZeroVCallSuicideFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe76553703206c2cc61d5ed4e89229b1ef08f4a2769fa7a9851eaacdc60cd1b14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x087133" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xe76553703206c2cc61d5ed4e89229b1ef08f4a2769fa7a9851eaacdc60cd1b14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5ed0275864a115e3c3420d2e1729d25f6a59089abfb581fde385195a560af5a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5ed0275864a115e3c3420d2e1729d25f6a59089abfb581fde385195a560af5a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe76553703206c2cc61d5ed4e89229b1ef08f4a2769fa7a9851eaacdc60cd1b14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x08874f" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1505a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x73b94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +89,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP158Specific/EXP_Empty.json b/GeneralStateTests/stEIP158Specific/EXP_Empty.json index f19971075..1ae2af67b 100644 --- a/GeneralStateTests/stEIP158Specific/EXP_Empty.json +++ b/GeneralStateTests/stEIP158Specific/EXP_Empty.json @@ -2,81 +2,121 @@ "EXP_Empty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP158Specific/EXP_EmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6d14764dbe4291fd612b847a7b378a6e42da87209063184263ffd06e25a0c446", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "comment" : "https://etherpad.net/p/EIP158", + "storage" : { + "0x00" : "0x08d5b6", + "0x02" : "0x0873c4", + "0x03" : "0x01", + "0x04" : "0x07d76c", + "0x06" : "0x07741c", + "0x08" : "0x070f3c", + "0x0a" : "0x06a73c", + "0x0b" : "0x01", + "0x0c" : "0x060ae4", + "0x0d" : "0x01", + "0x0e" : "0x056e8c", + "0x0f" : "0x01", + "0x64" : "0x04d234" + } } } - ], - "EIP158" : [ - { - "hash" : "0x41d83353455a43d5fffdc0ef1901a9861cb0cad2249da8883da516f1abb6b27b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6d14764dbe4291fd612b847a7b378a6e42da87209063184263ffd06e25a0c446", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6d14764dbe4291fd612b847a7b378a6e42da87209063184263ffd06e25a0c446", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "comment" : "https://etherpad.net/p/EIP158", + "storage" : { + "0x00" : "0x08d5b6", + "0x02" : "0x0873ec", + "0x03" : "0x01", + "0x04" : "0x07d794", + "0x06" : "0x077584", + "0x08" : "0x071324", + "0x0a" : "0x06b024", + "0x0b" : "0x01", + "0x0c" : "0x0613cc", + "0x0d" : "0x01", + "0x0e" : "0x057774", + "0x0f" : "0x01", + "0x64" : "0x04db1c" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x41d83353455a43d5fffdc0ef1901a9861cb0cad2249da8883da516f1abb6b27b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x02" : "0x0873ec", + "0x03" : "0x01", + "0x04" : "0x07d794", + "0x06" : "0x077584", + "0x08" : "0x071324", + "0x0a" : "0x06b024", + "0x0b" : "0x01", + "0x0c" : "0x0613cc", + "0x0d" : "0x01", + "0x0e" : "0x057774", + "0x0f" : "0x01", + "0x64" : "0x04db1c" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600c60000a6001555a6002556000600c0a6003555a60045567ffffffffffffffff60000a6005555a6006556fffffffffffffffffffffffffffffffff60000a6007555a6008557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60000a6009555a600a55600067ffffffffffffffff0a600b555a600c5560006fffffffffffffffffffffffffffffffff0a600d555a600e5560007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a600f555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]](EXP 0 12) [[2]](GAS) [[3]](EXP 12 0) [[4]](GAS) [[5]](EXP 0 0xffffffffffffffff) [[6]](GAS) [[7]](EXP 0 0xffffffffffffffffffffffffffffffff) [[8]](GAS) [[9]](EXP 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[10]](GAS) [[11]](EXP 0xffffffffffffffff 0) [[12]](GAS) [[13]](EXP 0xffffffffffffffffffffffffffffffff 0) [[14]](GAS) [[15]](EXP 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +126,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP158Specific/EXTCODESIZE_toEpmty.json b/GeneralStateTests/stEIP158Specific/EXTCODESIZE_toEpmty.json index f0c5de55d..1fd767728 100644 --- a/GeneralStateTests/stEIP158Specific/EXTCODESIZE_toEpmty.json +++ b/GeneralStateTests/stEIP158Specific/EXTCODESIZE_toEpmty.json @@ -2,88 +2,90 @@ "EXTCODESIZE_toEpmty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP158Specific/EXTCODESIZE_toEpmtyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x34a02e6b097a84f37b8b8dfc7ec67212c22f90b0fd96739445110c91dc45280a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x087147" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x34a02e6b097a84f37b8b8dfc7ec67212c22f90b0fd96739445110c91dc45280a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8da206824967bc73b6adf5714e337ce99d2e181201d6bb69920bba8ca8e17088", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8da206824967bc73b6adf5714e337ce99d2e181201d6bb69920bba8ca8e17088", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x34a02e6b097a84f37b8b8dfc7ec67212c22f90b0fd96739445110c91dc45280a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x0873ef" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a60005573c94f5374fce5edbc8e2a8697c15331677e6ebf0b3b6001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (EXTCODESIZE 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +95,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP158Specific/EXTCODESIZE_toNonExistent.json b/GeneralStateTests/stEIP158Specific/EXTCODESIZE_toNonExistent.json index 38bbc8bfd..5ef620b7a 100644 --- a/GeneralStateTests/stEIP158Specific/EXTCODESIZE_toNonExistent.json +++ b/GeneralStateTests/stEIP158Specific/EXTCODESIZE_toNonExistent.json @@ -2,81 +2,75 @@ "EXTCODESIZE_toNonExistent" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP158Specific/EXTCODESIZE_toNonExistentFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x61431c2ae5d71abbaeb163ac1ee1fe6ce0a27cf7a9eebcc9f250f696d30f5aa1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x087147" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x61431c2ae5d71abbaeb163ac1ee1fe6ce0a27cf7a9eebcc9f250f696d30f5aa1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6f640e328965e45fb3b37ee5e99eae277153dee13ca21c942ffbfe9c11c0e01e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6f640e328965e45fb3b37ee5e99eae277153dee13ca21c942ffbfe9c11c0e01e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x61431c2ae5d71abbaeb163ac1ee1fe6ce0a27cf7a9eebcc9f250f696d30f5aa1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x0873ef" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a60005573c94f5374fce5edbc8e2a8697c15331677e6ebf0b3b6001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (EXTCODESIZE 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +80,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stEIP158Specific/vitalikTransactionTest.json b/GeneralStateTests/stEIP158Specific/vitalikTransactionTest.json index ab1476401..f19b1cd3a 100644 --- a/GeneralStateTests/stEIP158Specific/vitalikTransactionTest.json +++ b/GeneralStateTests/stEIP158Specific/vitalikTransactionTest.json @@ -2,80 +2,207 @@ "vitalikTransactionTest" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stEIP158Specific/vitalikTransactionTestFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7a281a1ce18be77fa72d654767a410e2244f172c744ee2ac1154960f4981a3b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "1bc78ae0e5ec5cb439f1d5355d6f90d38343e109" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x03", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x044dec", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "51f9d7f98e997bdd6bebde4c2dd27be8c99303aa" : { + "balance" : "0x00", + "code" : "0x6000603f5359610043806100135939610056566c010000000000000000000000007fee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4d53532071d6cd0cb86facd5605ff6100008061003f60003961003f565b6000f35b816000f0905050fe", + "nonce" : "0x01", + "storage" : { + } + }, + "cd2a3d9f938e13cd947ec05abc7fe734df8dd826" : { + "balance" : "0xfffffffffffffbb213", + "code" : "0x", + "nonce" : "0x0150", + "storage" : { + } + }, + "ee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe3de92e8ec039e7b32fc50549194af8e16214e995915d1f66c4121d30ff88275", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6243be0d831b29c25ba9250267d6c78bc84e087c1d0d9b76f7fc40212ae857e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "13d3d0eedf83404aa5cc882d6756098cd21e3f56" : { + "balance" : "0x00", + "code" : "0x6000603f5359610043806100135939610056566c010000000000000000000000007fee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4d53532071d6cd0cb86facd5605ff6100008061003f60003961003f565b6000f35b816000f0905050fe", + "nonce" : "0x00", + "storage" : { + } + }, + "1bc78ae0e5ec5cb439f1d5355d6f90d38343e109" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "307092", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cd2a3d9f938e13cd947ec05abc7fe734df8dd826" : { + "balance" : "4722366482869644906603", + "code" : "0x", + "nonce" : "0x0150", + "storage" : { + } + }, + "ee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0x413833e5cb37a0c12c8e02c380e3c51587a102c5b02f1a65dc42a89b89224275", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1bc78ae0e5ec5cb439f1d5355d6f90d38343e109" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "51f9d7f98e997bdd6bebde4c2dd27be8c99303aa" : { + "shouldnotexist" : "1" + }, + "cd2a3d9f938e13cd947ec05abc7fe734df8dd826" : { + "code" : "0x", + "nonce" : "0x0150", + "storage" : { + } + }, + "ee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xe3de92e8ec039e7b32fc50549194af8e16214e995915d1f66c4121d30ff88275", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0x1bc78ae0e5ec5cb439f1d5355d6f90d38343e109" : { + "balance" : "0x00", + "code" : "", + "nonce" : "0x03", + "storage" : { + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x044dec", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + }, + "0x51f9d7f98e997bdd6bebde4c2dd27be8c99303aa" : { + "balance" : "0x00", + "code" : "0x6000603f5359610043806100135939610056566c010000000000000000000000007fee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4d53532071d6cd0cb86facd5605ff6100008061003f60003961003f565b6000f35b816000f0905050fe", + "nonce" : "0x01", + "storage" : { + } + }, + "0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826" : { + "balance" : "0xfffffffffffffbb213", + "code" : "", + "nonce" : "0x0150", + "storage" : { + } + }, + "0xee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4" : { + "balance" : "0x00", + "code" : "", + "nonce" : "0x00", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826" : { + "cd2a3d9f938e13cd947ec05abc7fe734df8dd826" : { "balance" : "0xffffffffffffffffff", - "code" : "", + "code" : "0x", "nonce" : "0x014f", "storage" : { } }, - "0xee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4" : { + "ee098e6c2a43d9e2c04f08f0c3a87b0ba59079d4" : { "balance" : "0x00", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -88,12 +215,12 @@ "gasLimit" : [ "0x1fffff" ], - "gasPrice" : "0x01", + "gasPrice" : "1", "nonce" : "0x014f", - "secretKey" : "0xc85ef7d79691fe79573b1a7064c19c1a9819ebdbd1faaab1a8ec92344438aaf4", + "secretKey" : "c85ef7d79691fe79573b1a7064c19c1a9819ebdbd1faaab1a8ec92344438aaf4", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stExample/add11.json b/GeneralStateTests/stExample/add11.json index 5e9b14087..c1b495276 100644 --- a/GeneralStateTests/stExample/add11.json +++ b/GeneralStateTests/stExample/add11.json @@ -2,81 +2,64 @@ "add11" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stExample/add11Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x17454a767e5f04461256f3812ffca930443c04a47d05ce3f38940c4a14b8c479", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x6001600101600055", + "storage" : { + "0x" : "0x02" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "41012", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858988", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x17454a767e5f04461256f3812ffca930443c04a47d05ce3f38940c4a14b8c479", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x17454a767e5f04461256f3812ffca930443c04a47d05ce3f38940c4a14b8c479", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x17454a767e5f04461256f3812ffca930443c04a47d05ce3f38940c4a14b8c479", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x17454a767e5f04461256f3812ffca930443c04a47d05ce3f38940c4a14b8c479", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -86,14 +69,14 @@ "" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stHomesteadSpecific/contractCreationOOGdontLeaveEmptyContract.json b/GeneralStateTests/stHomesteadSpecific/contractCreationOOGdontLeaveEmptyContract.json index eb9f03d3f..6ea796fb8 100644 --- a/GeneralStateTests/stHomesteadSpecific/contractCreationOOGdontLeaveEmptyContract.json +++ b/GeneralStateTests/stHomesteadSpecific/contractCreationOOGdontLeaveEmptyContract.json @@ -2,81 +2,49 @@ "contractCreationOOGdontLeaveEmptyContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stHomesteadSpecific/contractCreationOOGdontLeaveEmptyContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x35df33d2a146ff660bb837914781857715d1b8752371b2f3e0768f29dd484775", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "5dddfce53ee040d9eb21afbc0ae1bb4dbb0ba643" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x35df33d2a146ff660bb837914781857715d1b8752371b2f3e0768f29dd484775", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x11ad11c6c73f16022220dad1de2eb827aa3c04fa651f7a7b15231ed98efab9bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x11ad11c6c73f16022220dad1de2eb827aa3c04fa651f7a7b15231ed98efab9bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x35df33d2a146ff660bb837914781857715d1b8752371b2f3e0768f29dd484775", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60106001557f6001600155601080600c6000396000f3006000355415600957005b6020356000600052602060006000f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 1 0x10) (MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 ) (CREATE 0 0 32)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x016b80" + "93056" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000001", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000001", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stHomesteadSpecific/contractCreationOOGdontLeaveEmptyContractViaTransaction.json b/GeneralStateTests/stHomesteadSpecific/contractCreationOOGdontLeaveEmptyContractViaTransaction.json index 7f0ae090b..67e127e68 100644 --- a/GeneralStateTests/stHomesteadSpecific/contractCreationOOGdontLeaveEmptyContractViaTransaction.json +++ b/GeneralStateTests/stHomesteadSpecific/contractCreationOOGdontLeaveEmptyContractViaTransaction.json @@ -2,88 +2,85 @@ "contractCreationOOGdontLeaveEmptyContractViaTransaction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stHomesteadSpecific/contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x982629977cc807888a4aca6888907d0348ce9b6af9482eb0606bb42d3312d883", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x86631b9f3536a824efa412c3162885c8bbb1657e315b8dbbda6a24a8ae8ff868", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x09977193631f79f56dc2d8dd43b100c0d93e3e1019f12bc7990e06769790b7c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbf80ccfd1a7e6bf9f0ab98b938595389fd7240f2206c33bade862e49c19c2248", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "EIP158", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0" } } - ], - "Metropolis" : [ - { - "hash" : "0x86631b9f3536a824efa412c3162885c8bbb1657e315b8dbbda6a24a8ae8ff868", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6001600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{(SSTORE 1 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x10c8e0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161c350f1", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(CALL 50000 0x1000000000000000000000000000000000000001 0 0 64 0 64)}", + "nonce" : "0", "storage" : { } } @@ -93,14 +90,14 @@ "0x6040600060406000600073100000000000000000000000000000000000000161c350f1" ], "gasLimit" : [ - "0x017700" + "96000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stHomesteadSpecific/createContractViaContract.json b/GeneralStateTests/stHomesteadSpecific/createContractViaContract.json index 5b56f226f..f7d48cf27 100644 --- a/GeneralStateTests/stHomesteadSpecific/createContractViaContract.json +++ b/GeneralStateTests/stHomesteadSpecific/createContractViaContract.json @@ -2,81 +2,50 @@ "createContractViaContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stHomesteadSpecific/createContractViaContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x373942284112628b5c8cfd0f36d8058934fe6861cd7224feb3ac2d03739da305", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "46991", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x00a243435c3922719d07f434874d20e02a1971ca2bc6d6359bcc18f7e1e766f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x373942284112628b5c8cfd0f36d8058934fe6861cd7224feb3ac2d03739da305", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x373942284112628b5c8cfd0f36d8058934fe6861cd7224feb3ac2d03739da305", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x00a243435c3922719d07f434874d20e02a1971ca2bc6d6359bcc18f7e1e766f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600060006000f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CREATE 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000001", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000001", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stHomesteadSpecific/createContractViaContractOOGInitCode.json b/GeneralStateTests/stHomesteadSpecific/createContractViaContractOOGInitCode.json index 1766b6b52..d5b6d8142 100644 --- a/GeneralStateTests/stHomesteadSpecific/createContractViaContractOOGInitCode.json +++ b/GeneralStateTests/stHomesteadSpecific/createContractViaContractOOGInitCode.json @@ -2,81 +2,49 @@ "createContractViaContractOOGInitCode" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stHomesteadSpecific/createContractViaContractOOGInitCodeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf079b93388a39a4c343c66a917a044fb0d91de079786366d0c6c3b01bee07e7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "4ff884bffc83e888ae11b32b1d94bf9bc8d1732f" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xf079b93388a39a4c343c66a917a044fb0d91de079786366d0c6c3b01bee07e7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xef627373222f9f8a0c974af676a99f9a8c62a585e7b8935cec7a26a7029ae6f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xef627373222f9f8a0c974af676a99f9a8c62a585e7b8935cec7a26a7029ae6f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf079b93388a39a4c343c66a917a044fb0d91de079786366d0c6c3b01bee07e7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6b602060406000f0600c600055600052600c60146000f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 0 0x602060406000f0600c600055)(CREATE 0 20 12)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x10c8e0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x019a54" + "105044" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000001", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000001", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stHomesteadSpecific/createContractViaTransactionCost53000.json b/GeneralStateTests/stHomesteadSpecific/createContractViaTransactionCost53000.json index f42fb3a0b..99c704098 100644 --- a/GeneralStateTests/stHomesteadSpecific/createContractViaTransactionCost53000.json +++ b/GeneralStateTests/stHomesteadSpecific/createContractViaTransactionCost53000.json @@ -2,74 +2,59 @@ "createContractViaTransactionCost53000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stHomesteadSpecific/createContractViaTransactionCost53000Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x53f5b84edd82703a225e53e9ae3639729eb8e337098531456998af602b0ded0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150", + "Metropolis" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "47000", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x01d55964b2d7eb43d050c308c5835cbc9d0d876a35fd855f063ca4fc424c4e28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcf29b86efa1b7f5f999ef519fcc921062924d5c14d78baf491252fbf5a0d85b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x53f5b84edd82703a225e53e9ae3639729eb8e337098531456998af602b0ded0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "79000", + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x01d55964b2d7eb43d050c308c5835cbc9d0d876a35fd855f063ca4fc424c4e28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +64,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stInitCodeTest/CallContractToCreateContractAndCallItOOG.json b/GeneralStateTests/stInitCodeTest/CallContractToCreateContractAndCallItOOG.json index ab5038a99..87f0e096d 100644 --- a/GeneralStateTests/stInitCodeTest/CallContractToCreateContractAndCallItOOG.json +++ b/GeneralStateTests/stInitCodeTest/CallContractToCreateContractAndCallItOOG.json @@ -2,81 +2,117 @@ "CallContractToCreateContractAndCallItOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/CallContractToCreateContractAndCallItOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfcb25702c7c2186a58e9936af688f085395718f6ef1c8d29fea496b5f589f864", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf7f358c00a469057a8f00ad5ec59a8f0170605b89aa526948ec3be8e70b8e96d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x125bb759624d0f75e9a13d45208c3adf9b01bac040c37617e4f6fa82cc66880e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x125bb759624d0f75e9a13d45208c3adf9b01bac040c37617e4f6fa82cc66880e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xf7f358c00a469057a8f00ad5ec59a8f0170605b89aa526948ec3be8e70b8e96d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x" : "0x0c" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x03e8", - "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060006000546103e8f1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "1000", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 1000 (SLOAD 0) 0 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +122,14 @@ "0x00" ], "gasLimit" : [ - "0x0318f8" + "203000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stInitCodeTest/CallContractToCreateContractNoCash.json b/GeneralStateTests/stInitCodeTest/CallContractToCreateContractNoCash.json index dad43cdba..9ee18c24f 100644 --- a/GeneralStateTests/stInitCodeTest/CallContractToCreateContractNoCash.json +++ b/GeneralStateTests/stInitCodeTest/CallContractToCreateContractNoCash.json @@ -2,81 +2,53 @@ "CallContractToCreateContractNoCash" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/CallContractToCreateContractNoCashFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xac141f722f0723010a7e634d6da894a6ed548d16643dfa3a0305feba3398ea6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xac141f722f0723010a7e634d6da894a6ed548d16643dfa3a0305feba3398ea6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xac141f722f0723010a7e634d6da894a6ed548d16643dfa3a0305feba3398ea6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xac141f722f0723010a7e634d6da894a6ed548d16643dfa3a0305feba3398ea6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xac141f722f0723010a7e634d6da894a6ed548d16643dfa3a0305feba3398ea6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x2710", - "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b620186a0f0600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "10000", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 100000 11 21)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +58,14 @@ "0x00" ], "gasLimit" : [ - "0x01312d00" + "20000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stInitCodeTest/CallContractToCreateContractOOG.json b/GeneralStateTests/stInitCodeTest/CallContractToCreateContractOOG.json index d4aa23f49..c41e593cd 100644 --- a/GeneralStateTests/stInitCodeTest/CallContractToCreateContractOOG.json +++ b/GeneralStateTests/stInitCodeTest/CallContractToCreateContractOOG.json @@ -2,81 +2,53 @@ "CallContractToCreateContractOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/CallContractToCreateContractOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf59872f076aae7b433a18fca69d4c2de1dcb5efe4a33f602ddcd9f076692f923", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xe7db137cc3df6d785a0820d8354296bd7bced99f719af76cfc28cf097569aa43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbefdd7b9114f546b0b7ce58f5e46b24f24003acff6af79cac0c32ee17029a2cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbefdd7b9114f546b0b7ce58f5e46b24f24003acff6af79cac0c32ee17029a2cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe7db137cc3df6d785a0820d8354296bd7bced99f719af76cfc28cf097569aa43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", - "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060006000546000f1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "0", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 0 (SLOAD 0) 0 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +58,14 @@ "0x00" ], "gasLimit" : [ - "0x01312d00" + "20000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stInitCodeTest/CallContractToCreateContractOOGBonusGas.json b/GeneralStateTests/stInitCodeTest/CallContractToCreateContractOOGBonusGas.json index 1f382f402..d993a7aa4 100644 --- a/GeneralStateTests/stInitCodeTest/CallContractToCreateContractOOGBonusGas.json +++ b/GeneralStateTests/stInitCodeTest/CallContractToCreateContractOOGBonusGas.json @@ -2,81 +2,117 @@ "CallContractToCreateContractOOGBonusGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/CallContractToCreateContractOOGBonusGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5cc580fa6536cadacd23d6d5f7afb50076a5f7889832cfca9dc0a10473900898", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1df975ab2132724cb9ce03e9cacef9e4d40a57a284c0cc20414debc014ddd9b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x63bf90b1298600ad4eead4b7c518cba014b52bafdd3ffa7f6ae19e6f22530651", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x63bf90b1298600ad4eead4b7c518cba014b52bafdd3ffa7f6ae19e6f22530651", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x1df975ab2132724cb9ce03e9cacef9e4d40a57a284c0cc20414debc014ddd9b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x" : "0x0c" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x70", - "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f06000556000600060006000600c6000546000f1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "112", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 0 (SLOAD 0) 12 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +122,14 @@ "0x00" ], "gasLimit" : [ - "0x01312d00" + "20000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stInitCodeTest/CallContractToCreateContractWhichWouldCreateContractIfCalled.json b/GeneralStateTests/stInitCodeTest/CallContractToCreateContractWhichWouldCreateContractIfCalled.json index 4ec428887..6c1c3301f 100644 --- a/GeneralStateTests/stInitCodeTest/CallContractToCreateContractWhichWouldCreateContractIfCalled.json +++ b/GeneralStateTests/stInitCodeTest/CallContractToCreateContractWhichWouldCreateContractIfCalled.json @@ -2,81 +2,126 @@ "CallContractToCreateContractWhichWouldCreateContractIfCalled" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xccb3e0f5b2e7a9eeb364611ad58c4d5d29c4b9ba85883b6eede820376e3d5727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "2", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0x47086403782efc54f929a3b9b6691265db6f4e8081f9c360f7048b7712f6f114", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x82391f2ce4d0391379a80ca1bfd7baadd5a296652bec4ce809191af461298810", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x82391f2ce4d0391379a80ca1bfd7baadd5a296652bec4ce809191af461298810", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "2", + "nonce" : "2", + "storage" : { + "0x" : "0x0c" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x47086403782efc54f929a3b9b6691265db6f4e8081f9c360f7048b7712f6f114", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "2", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x03e8", - "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f06000556000600060006000600160005461c350f1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "1000", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 50000 (SLOAD 0) 1 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +131,14 @@ "0x00" ], "gasLimit" : [ - "0x01312d00" + "20000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stInitCodeTest/CallContractToCreateContractWhichWouldCreateContractInInitCode.json b/GeneralStateTests/stInitCodeTest/CallContractToCreateContractWhichWouldCreateContractInInitCode.json index 87406ba0e..6a4222408 100644 --- a/GeneralStateTests/stInitCodeTest/CallContractToCreateContractWhichWouldCreateContractInInitCode.json +++ b/GeneralStateTests/stInitCodeTest/CallContractToCreateContractWhichWouldCreateContractInInitCode.json @@ -2,81 +2,117 @@ "CallContractToCreateContractWhichWouldCreateContractInInitCode" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/CallContractToCreateContractWhichWouldCreateContractInInitCodeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa281799aefc2823b2740b1368b39068de101c2c3eb8863becac0f3252b00dbb6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1", + "nonce" : "1" + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0x58fb374685d5b632a101fbb327141ac46688bad3ddc0329b44761bf72e7b1475", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa281799aefc2823b2740b1368b39068de101c2c3eb8863becac0f3252b00dbb6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa281799aefc2823b2740b1368b39068de101c2c3eb8863becac0f3252b00dbb6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1", + "nonce" : "1" + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "nonce" : "2", + "storage" : { + "0x" : "0x0c" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x58fb374685d5b632a101fbb327141ac46688bad3ddc0329b44761bf72e7b1475", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1", + "nonce" : "1" + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01", - "code" : "0x6b600c600055602060406000f0600052600c60146000f0", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (CREATE 0 64 32)}", + "balance" : "1", + "code" : "{(MSTORE 0 0x600c600055602060406000f0)(CREATE 0 20 12)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +122,14 @@ "0x00" ], "gasLimit" : [ - "0x01312d00" + "20000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stInitCodeTest/CallRecursiveContract.json b/GeneralStateTests/stInitCodeTest/CallRecursiveContract.json index 327b9edcd..567bab0e2 100644 --- a/GeneralStateTests/stInitCodeTest/CallRecursiveContract.json +++ b/GeneralStateTests/stInitCodeTest/CallRecursiveContract.json @@ -2,81 +2,113 @@ "CallRecursiveContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/CallRecursiveContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf2b33499b0bdf4a78f3f6d54c7f3ede696df72fceba07519f1327de7181184b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1", + "nonce" : "41", + "storage" : { + "0x02" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" + } + }, + "1a4c83e1a9834cdc7e4a905ff7f0cf44aed73180" : { + "nonce" : "1", + "storage" : { + "0x02" : "0x1a4c83e1a9834cdc7e4a905ff7f0cf44aed73180" + } + }, + "8e3411c91d5dd4081b4846fa2f93808f5ad19686" : { + "nonce" : "1", + "storage" : { + "0x02" : "0x8e3411c91d5dd4081b4846fa2f93808f5ad19686" + } } } - ], - "EIP158" : [ - { - "hash" : "0x624e603c08a6f3ec965ecbadc51c73e26a6f8d77c65aca8fe08a21d9082b258f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4fee218443f0d352ef33dfe5dd9bdf120528b38ef3be46630b865bea6b1e6b28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4fee218443f0d352ef33dfe5dd9bdf120528b38ef3be46630b865bea6b1e6b28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1", + "nonce" : "41", + "storage" : { + "0x02" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" + } + }, + "1a4c83e1a9834cdc7e4a905ff7f0cf44aed73180" : { + "shouldnotexist" : "1" + }, + "8e3411c91d5dd4081b4846fa2f93808f5ad19686" : { + "shouldnotexist" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x624e603c08a6f3ec965ecbadc51c73e26a6f8d77c65aca8fe08a21d9082b258f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1", + "nonce" : "41", + "storage" : { + "0x02" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" + } + }, + "1a4c83e1a9834cdc7e4a905ff7f0cf44aed73180" : { + "nonce" : "1" + }, + "8e3411c91d5dd4081b4846fa2f93808f5ad19686" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", - "code" : "0x3060025560206000600039602060006000f0", - "nonce" : "0x28", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "{[[ 2 ]](ADDRESS)(CODECOPY 0 0 32)(CREATE 0 0 32)}", + "nonce" : "40", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +118,14 @@ "0x00" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stInitCodeTest/CallTheContractToCreateEmptyContract.json b/GeneralStateTests/stInitCodeTest/CallTheContractToCreateEmptyContract.json index d5ca8752f..4bc6fba1a 100644 --- a/GeneralStateTests/stInitCodeTest/CallTheContractToCreateEmptyContract.json +++ b/GeneralStateTests/stInitCodeTest/CallTheContractToCreateEmptyContract.json @@ -2,81 +2,110 @@ "CallTheContractToCreateEmptyContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/CallTheContractToCreateEmptyContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x00cfff7e10d762e286e00843be08f353174b8adfffd4c4494f60cb9b4ef8a86e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1", + "nonce" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "0", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x83d9a35ebebdf653931fabd255b98059e0e83fa0b0001665e7a6e428f905e13b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x00cfff7e10d762e286e00843be08f353174b8adfffd4c4494f60cb9b4ef8a86e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x00cfff7e10d762e286e00843be08f353174b8adfffd4c4494f60cb9b4ef8a86e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1", + "nonce" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "0", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x83d9a35ebebdf653931fabd255b98059e0e83fa0b0001665e7a6e428f905e13b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1", + "nonce" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "0", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", - "code" : "0x602060006000f0", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "{(CREATE 0 0 32)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +115,14 @@ "0x00" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stInitCodeTest/NotEnoughCashContractCreation.json b/GeneralStateTests/stInitCodeTest/NotEnoughCashContractCreation.json index 3f53361e9..f3b54373f 100644 --- a/GeneralStateTests/stInitCodeTest/NotEnoughCashContractCreation.json +++ b/GeneralStateTests/stInitCodeTest/NotEnoughCashContractCreation.json @@ -2,74 +2,42 @@ "NotEnoughCashContractCreation" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/NotEnoughCashContractCreationFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf10846403945e764b907151f573ce337b6a5a1d0f51b43bfbb59af88a9991ab2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "22177" } } - ], - "EIP158" : [ - { - "hash" : "0xf10846403945e764b907151f573ce337b6a5a1d0f51b43bfbb59af88a9991ab2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf10846403945e764b907151f573ce337b6a5a1d0f51b43bfbb59af88a9991ab2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf10846403945e764b907151f573ce337b6a5a1d0f51b43bfbb59af88a9991ab2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf10846403945e764b907151f573ce337b6a5a1d0f51b43bfbb59af88a9991ab2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x56a1", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "22177", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +47,14 @@ "0x600a80600c6000396000f200600160008035811a8100" ], "gasLimit" : [ - "0xd3a0" + "54176" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stInitCodeTest/OutOfGasContractCreation.json b/GeneralStateTests/stInitCodeTest/OutOfGasContractCreation.json index 30016eb27..31ee945c3 100644 --- a/GeneralStateTests/stInitCodeTest/OutOfGasContractCreation.json +++ b/GeneralStateTests/stInitCodeTest/OutOfGasContractCreation.json @@ -2,74 +2,54 @@ "OutOfGasContractCreation" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/OutOfGasContractCreationFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x18c1342886baeaf926b3fbbfb0484bf0cd1ced43576547c11153d3c8944d5c47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "838000" } } - ], - "EIP158" : [ - { - "hash" : "0x18c1342886baeaf926b3fbbfb0484bf0cd1ced43576547c11153d3c8944d5c47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4dc8fd3642ac4025c835f5d567dfac89679c66da501e5b9657115366467a1b42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x18c1342886baeaf926b3fbbfb0484bf0cd1ced43576547c11153d3c8944d5c47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000" } } - ], - "Metropolis" : [ - { - "hash" : "0x18c1342886baeaf926b3fbbfb0484bf0cd1ced43576547c11153d3c8944d5c47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +59,14 @@ "0x600a80600c6000396000f200600160008035811a8100" ], "gasLimit" : [ - "0xd2f0" + "54000" ], - "gasPrice" : "0x03", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "3", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stInitCodeTest/OutOfGasPrefundedContractCreation.json b/GeneralStateTests/stInitCodeTest/OutOfGasPrefundedContractCreation.json index dd7e57e87..55ced6ad3 100644 --- a/GeneralStateTests/stInitCodeTest/OutOfGasPrefundedContractCreation.json +++ b/GeneralStateTests/stInitCodeTest/OutOfGasPrefundedContractCreation.json @@ -2,80 +2,72 @@ "OutOfGasPrefundedContractCreation" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/OutOfGasPrefundedContractCreationFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x820dea567b5028afad5568712a2bbfcf60e44f845b8d9d5668e8abf00763867b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0278d0" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x01" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0cc970", + "nonce" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0x820dea567b5028afad5568712a2bbfcf60e44f845b8d9d5668e8abf00763867b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcbc258a15bcc22ec1c8d9e63b82159dd1caf8f3527d8215bdd9168e39d0c89e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x820dea567b5028afad5568712a2bbfcf60e44f845b8d9d5668e8abf00763867b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x820dea567b5028afad5568712a2bbfcf60e44f845b8d9d5668e8abf00763867b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x00" } } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x01", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0f4240", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -86,14 +78,14 @@ "0x600a80600c6000396000f200600160008035811a8100" ], "gasLimit" : [ - "0xd2f0" + "54000" ], - "gasPrice" : "0x03", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "3", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stInitCodeTest/ReturnTest.json b/GeneralStateTests/stInitCodeTest/ReturnTest.json index 4dd1b842a..3d71269ce 100644 --- a/GeneralStateTests/stInitCodeTest/ReturnTest.json +++ b/GeneralStateTests/stInitCodeTest/ReturnTest.json @@ -2,88 +2,58 @@ "ReturnTest" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/ReturnTestFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8dc79f7b0515a4242d5e46f4aef2e9648a0743cf4278786cb5cfa399630ae3cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x15" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8dc79f7b0515a4242d5e46f4aef2e9648a0743cf4278786cb5cfa399630ae3cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b31035b94d9371fc05da98a08a0d51b69b99accf06645f69d25a8c2addb4108", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2b31035b94d9371fc05da98a08a0d51b69b99accf06645f69d25a8c2addb4108", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8dc79f7b0515a4242d5e46f4aef2e9648a0743cf4278786cb5cfa399630ae3cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6001601f6001601e600073b94f5374fce5edbc8e2a8697c15331677e6ebf0b6107d0f1506000516000556002601ef3", - "nonce" : "0x00", + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{(CALL 2000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 30 1 31 1) [[0]](MLOAD 0) (RETURN 30 2)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", - "code" : "0x60156000526001601ff3", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(MSTORE 0 0x15) (RETURN 31 1)}", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x194f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "194f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stInitCodeTest/ReturnTest2.json b/GeneralStateTests/stInitCodeTest/ReturnTest2.json index de6ec9471..224850889 100644 --- a/GeneralStateTests/stInitCodeTest/ReturnTest2.json +++ b/GeneralStateTests/stInitCodeTest/ReturnTest2.json @@ -2,88 +2,59 @@ "ReturnTest2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/ReturnTest2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x3b9aca00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4826e07577b6c45b7e3164c54be942f6a30a57014deb830eb065db8c9ecff2e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x15", + "0x01" : "0x3f" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4826e07577b6c45b7e3164c54be942f6a30a57014deb830eb065db8c9ecff2e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9330976c9b157c848242ece05257c5c056efeb55310c91406ebe0ed40ff3f578", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9330976c9b157c848242ece05257c5c056efeb55310c91406ebe0ed40ff3f578", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4826e07577b6c45b7e3164c54be942f6a30a57014deb830eb065db8c9ecff2e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x60156000526020602060206000600073b94f5374fce5edbc8e2a8697c15331677e6ebf0b611b58f15060005160005560205160015560406000f3", - "nonce" : "0x00", + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{(MSTORE 0 0x15)(CALL 7000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 32 32 32) [[0]](MLOAD 0) [[1]](MLOAD 32) (RETURN 0 64)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", - "code" : "0x60003560030260005260206000f3", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(MSTORE 0 (MUL 3 (CALLDATALOAD 0)))(RETURN 0 32)}", + "nonce" : "0", "storage" : { } } @@ -93,14 +64,14 @@ "" ], "gasLimit" : [ - "0x03d090" + "250000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x194f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "194f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stInitCodeTest/StackUnderFlowContractCreation.json b/GeneralStateTests/stInitCodeTest/StackUnderFlowContractCreation.json index cab01eebe..8324b0d9d 100644 --- a/GeneralStateTests/stInitCodeTest/StackUnderFlowContractCreation.json +++ b/GeneralStateTests/stInitCodeTest/StackUnderFlowContractCreation.json @@ -2,74 +2,46 @@ "StackUnderFlowContractCreation" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/StackUnderFlowContractCreationFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x961c54e78bf240486182b172fbb7d740e2da28906ea11dcb1266cb20e8862b5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "72000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "3000", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x961c54e78bf240486182b172fbb7d740e2da28906ea11dcb1266cb20e8862b5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x961c54e78bf240486182b172fbb7d740e2da28906ea11dcb1266cb20e8862b5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x961c54e78bf240486182b172fbb7d740e2da28906ea11dcb1266cb20e8862b5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x961c54e78bf240486182b172fbb7d740e2da28906ea11dcb1266cb20e8862b5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0124f8", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "75000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +51,14 @@ "0x6000f1" ], "gasLimit" : [ - "0x011940" + "72000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stInitCodeTest/TransactionCreateAutoSuicideContract.json b/GeneralStateTests/stInitCodeTest/TransactionCreateAutoSuicideContract.json index 25074f126..9117244f2 100644 --- a/GeneralStateTests/stInitCodeTest/TransactionCreateAutoSuicideContract.json +++ b/GeneralStateTests/stInitCodeTest/TransactionCreateAutoSuicideContract.json @@ -2,74 +2,56 @@ "TransactionCreateAutoSuicideContract" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/TransactionCreateAutoSuicideContractFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb2f8ca928c2981cc192c854df4736810593c8fd90783416d84b4a0f1e0fea952", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "15" } } - ], - "EIP158" : [ - { - "hash" : "0xb2f8ca928c2981cc192c854df4736810593c8fd90783416d84b4a0f1e0fea952", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5e2d18e12d28a412e04a57800ba998a10739ee10aa35127cfcb8e675c2bbd290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe0b65a3a37e8268cf5b5a41ef02bba89826e1a436636f182645214e5235c9c79", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0xb2f8ca928c2981cc192c854df4736810593c8fd90783416d84b4a0f1e0fea952", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +61,14 @@ "0x600a80600c6000396000fff2ffff600160008035811a81" ], "gasLimit" : [ - "0xd6d8" + "55000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0f" + "15" ] } } diff --git a/GeneralStateTests/stInitCodeTest/TransactionCreateRandomInitCode.json b/GeneralStateTests/stInitCodeTest/TransactionCreateRandomInitCode.json index 97245e1c4..d51b66b74 100644 --- a/GeneralStateTests/stInitCodeTest/TransactionCreateRandomInitCode.json +++ b/GeneralStateTests/stInitCodeTest/TransactionCreateRandomInitCode.json @@ -2,74 +2,46 @@ "TransactionCreateRandomInitCode" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/TransactionCreateRandomInitCodeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9e36cea9425d4207793943218f40eedc0c7b9505693c74e1c39b27b2de902d13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "64599" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "35401", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x9e36cea9425d4207793943218f40eedc0c7b9505693c74e1c39b27b2de902d13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9e36cea9425d4207793943218f40eedc0c7b9505693c74e1c39b27b2de902d13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9e36cea9425d4207793943218f40eedc0c7b9505693c74e1c39b27b2de902d13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9e36cea9425d4207793943218f40eedc0c7b9505693c74e1c39b27b2de902d13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +51,14 @@ "0x600a80600c6000396000f200600160008035811a8100" ], "gasLimit" : [ - "0xfc57" + "64599" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stInitCodeTest/TransactionCreateStopInInitcode.json b/GeneralStateTests/stInitCodeTest/TransactionCreateStopInInitcode.json index 0cce2d118..74bf5a8f6 100644 --- a/GeneralStateTests/stInitCodeTest/TransactionCreateStopInInitcode.json +++ b/GeneralStateTests/stInitCodeTest/TransactionCreateStopInInitcode.json @@ -2,74 +2,63 @@ "TransactionCreateStopInInitcode" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/TransactionCreateStopInInitcodeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x99f11d9bf8862c426bc510d7c6d2ed4c6f353411b782f8a3a268268319b9b689", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x3c443f320c10ef9b6ecc4db0ac9e6bc184ef4d924d03bc9be54e8c0850ef9138", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb2de012ac480412426664a68a009920fb4ce8c9651543900c440070e8e286644", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x99f11d9bf8862c426bc510d7c6d2ed4c6f353411b782f8a3a268268319b9b689", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x3c443f320c10ef9b6ecc4db0ac9e6bc184ef4d924d03bc9be54e8c0850ef9138", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +68,14 @@ "0x600a80600c600039600000f20000600160008035811a81" ], "gasLimit" : [ - "0xd6d8" + "55000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stInitCodeTest/TransactionCreateSuicideInInitcode.json b/GeneralStateTests/stInitCodeTest/TransactionCreateSuicideInInitcode.json index bc1cdc512..8be1b854c 100644 --- a/GeneralStateTests/stInitCodeTest/TransactionCreateSuicideInInitcode.json +++ b/GeneralStateTests/stInitCodeTest/TransactionCreateSuicideInInitcode.json @@ -2,74 +2,45 @@ "TransactionCreateSuicideInInitcode" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stInitCodeTest/TransactionCreateSuicideInInitcodeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb2f8ca928c2981cc192c854df4736810593c8fd90783416d84b4a0f1e0fea952", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "55000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xb2f8ca928c2981cc192c854df4736810593c8fd90783416d84b4a0f1e0fea952", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb2f8ca928c2981cc192c854df4736810593c8fd90783416d84b4a0f1e0fea952", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb2f8ca928c2981cc192c854df4736810593c8fd90783416d84b4a0f1e0fea952", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb2f8ca928c2981cc192c854df4736810593c8fd90783416d84b4a0f1e0fea952", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +50,14 @@ "0x600a80600c6000396000f200ff600160008035811a81" ], "gasLimit" : [ - "0xd6d8" + "55000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stLogTests/log0_emptyMem.json b/GeneralStateTests/stLogTests/log0_emptyMem.json index c43aabac9..6800d1ebe 100644 --- a/GeneralStateTests/stLogTests/log0_emptyMem.json +++ b/GeneralStateTests/stLogTests/log0_emptyMem.json @@ -2,88 +2,58 @@ "log0_emptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log0_emptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf55476a34dbeeae3ea7bb6a6d9c58ff100b4ca2a8c1a889ee609a4981664facc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf55476a34dbeeae3ea7bb6a6d9c58ff100b4ca2a8c1a889ee609a4981664facc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3d3859bbd67f0e8744dce0f4ad3c8dd36645445adcdc8caa2c4863758bf9e5a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3d3859bbd67f0e8744dce0f4ad3c8dd36645445adcdc8caa2c4863758bf9e5a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf55476a34dbeeae3ea7bb6a6d9c58ff100b4ca2a8c1a889ee609a4981664facc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000a0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log0_logMemStartTooHigh.json b/GeneralStateTests/stLogTests/log0_logMemStartTooHigh.json index a66847366..48a9a5c7e 100644 --- a/GeneralStateTests/stLogTests/log0_logMemStartTooHigh.json +++ b/GeneralStateTests/stLogTests/log0_logMemStartTooHigh.json @@ -2,88 +2,57 @@ "log0_logMemStartTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log0_logMemStartTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa7344ce6434f1777f47403ab4451f0290e120e1de611ce9f7bf42706b78b4431", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xa7344ce6434f1777f47403ab4451f0290e120e1de611ce9f7bf42706b78b4431", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x59f374457333e9f8102f82a25863a6fd03e657d6938f68e5eee55ddd7b508d0b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x59f374457333e9f8102f82a25863a6fd03e657d6938f68e5eee55ddd7b508d0b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa7344ce6434f1777f47403ab4451f0290e120e1de611ce9f7bf42706b78b4431", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log0_logMemsizeTooHigh.json b/GeneralStateTests/stLogTests/log0_logMemsizeTooHigh.json index ec412be4d..85706fad2 100644 --- a/GeneralStateTests/stLogTests/log0_logMemsizeTooHigh.json +++ b/GeneralStateTests/stLogTests/log0_logMemsizeTooHigh.json @@ -2,88 +2,57 @@ "log0_logMemsizeTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log0_logMemsizeTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0a5b2e7586c8106d623797e8617da36ab0a18f4433eb12858806f81375d1bab1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x0a5b2e7586c8106d623797e8617da36ab0a18f4433eb12858806f81375d1bab1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x334a1c65ff108c7e67fca71547c8daacc84c7c4972ab4290c959c94f9e087597", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x334a1c65ff108c7e67fca71547c8daacc84c7c4972ab4290c959c94f9e087597", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0a5b2e7586c8106d623797e8617da36ab0a18f4433eb12858806f81375d1bab1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log0_logMemsizeZero.json b/GeneralStateTests/stLogTests/log0_logMemsizeZero.json index 62dad5ce1..283f698a1 100644 --- a/GeneralStateTests/stLogTests/log0_logMemsizeZero.json +++ b/GeneralStateTests/stLogTests/log0_logMemsizeZero.json @@ -2,88 +2,58 @@ "log0_logMemsizeZero" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log0_logMemsizeZeroFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1b6e42f7ff302cca4cac931038c13746fea598cd83a3871ecb6fc8db6719bf61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1b6e42f7ff302cca4cac931038c13746fea598cd83a3871ecb6fc8db6719bf61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0c2ada0f9b669899fa16ef4b4e185d5810472281c5ff26d281b99755d9351323", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0c2ada0f9b669899fa16ef4b4e185d5810472281c5ff26d281b99755d9351323", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1b6e42f7ff302cca4cac931038c13746fea598cd83a3871ecb6fc8db6719bf61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006001a0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log0_nonEmptyMem.json b/GeneralStateTests/stLogTests/log0_nonEmptyMem.json index 4d556efbe..113bb6bde 100644 --- a/GeneralStateTests/stLogTests/log0_nonEmptyMem.json +++ b/GeneralStateTests/stLogTests/log0_nonEmptyMem.json @@ -2,88 +2,58 @@ "log0_nonEmptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log0_nonEmptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3df9dd948daa68d6a9cd50f0e6aee29860f239e25a9108e6da17541f8e2e8287", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x3df9dd948daa68d6a9cd50f0e6aee29860f239e25a9108e6da17541f8e2e8287", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaced3ad4beec7139daff9b67d286c29e54a900a690369c3034e660db8c05ee24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaced3ad4beec7139daff9b67d286c29e54a900a690369c3034e660db8c05ee24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3df9dd948daa68d6a9cd50f0e6aee29860f239e25a9108e6da17541f8e2e8287", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000a0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log0_nonEmptyMem_logMemSize1.json b/GeneralStateTests/stLogTests/log0_nonEmptyMem_logMemSize1.json index cbb9ea52c..0d2ec5949 100644 --- a/GeneralStateTests/stLogTests/log0_nonEmptyMem_logMemSize1.json +++ b/GeneralStateTests/stLogTests/log0_nonEmptyMem_logMemSize1.json @@ -2,88 +2,58 @@ "log0_nonEmptyMem_logMemSize1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log0_nonEmptyMem_logMemSize1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb141dd55b8491834f4fadc3be3454f5062bfa137ebafab82714f527853b795c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb141dd55b8491834f4fadc3be3454f5062bfa137ebafab82714f527853b795c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x27468e59b891d655b941f547f54141b9eb4f5181cf41c833a6a486bd62279a63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x27468e59b891d655b941f547f54141b9eb4f5181cf41c833a6a486bd62279a63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb141dd55b8491834f4fadc3be3454f5062bfa137ebafab82714f527853b795c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260016000a0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x200b20" + "2100000" ] } } diff --git a/GeneralStateTests/stLogTests/log0_nonEmptyMem_logMemSize1_logMemStart31.json b/GeneralStateTests/stLogTests/log0_nonEmptyMem_logMemSize1_logMemStart31.json index 02632cd8c..3153153df 100644 --- a/GeneralStateTests/stLogTests/log0_nonEmptyMem_logMemSize1_logMemStart31.json +++ b/GeneralStateTests/stLogTests/log0_nonEmptyMem_logMemSize1_logMemStart31.json @@ -2,88 +2,58 @@ "log0_nonEmptyMem_logMemSize1_logMemStart31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x98f34dbe7adb9dc8afd88ddf6db6da2767f8ecf99802c72d42d1e0384f071712", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x98f34dbe7adb9dc8afd88ddf6db6da2767f8ecf99802c72d42d1e0384f071712", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x690a45ff15a07c98efc1cf26f2e8d72c27a2dd38c06492a26d837b156f776e69", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x690a45ff15a07c98efc1cf26f2e8d72c27a2dd38c06492a26d837b156f776e69", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x98f34dbe7adb9dc8afd88ddf6db6da2767f8ecf99802c72d42d1e0384f071712", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526001601fa0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 31 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log1_Caller.json b/GeneralStateTests/stLogTests/log1_Caller.json index 7da35a541..8af21f995 100644 --- a/GeneralStateTests/stLogTests/log1_Caller.json +++ b/GeneralStateTests/stLogTests/log1_Caller.json @@ -2,88 +2,58 @@ "log1_Caller" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log1_CallerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7faaa6b174b824a735a925ae601e16f04191239cff38f31fbca9a88545dfaf42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7faaa6b174b824a735a925ae601e16f04191239cff38f31fbca9a88545dfaf42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x931ec75a3fed2751ac9f1adc4b53055844fc0a6cc1533a85db7fc8c67d40ca03", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x931ec75a3fed2751ac9f1adc4b53055844fc0a6cc1533a85db7fc8c67d40ca03", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7faaa6b174b824a735a925ae601e16f04191239cff38f31fbca9a88545dfaf42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff6000533360206000a1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG1 0 32 (CALLER)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log1_MaxTopic.json b/GeneralStateTests/stLogTests/log1_MaxTopic.json index a13754b02..09ab40d6f 100644 --- a/GeneralStateTests/stLogTests/log1_MaxTopic.json +++ b/GeneralStateTests/stLogTests/log1_MaxTopic.json @@ -2,88 +2,58 @@ "log1_MaxTopic" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log1_MaxTopicFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xddea2d5d953450ecfc7393fb0656719a321952ee4850ef30a1aa91a1954f9ca3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xddea2d5d953450ecfc7393fb0656719a321952ee4850ef30a1aa91a1954f9ca3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x107e59b480c51aee3de2ef291f40230e14bbdb45f3dba4bbe5c9c6477949f3fd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x107e59b480c51aee3de2ef291f40230e14bbdb45f3dba4bbe5c9c6477949f3fd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xddea2d5d953450ecfc7393fb0656719a321952ee4850ef30a1aa91a1954f9ca3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log1_emptyMem.json b/GeneralStateTests/stLogTests/log1_emptyMem.json index b01c3dfdb..7eb226b04 100644 --- a/GeneralStateTests/stLogTests/log1_emptyMem.json +++ b/GeneralStateTests/stLogTests/log1_emptyMem.json @@ -2,88 +2,58 @@ "log1_emptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log1_emptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6ba43d6a0fb49c971e58d559d1e776d9df8568d5321a6e573d5afa3a51a051ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6ba43d6a0fb49c971e58d559d1e776d9df8568d5321a6e573d5afa3a51a051ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7763779a96aac04ec88f7b6b1fb8678b2244b022db7b1480328fe991e81ae7fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7763779a96aac04ec88f7b6b1fb8678b2244b022db7b1480328fe991e81ae7fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6ba43d6a0fb49c971e58d559d1e776d9df8568d5321a6e573d5afa3a51a051ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000a1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG1 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log1_logMemStartTooHigh.json b/GeneralStateTests/stLogTests/log1_logMemStartTooHigh.json index 102836781..68465833b 100644 --- a/GeneralStateTests/stLogTests/log1_logMemStartTooHigh.json +++ b/GeneralStateTests/stLogTests/log1_logMemStartTooHigh.json @@ -2,88 +2,57 @@ "log1_logMemStartTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log1_logMemStartTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd4f985ae6c37f19379b898c88d64b203594b6731dff5f797ce7b4c0a2de6cdaf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd4f985ae6c37f19379b898c88d64b203594b6731dff5f797ce7b4c0a2de6cdaf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdb8bbf58f6a8612eb8a850c2bdbeebc1ce5fa0246aa8140d345ded8f55559915", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdb8bbf58f6a8612eb8a850c2bdbeebc1ce5fa0246aa8140d345ded8f55559915", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd4f985ae6c37f19379b898c88d64b203594b6731dff5f797ce7b4c0a2de6cdaf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log1_logMemsizeTooHigh.json b/GeneralStateTests/stLogTests/log1_logMemsizeTooHigh.json index fc2e01895..f658ceed5 100644 --- a/GeneralStateTests/stLogTests/log1_logMemsizeTooHigh.json +++ b/GeneralStateTests/stLogTests/log1_logMemsizeTooHigh.json @@ -2,88 +2,57 @@ "log1_logMemsizeTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log1_logMemsizeTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7929bf41e374682e39f04cc072c499e114cb107c73fcf4f31e08fae243c03e4e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7929bf41e374682e39f04cc072c499e114cb107c73fcf4f31e08fae243c03e4e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8c38cb58578bab9ab3231715e26e219f4f9875c133130f43f915f2e0aaacc505", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8c38cb58578bab9ab3231715e26e219f4f9875c133130f43f915f2e0aaacc505", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7929bf41e374682e39f04cc072c499e114cb107c73fcf4f31e08fae243c03e4e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log1_logMemsizeZero.json b/GeneralStateTests/stLogTests/log1_logMemsizeZero.json index 3ea948afe..51bf96ab8 100644 --- a/GeneralStateTests/stLogTests/log1_logMemsizeZero.json +++ b/GeneralStateTests/stLogTests/log1_logMemsizeZero.json @@ -2,88 +2,58 @@ "log1_logMemsizeZero" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log1_logMemsizeZeroFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe26ec7cbe2b9c8be44570de917bf66d408da7396753eca2ff424c7c9525ba4fd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe26ec7cbe2b9c8be44570de917bf66d408da7396753eca2ff424c7c9525ba4fd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x77e4eb82ab5aa6f1405875a4e06a19ef516c45362c8e63c5aa503c909e28d3cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x77e4eb82ab5aa6f1405875a4e06a19ef516c45362c8e63c5aa503c909e28d3cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe26ec7cbe2b9c8be44570de917bf66d408da7396753eca2ff424c7c9525ba4fd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006001a1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log1_nonEmptyMem.json b/GeneralStateTests/stLogTests/log1_nonEmptyMem.json index 88a7a7ae8..d72889933 100644 --- a/GeneralStateTests/stLogTests/log1_nonEmptyMem.json +++ b/GeneralStateTests/stLogTests/log1_nonEmptyMem.json @@ -2,88 +2,58 @@ "log1_nonEmptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log1_nonEmptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8d085a84675a7c1faa1ba717f1b3538efb88847d2d59c4d0e18cacb6c82b19bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8d085a84675a7c1faa1ba717f1b3538efb88847d2d59c4d0e18cacb6c82b19bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb67c50fb99df15cef50a230f584742d3cfc79da986a70aaf070be16716794682", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb67c50fb99df15cef50a230f584742d3cfc79da986a70aaf070be16716794682", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8d085a84675a7c1faa1ba717f1b3538efb88847d2d59c4d0e18cacb6c82b19bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052600060206000a1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log1_nonEmptyMem_logMemSize1.json b/GeneralStateTests/stLogTests/log1_nonEmptyMem_logMemSize1.json index ceb10fad9..f06aa49a9 100644 --- a/GeneralStateTests/stLogTests/log1_nonEmptyMem_logMemSize1.json +++ b/GeneralStateTests/stLogTests/log1_nonEmptyMem_logMemSize1.json @@ -2,88 +2,58 @@ "log1_nonEmptyMem_logMemSize1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log1_nonEmptyMem_logMemSize1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa71c31def00561a82f2c48444612fba542fe77c766caa67d59844c791b8a8cd3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa71c31def00561a82f2c48444612fba542fe77c766caa67d59844c791b8a8cd3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5bd591632910d38fa6c86b668f061826861442d4c116b46830e11468658fb9d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5bd591632910d38fa6c86b668f061826861442d4c116b46830e11468658fb9d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa71c31def00561a82f2c48444612fba542fe77c766caa67d59844c791b8a8cd3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060016000a1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 1 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log1_nonEmptyMem_logMemSize1_logMemStart31.json b/GeneralStateTests/stLogTests/log1_nonEmptyMem_logMemSize1_logMemStart31.json index c3888f691..994423cf9 100644 --- a/GeneralStateTests/stLogTests/log1_nonEmptyMem_logMemSize1_logMemStart31.json +++ b/GeneralStateTests/stLogTests/log1_nonEmptyMem_logMemSize1_logMemStart31.json @@ -2,88 +2,58 @@ "log1_nonEmptyMem_logMemSize1_logMemStart31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log1_nonEmptyMem_logMemSize1_logMemStart31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x760505c7d3c4d3e9beebf91f05196918dce83b639cbc3d599e5324cf0c7645ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x760505c7d3c4d3e9beebf91f05196918dce83b639cbc3d599e5324cf0c7645ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x431a274e4c27c3088bff78d49caf8f217eb533f146aa00d10170338e14856e26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x431a274e4c27c3088bff78d49caf8f217eb533f146aa00d10170338e14856e26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x760505c7d3c4d3e9beebf91f05196918dce83b639cbc3d599e5324cf0c7645ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006001601fa1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 31 1 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log2_Caller.json b/GeneralStateTests/stLogTests/log2_Caller.json index 43920ce06..503b32155 100644 --- a/GeneralStateTests/stLogTests/log2_Caller.json +++ b/GeneralStateTests/stLogTests/log2_Caller.json @@ -2,88 +2,58 @@ "log2_Caller" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log2_CallerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7e77314d9c21b624029a2857aa917c27b2c212561189cf4962b99451da513e15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7e77314d9c21b624029a2857aa917c27b2c212561189cf4962b99451da513e15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6f7a609f52e0615b627c25dc9d41e32ff1743deb404c37af5341eb0be7883992", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6f7a609f52e0615b627c25dc9d41e32ff1743deb404c37af5341eb0be7883992", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7e77314d9c21b624029a2857aa917c27b2c212561189cf4962b99451da513e15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff60005333600060206000a2", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG2 0 32 0 (CALLER) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log2_MaxTopic.json b/GeneralStateTests/stLogTests/log2_MaxTopic.json index 9dfa6ed59..2dafdf10b 100644 --- a/GeneralStateTests/stLogTests/log2_MaxTopic.json +++ b/GeneralStateTests/stLogTests/log2_MaxTopic.json @@ -2,88 +2,58 @@ "log2_MaxTopic" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log2_MaxTopicFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc49fe228084a51e8ac2bc4146c6f260198f9e30d1bc692ea827cbbb2699bbce8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc49fe228084a51e8ac2bc4146c6f260198f9e30d1bc692ea827cbbb2699bbce8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x380d5354e367a5c9d9145d8341296aa81c54413021f2f6f124d7455a218d1dae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x380d5354e367a5c9d9145d8341296aa81c54413021f2f6f124d7455a218d1dae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc49fe228084a51e8ac2bc4146c6f260198f9e30d1bc692ea827cbbb2699bbce8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a2", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log2_emptyMem.json b/GeneralStateTests/stLogTests/log2_emptyMem.json index fcdad33ea..7dc6ba77b 100644 --- a/GeneralStateTests/stLogTests/log2_emptyMem.json +++ b/GeneralStateTests/stLogTests/log2_emptyMem.json @@ -2,88 +2,58 @@ "log2_emptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log2_emptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbe1965f84fe22c58047fcc3de6ab5c885caeb4e7b79f7cda8af40702490889c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbe1965f84fe22c58047fcc3de6ab5c885caeb4e7b79f7cda8af40702490889c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x05b08fc68a3228b576e8abea32c375f112fe116d064de7e26f48a3104c438355", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x05b08fc68a3228b576e8abea32c375f112fe116d064de7e26f48a3104c438355", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbe1965f84fe22c58047fcc3de6ab5c885caeb4e7b79f7cda8af40702490889c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000a2", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG2 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log2_logMemStartTooHigh.json b/GeneralStateTests/stLogTests/log2_logMemStartTooHigh.json index 2d007cf3c..c0d5a78d2 100644 --- a/GeneralStateTests/stLogTests/log2_logMemStartTooHigh.json +++ b/GeneralStateTests/stLogTests/log2_logMemStartTooHigh.json @@ -2,88 +2,57 @@ "log2_logMemStartTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log2_logMemStartTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0348697008fa377f8970876bffe5681737634d9bd5ee63bd9a71fe6f53f8f329", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x0348697008fa377f8970876bffe5681737634d9bd5ee63bd9a71fe6f53f8f329", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaad2118f86e87a27abe1460c034f3292505eb123e64575daa66866fef2b86cbc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaad2118f86e87a27abe1460c034f3292505eb123e64575daa66866fef2b86cbc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0348697008fa377f8970876bffe5681737634d9bd5ee63bd9a71fe6f53f8f329", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa2", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log2_logMemsizeTooHigh.json b/GeneralStateTests/stLogTests/log2_logMemsizeTooHigh.json index c42533f65..bcbe974cf 100644 --- a/GeneralStateTests/stLogTests/log2_logMemsizeTooHigh.json +++ b/GeneralStateTests/stLogTests/log2_logMemsizeTooHigh.json @@ -2,88 +2,57 @@ "log2_logMemsizeTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log2_logMemsizeTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8fcbada0bbd946552d914910d7d2767661b4511a3615c5b7eef80890bef846b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8fcbada0bbd946552d914910d7d2767661b4511a3615c5b7eef80890bef846b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1134e89136d8bcf8c649cdb41bb86e5c29a72a8edf87db291232b4fd706a6c5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1134e89136d8bcf8c649cdb41bb86e5c29a72a8edf87db291232b4fd706a6c5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8fcbada0bbd946552d914910d7d2767661b4511a3615c5b7eef80890bef846b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a2", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log2_logMemsizeZero.json b/GeneralStateTests/stLogTests/log2_logMemsizeZero.json index 898db5109..c20e7f094 100644 --- a/GeneralStateTests/stLogTests/log2_logMemsizeZero.json +++ b/GeneralStateTests/stLogTests/log2_logMemsizeZero.json @@ -2,88 +2,58 @@ "log2_logMemsizeZero" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log2_logMemsizeZeroFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7d4ba274ced13ae05e0c68433cba0e2b9862f20879c5792e67a06c15df4a0ec1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7d4ba274ced13ae05e0c68433cba0e2b9862f20879c5792e67a06c15df4a0ec1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcfb147451db31049bc7f3e1404e88992662fab062cda2466cba633e691cd3d1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcfb147451db31049bc7f3e1404e88992662fab062cda2466cba633e691cd3d1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7d4ba274ced13ae05e0c68433cba0e2b9862f20879c5792e67a06c15df4a0ec1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060006001a2", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log2_nonEmptyMem.json b/GeneralStateTests/stLogTests/log2_nonEmptyMem.json index 99a2750c7..ff1d82f13 100644 --- a/GeneralStateTests/stLogTests/log2_nonEmptyMem.json +++ b/GeneralStateTests/stLogTests/log2_nonEmptyMem.json @@ -2,88 +2,58 @@ "log2_nonEmptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log2_nonEmptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8e3a46128a8072da9c5d358f39e67ed7fbe5c1579396bd133c71fa4fdae274c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8e3a46128a8072da9c5d358f39e67ed7fbe5c1579396bd133c71fa4fdae274c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7b21aa96b6c64f14bc7bc0489230f23587a1ce40192bad7a7c6e1f8037053405", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7b21aa96b6c64f14bc7bc0489230f23587a1ce40192bad7a7c6e1f8037053405", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8e3a46128a8072da9c5d358f39e67ed7fbe5c1579396bd133c71fa4fdae274c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526000600060206000a2", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG2 0 32 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log2_nonEmptyMem_logMemSize1.json b/GeneralStateTests/stLogTests/log2_nonEmptyMem_logMemSize1.json index 5e1c84687..e7047fde4 100644 --- a/GeneralStateTests/stLogTests/log2_nonEmptyMem_logMemSize1.json +++ b/GeneralStateTests/stLogTests/log2_nonEmptyMem_logMemSize1.json @@ -2,88 +2,58 @@ "log2_nonEmptyMem_logMemSize1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log2_nonEmptyMem_logMemSize1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2374f9e6457745fde99fb9b5dbe1551ef75b16042d8cffebdb305a2f85672488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2374f9e6457745fde99fb9b5dbe1551ef75b16042d8cffebdb305a2f85672488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6b1f8d1b37517af7152a79ed17bd0376825cb8b961bea5f347e9fb90f263d4ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6b1f8d1b37517af7152a79ed17bd0376825cb8b961bea5f347e9fb90f263d4ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2374f9e6457745fde99fb9b5dbe1551ef75b16042d8cffebdb305a2f85672488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060016000a2", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 1 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log2_nonEmptyMem_logMemSize1_logMemStart31.json b/GeneralStateTests/stLogTests/log2_nonEmptyMem_logMemSize1_logMemStart31.json index 403e73caf..71c36b6c1 100644 --- a/GeneralStateTests/stLogTests/log2_nonEmptyMem_logMemSize1_logMemStart31.json +++ b/GeneralStateTests/stLogTests/log2_nonEmptyMem_logMemSize1_logMemStart31.json @@ -2,88 +2,58 @@ "log2_nonEmptyMem_logMemSize1_logMemStart31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log2_nonEmptyMem_logMemSize1_logMemStart31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6d2aaf2d52f1a7762da37bbe2b2f181045bdc9839e8feba7c5b8aa019f57afc9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6d2aaf2d52f1a7762da37bbe2b2f181045bdc9839e8feba7c5b8aa019f57afc9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa5e5e455050c74632c6107634776dc94c85ee214e3cd6b9716004ea294c7167f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa5e5e455050c74632c6107634776dc94c85ee214e3cd6b9716004ea294c7167f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6d2aaf2d52f1a7762da37bbe2b2f181045bdc9839e8feba7c5b8aa019f57afc9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006001601fa2", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 31 1 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log3_Caller.json b/GeneralStateTests/stLogTests/log3_Caller.json index 86be5aa5c..0600be0f8 100644 --- a/GeneralStateTests/stLogTests/log3_Caller.json +++ b/GeneralStateTests/stLogTests/log3_Caller.json @@ -2,88 +2,58 @@ "log3_Caller" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log3_CallerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x714f6ceefb919f48a4d2c0b10e66e42c2e1e28a57239e88172df912a3f5d0951", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x714f6ceefb919f48a4d2c0b10e66e42c2e1e28a57239e88172df912a3f5d0951", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe9dc88b8b3ad1f3336c883cabc27a5b8219154a3c231d389889eb51c409ee294", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe9dc88b8b3ad1f3336c883cabc27a5b8219154a3c231d389889eb51c409ee294", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x714f6ceefb919f48a4d2c0b10e66e42c2e1e28a57239e88172df912a3f5d0951", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff600053336000600060206000a3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 0 0 (CALLER) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log3_MaxTopic.json b/GeneralStateTests/stLogTests/log3_MaxTopic.json index 666e30bd2..cf2c61724 100644 --- a/GeneralStateTests/stLogTests/log3_MaxTopic.json +++ b/GeneralStateTests/stLogTests/log3_MaxTopic.json @@ -2,88 +2,58 @@ "log3_MaxTopic" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log3_MaxTopicFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x75f5f8982d16bf45265bda67c39a4f736fd6946237716dcdc502d40cbf6289e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x75f5f8982d16bf45265bda67c39a4f736fd6946237716dcdc502d40cbf6289e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x479c6506375645e6e64ea7787a020b909ce7549662a593d707967ec2ef310d0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x479c6506375645e6e64ea7787a020b909ce7549662a593d707967ec2ef310d0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x75f5f8982d16bf45265bda67c39a4f736fd6946237716dcdc502d40cbf6289e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log3_PC.json b/GeneralStateTests/stLogTests/log3_PC.json index 9ed68bdaf..df8dbad5e 100644 --- a/GeneralStateTests/stLogTests/log3_PC.json +++ b/GeneralStateTests/stLogTests/log3_PC.json @@ -2,88 +2,58 @@ "log3_PC" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log3_PCFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcf69e00ed46c274cebd4031c9bca25bc3b3c099bb5be08b0f1facf5b57d5c130", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xcf69e00ed46c274cebd4031c9bca25bc3b3c099bb5be08b0f1facf5b57d5c130", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf9d0091c9074344a842e07ae89da3855e0a52403bbee72e13f4340bd183d1c77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf9d0091c9074344a842e07ae89da3855e0a52403bbee72e13f4340bd183d1c77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcf69e00ed46c274cebd4031c9bca25bc3b3c099bb5be08b0f1facf5b57d5c130", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff60005358585860206000a3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 (PC) (PC) (PC) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log3_emptyMem.json b/GeneralStateTests/stLogTests/log3_emptyMem.json index 83803c23c..a02a87182 100644 --- a/GeneralStateTests/stLogTests/log3_emptyMem.json +++ b/GeneralStateTests/stLogTests/log3_emptyMem.json @@ -2,88 +2,58 @@ "log3_emptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log3_emptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9e0e9602fe6b036ad91002bafc852d4c2dd7b6cd9b37218fc2f7a8e21e9dfcbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9e0e9602fe6b036ad91002bafc852d4c2dd7b6cd9b37218fc2f7a8e21e9dfcbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x86d9c3ac4abb070ae19b49f249237cec3d50b2d6a65325e0564ce0064059f18c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x86d9c3ac4abb070ae19b49f249237cec3d50b2d6a65325e0564ce0064059f18c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9e0e9602fe6b036ad91002bafc852d4c2dd7b6cd9b37218fc2f7a8e21e9dfcbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006000a3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG3 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log3_logMemStartTooHigh.json b/GeneralStateTests/stLogTests/log3_logMemStartTooHigh.json index 3dcc25775..802720e56 100644 --- a/GeneralStateTests/stLogTests/log3_logMemStartTooHigh.json +++ b/GeneralStateTests/stLogTests/log3_logMemStartTooHigh.json @@ -2,88 +2,57 @@ "log3_logMemStartTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log3_logMemStartTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xca5738f4b917b4b46d071b9e2fe3e3813f82d1f2534eed53ab215f3d347e9bc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xca5738f4b917b4b46d071b9e2fe3e3813f82d1f2534eed53ab215f3d347e9bc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0b2339d3e50474d3bd343623a4331622b3c9f14175d86fbbd48b0607bc8f2513", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0b2339d3e50474d3bd343623a4331622b3c9f14175d86fbbd48b0607bc8f2513", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xca5738f4b917b4b46d071b9e2fe3e3813f82d1f2534eed53ab215f3d347e9bc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log3_logMemsizeTooHigh.json b/GeneralStateTests/stLogTests/log3_logMemsizeTooHigh.json index 7098db2f0..21bd91182 100644 --- a/GeneralStateTests/stLogTests/log3_logMemsizeTooHigh.json +++ b/GeneralStateTests/stLogTests/log3_logMemsizeTooHigh.json @@ -2,88 +2,57 @@ "log3_logMemsizeTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log3_logMemsizeTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7f32b32b06efd9433f63d0bd45c7e5d78dc2987c8e25de39f628dc07102fef1c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7f32b32b06efd9433f63d0bd45c7e5d78dc2987c8e25de39f628dc07102fef1c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xefe92cb9472d77ffe5702d9bcd99ad9736fa3ba7992747eb64b06e0be2fb96b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xefe92cb9472d77ffe5702d9bcd99ad9736fa3ba7992747eb64b06e0be2fb96b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7f32b32b06efd9433f63d0bd45c7e5d78dc2987c8e25de39f628dc07102fef1c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log3_logMemsizeZero.json b/GeneralStateTests/stLogTests/log3_logMemsizeZero.json index b09d6f2f5..045155e10 100644 --- a/GeneralStateTests/stLogTests/log3_logMemsizeZero.json +++ b/GeneralStateTests/stLogTests/log3_logMemsizeZero.json @@ -2,88 +2,58 @@ "log3_logMemsizeZero" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log3_logMemsizeZeroFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9f8f5804453dab6db1a8608b8ea4c1c1b70ddc9de6cd5749d4a758314bc1ea6b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9f8f5804453dab6db1a8608b8ea4c1c1b70ddc9de6cd5749d4a758314bc1ea6b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbed679e39c69931838b71a5e4aa7cc8452170b3a3376b6204cb3cc30a3280d34", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbed679e39c69931838b71a5e4aa7cc8452170b3a3376b6204cb3cc30a3280d34", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9f8f5804453dab6db1a8608b8ea4c1c1b70ddc9de6cd5749d4a758314bc1ea6b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060006001a3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log3_nonEmptyMem.json b/GeneralStateTests/stLogTests/log3_nonEmptyMem.json index 84e23c449..271e35c64 100644 --- a/GeneralStateTests/stLogTests/log3_nonEmptyMem.json +++ b/GeneralStateTests/stLogTests/log3_nonEmptyMem.json @@ -2,88 +2,58 @@ "log3_nonEmptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log3_nonEmptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfcbc865306fdc8cd726651d9d8bfd13d82e53695f1a8b1b1560c23759bb5f07e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfcbc865306fdc8cd726651d9d8bfd13d82e53695f1a8b1b1560c23759bb5f07e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4d232efa9b709e619484527564f3c404b32ac50ebbe73933afcd78ad8b241f48", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4d232efa9b709e619484527564f3c404b32ac50ebbe73933afcd78ad8b241f48", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfcbc865306fdc8cd726651d9d8bfd13d82e53695f1a8b1b1560c23759bb5f07e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260006000600060206000a3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG3 0 32 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log3_nonEmptyMem_logMemSize1.json b/GeneralStateTests/stLogTests/log3_nonEmptyMem_logMemSize1.json index f52820717..caeb829cc 100644 --- a/GeneralStateTests/stLogTests/log3_nonEmptyMem_logMemSize1.json +++ b/GeneralStateTests/stLogTests/log3_nonEmptyMem_logMemSize1.json @@ -2,88 +2,58 @@ "log3_nonEmptyMem_logMemSize1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log3_nonEmptyMem_logMemSize1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1cfe34dd268dc981f3d3a3720d56cd08704d413bf6264dcce2b3cbaba6e93dc9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1cfe34dd268dc981f3d3a3720d56cd08704d413bf6264dcce2b3cbaba6e93dc9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3f663dbf8a1adfd84258b01250c5211b2a3aab845ce806c00027261c486acf8b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3f663dbf8a1adfd84258b01250c5211b2a3aab845ce806c00027261c486acf8b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1cfe34dd268dc981f3d3a3720d56cd08704d413bf6264dcce2b3cbaba6e93dc9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060016000a3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 1 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log3_nonEmptyMem_logMemSize1_logMemStart31.json b/GeneralStateTests/stLogTests/log3_nonEmptyMem_logMemSize1_logMemStart31.json index 7784c3483..aa899c3e2 100644 --- a/GeneralStateTests/stLogTests/log3_nonEmptyMem_logMemSize1_logMemStart31.json +++ b/GeneralStateTests/stLogTests/log3_nonEmptyMem_logMemSize1_logMemStart31.json @@ -2,88 +2,58 @@ "log3_nonEmptyMem_logMemSize1_logMemStart31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log3_nonEmptyMem_logMemSize1_logMemStart31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcf956932d096a8508c2860b6f9707ae5dfdfd7f46c71e7a88b2073c9b8f98cc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xcf956932d096a8508c2860b6f9707ae5dfdfd7f46c71e7a88b2073c9b8f98cc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x00c02c3b441e01adcbe9e5e2c4083b63755c3db362a7151ddace19884d59bc9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x00c02c3b441e01adcbe9e5e2c4083b63755c3db362a7151ddace19884d59bc9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcf956932d096a8508c2860b6f9707ae5dfdfd7f46c71e7a88b2073c9b8f98cc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060006001601fa3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 31 1 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log4_Caller.json b/GeneralStateTests/stLogTests/log4_Caller.json index 6e5de1a35..115709080 100644 --- a/GeneralStateTests/stLogTests/log4_Caller.json +++ b/GeneralStateTests/stLogTests/log4_Caller.json @@ -2,88 +2,58 @@ "log4_Caller" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log4_CallerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x046aa4968a8cfb27016bbf96813794e68a16320ad9a328fa677237eaf6877e10", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x046aa4968a8cfb27016bbf96813794e68a16320ad9a328fa677237eaf6877e10", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x924029c6de9f6b7b59a95c13205b6b835ea27b685bbf249afb81de2bb6e32d22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x924029c6de9f6b7b59a95c13205b6b835ea27b685bbf249afb81de2bb6e32d22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x046aa4968a8cfb27016bbf96813794e68a16320ad9a328fa677237eaf6877e10", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff6000533360006000600060206000a4", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG4 0 32 0 0 0 (CALLER) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log4_MaxTopic.json b/GeneralStateTests/stLogTests/log4_MaxTopic.json index 156af8a26..b20fca93a 100644 --- a/GeneralStateTests/stLogTests/log4_MaxTopic.json +++ b/GeneralStateTests/stLogTests/log4_MaxTopic.json @@ -2,88 +2,58 @@ "log4_MaxTopic" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log4_MaxTopicFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x600099af52739a6ba01fe896f1dbf815bb835a80397b57c146a806d23f5396be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x600099af52739a6ba01fe896f1dbf815bb835a80397b57c146a806d23f5396be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xae442730cca96fe7eb0b68aebee181a1f3ff3ce8cb4cdf20193ff9414ef68418", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xae442730cca96fe7eb0b68aebee181a1f3ff3ce8cb4cdf20193ff9414ef68418", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x600099af52739a6ba01fe896f1dbf815bb835a80397b57c146a806d23f5396be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a4", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log4_PC.json b/GeneralStateTests/stLogTests/log4_PC.json index 07071caa8..5d0278299 100644 --- a/GeneralStateTests/stLogTests/log4_PC.json +++ b/GeneralStateTests/stLogTests/log4_PC.json @@ -2,88 +2,58 @@ "log4_PC" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log4_PCFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4021647fb7e0128609e6e10111def7f6c93f6709c6aad0396d1bb6934167746a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4021647fb7e0128609e6e10111def7f6c93f6709c6aad0396d1bb6934167746a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x821b12dad8d27576f1457fd8b265afcaff6622650275e4471df40b7dd080ff74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x821b12dad8d27576f1457fd8b265afcaff6622650275e4471df40b7dd080ff74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4021647fb7e0128609e6e10111def7f6c93f6709c6aad0396d1bb6934167746a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff6000535858585860206000a4", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG4 0 32 (PC) (PC) (PC) (PC) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log4_emptyMem.json b/GeneralStateTests/stLogTests/log4_emptyMem.json index 59b7c764e..07f880cec 100644 --- a/GeneralStateTests/stLogTests/log4_emptyMem.json +++ b/GeneralStateTests/stLogTests/log4_emptyMem.json @@ -2,88 +2,58 @@ "log4_emptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log4_emptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x656d3ea57ad49a1a44fd455a1a9b46bf4568cb1981eb27f639561af4e240885c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x656d3ea57ad49a1a44fd455a1a9b46bf4568cb1981eb27f639561af4e240885c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd74cc4c5e28da1430d7c6995c36a78148c2fa556000c2813b18481357a12b141", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd74cc4c5e28da1430d7c6995c36a78148c2fa556000c2813b18481357a12b141", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x656d3ea57ad49a1a44fd455a1a9b46bf4568cb1981eb27f639561af4e240885c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600060006000a4", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG4 0 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log4_logMemStartTooHigh.json b/GeneralStateTests/stLogTests/log4_logMemStartTooHigh.json index 1dd4f3893..3c77b6d22 100644 --- a/GeneralStateTests/stLogTests/log4_logMemStartTooHigh.json +++ b/GeneralStateTests/stLogTests/log4_logMemStartTooHigh.json @@ -2,88 +2,57 @@ "log4_logMemStartTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log4_logMemStartTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x97e1497892dad551259b6b1e7fc0bed316f7f93bd9581db39015d6e20b5729b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x97e1497892dad551259b6b1e7fc0bed316f7f93bd9581db39015d6e20b5729b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x49a5a4f20c98bcc0609c45c48cb942b5f0de00882e5f0988b7853c7268547f4f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x49a5a4f20c98bcc0609c45c48cb942b5f0de00882e5f0988b7853c7268547f4f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x97e1497892dad551259b6b1e7fc0bed316f7f93bd9581db39015d6e20b5729b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa4", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log4_logMemsizeTooHigh.json b/GeneralStateTests/stLogTests/log4_logMemsizeTooHigh.json index 8f0fea7f7..36ac3fdb6 100644 --- a/GeneralStateTests/stLogTests/log4_logMemsizeTooHigh.json +++ b/GeneralStateTests/stLogTests/log4_logMemsizeTooHigh.json @@ -2,88 +2,57 @@ "log4_logMemsizeTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log4_logMemsizeTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2a661367187bf31f5934e92024b253b8d9b17dbafc859e9ae513156c6870e72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2a661367187bf31f5934e92024b253b8d9b17dbafc859e9ae513156c6870e72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6cdceaada2920deb32d534a6adc30f0cb2c1fe10002d1002a0739ca9d63fc632", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6cdceaada2920deb32d534a6adc30f0cb2c1fe10002d1002a0739ca9d63fc632", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2a661367187bf31f5934e92024b253b8d9b17dbafc859e9ae513156c6870e72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a4", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log4_logMemsizeZero.json b/GeneralStateTests/stLogTests/log4_logMemsizeZero.json index e38497427..52e522088 100644 --- a/GeneralStateTests/stLogTests/log4_logMemsizeZero.json +++ b/GeneralStateTests/stLogTests/log4_logMemsizeZero.json @@ -2,88 +2,58 @@ "log4_logMemsizeZero" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log4_logMemsizeZeroFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x51af175d8af1aff46e6e555f372879d55c68eeb40d30978c805e5745ed608a67", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x51af175d8af1aff46e6e555f372879d55c68eeb40d30978c805e5745ed608a67", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa43b05c1042a916f1c6861d4da9bee76f1f049d5170153db0b8c3d4db7de7ef8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa43b05c1042a916f1c6861d4da9bee76f1f049d5170153db0b8c3d4db7de7ef8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x51af175d8af1aff46e6e555f372879d55c68eeb40d30978c805e5745ed608a67", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006000600060006001a4", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log4_nonEmptyMem.json b/GeneralStateTests/stLogTests/log4_nonEmptyMem.json index 68a319304..de0815f52 100644 --- a/GeneralStateTests/stLogTests/log4_nonEmptyMem.json +++ b/GeneralStateTests/stLogTests/log4_nonEmptyMem.json @@ -2,88 +2,58 @@ "log4_nonEmptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log4_nonEmptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x258d671764a9c2c9e379e840b45b96f6301222c15c903c377d6fc4c67b023bdc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x258d671764a9c2c9e379e840b45b96f6301222c15c903c377d6fc4c67b023bdc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf0760c91eb96db3e327e8e33b84e2e123d31cb1e72fc1a17b01b9512175a9234", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf0760c91eb96db3e327e8e33b84e2e123d31cb1e72fc1a17b01b9512175a9234", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x258d671764a9c2c9e379e840b45b96f6301222c15c903c377d6fc4c67b023bdc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052600060006000600060206000a4", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG4 0 32 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log4_nonEmptyMem_logMemSize1.json b/GeneralStateTests/stLogTests/log4_nonEmptyMem_logMemSize1.json index 876b70172..58769488f 100644 --- a/GeneralStateTests/stLogTests/log4_nonEmptyMem_logMemSize1.json +++ b/GeneralStateTests/stLogTests/log4_nonEmptyMem_logMemSize1.json @@ -2,88 +2,58 @@ "log4_nonEmptyMem_logMemSize1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log4_nonEmptyMem_logMemSize1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe6338fc1942d03536c8fba06cb7c956c0800ee31ee8768076d4939b5678fad33", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe6338fc1942d03536c8fba06cb7c956c0800ee31ee8768076d4939b5678fad33", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd48c959bdfb4f224e491eeec3e9be0e058754bf0cf3e4c1abc2ce13bb59f5f88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd48c959bdfb4f224e491eeec3e9be0e058754bf0cf3e4c1abc2ce13bb59f5f88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe6338fc1942d03536c8fba06cb7c956c0800ee31ee8768076d4939b5678fad33", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006000600060016000a4", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/log4_nonEmptyMem_logMemSize1_logMemStart31.json b/GeneralStateTests/stLogTests/log4_nonEmptyMem_logMemSize1_logMemStart31.json index 0606a7281..694f89c27 100644 --- a/GeneralStateTests/stLogTests/log4_nonEmptyMem_logMemSize1_logMemStart31.json +++ b/GeneralStateTests/stLogTests/log4_nonEmptyMem_logMemSize1_logMemStart31.json @@ -2,88 +2,58 @@ "log4_nonEmptyMem_logMemSize1_logMemStart31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/log4_nonEmptyMem_logMemSize1_logMemStart31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa470a017243b427501c9b4b52f09262e66d10fa1c9c8ccfe7399e108eda928dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa470a017243b427501c9b4b52f09262e66d10fa1c9c8ccfe7399e108eda928dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x888ab2f7923c9955079b8e624444d2b51cda9663bee25032d448d93777adcd21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x888ab2f7923c9955079b8e624444d2b51cda9663bee25032d448d93777adcd21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa470a017243b427501c9b4b52f09262e66d10fa1c9c8ccfe7399e108eda928dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060006001601fa4", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 31 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stLogTests/logInOOG_Call.json b/GeneralStateTests/stLogTests/logInOOG_Call.json index 925dec047..6c9955fbe 100644 --- a/GeneralStateTests/stLogTests/logInOOG_Call.json +++ b/GeneralStateTests/stLogTests/logInOOG_Call.json @@ -2,88 +2,58 @@ "logInOOG_Call" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stLogTests/logInOOG_CallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x529fc80d5ffb5ddddfdcf621a31defddc99c330d68b490b0949a9ca2ccfa0a5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x529fc80d5ffb5ddddfdcf621a31defddc99c330d68b490b0949a9ca2ccfa0a5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa22462b91b17b9e4343b3064d974bf6bf5b27705c6cc88dfbf55b2c85331f69b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa22462b91b17b9e4343b3064d974bf6bf5b27705c6cc88dfbf55b2c85331f69b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x529fc80d5ffb5ddddfdcf621a31defddc99c330d68b490b0949a9ca2ccfa0a5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec6620186a0f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 100000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60206000a067ffffffffffffffff51", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG0 0 32) (MLOAD 0xffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stMemExpandingEIP150Calls/CallAndCallcodeConsumeMoreGasThenTransactionHasWithMemExpandingCalls.json b/GeneralStateTests/stMemExpandingEIP150Calls/CallAndCallcodeConsumeMoreGasThenTransactionHasWithMemExpandingCalls.json index 0d5c9726b..4af196dc5 100644 --- a/GeneralStateTests/stMemExpandingEIP150Calls/CallAndCallcodeConsumeMoreGasThenTransactionHasWithMemExpandingCalls.json +++ b/GeneralStateTests/stMemExpandingEIP150Calls/CallAndCallcodeConsumeMoreGasThenTransactionHasWithMemExpandingCalls.json @@ -2,85 +2,95 @@ "CallAndCallcodeConsumeMoreGasThenTransactionHasWithMemExpandingCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemExpandingEIP150Calls/CallAndCallcodeConsumeMoreGasThenTransactionHasWithMemExpandingCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3a47c0e593bb7e5efddd07e15e10b7dc504b52b53ed93a924c5a32ff4ef5c373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000103" : { + "storage" : { + "0x00" : "0x12" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999877487", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x08" : "0x08d5b6", + "0x09" : "0x01", + "0x0a" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x3a47c0e593bb7e5efddd07e15e10b7dc504b52b53ed93a924c5a32ff4ef5c373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1d6bfacf8c876797594943ff7a8d91c46d2ce8d1741fbc86d1efd5f223abff10", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1d6bfacf8c876797594943ff7a8d91c46d2ce8d1741fbc86d1efd5f223abff10", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3a47c0e593bb7e5efddd07e15e10b7dc504b52b53ed93a924c5a32ff4ef5c373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000103" : { + "storage" : { + "0x00" : "0" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999400000", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x08" : "0", + "0x09" : "0", + "0x0a" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000103" : { + "1000000000000000000000000000000000000103" : { "balance" : "0x00", "code" : "0x6012600055", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xe8d4a51000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x00", "code" : "0x5a60085560ff60ff60ff60ff6000731000000000000000000000000000000000000103620927c0f160095560ff60ff60ff60ff6000731000000000000000000000000000000000000103620927c0f2600a55", "nonce" : "0x00", @@ -95,12 +105,12 @@ "gasLimit" : [ "0x0927c0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemExpandingEIP150Calls/CallAskMoreGasOnDepth2ThenTransactionHasWithMemExpandingCalls.json b/GeneralStateTests/stMemExpandingEIP150Calls/CallAskMoreGasOnDepth2ThenTransactionHasWithMemExpandingCalls.json index 393b0c991..71b8f9304 100644 --- a/GeneralStateTests/stMemExpandingEIP150Calls/CallAskMoreGasOnDepth2ThenTransactionHasWithMemExpandingCalls.json +++ b/GeneralStateTests/stMemExpandingEIP150Calls/CallAskMoreGasOnDepth2ThenTransactionHasWithMemExpandingCalls.json @@ -2,92 +2,110 @@ "CallAskMoreGasOnDepth2ThenTransactionHasWithMemExpandingCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemExpandingEIP150Calls/CallAskMoreGasOnDepth2ThenTransactionHasWithMemExpandingCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc8d3489ab7b0e7016720dc3b3bb467d3413baf8c4309a37a90a0fd355ad931db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000107" : { + "storage" : { + "0x08" : "0x030d3e", + "0x09" : "0x01" + } + }, + "1000000000000000000000000000000000000108" : { + "storage" : { + "0x08" : "0x02b128" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999877441", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x08" : "0x08d5b6", + "0x09" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc8d3489ab7b0e7016720dc3b3bb467d3413baf8c4309a37a90a0fd355ad931db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x653879f51080262e4762e0c116802c72b702b4c7179dd2f21ed393c0d284f247", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x653879f51080262e4762e0c116802c72b702b4c7179dd2f21ed393c0d284f247", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc8d3489ab7b0e7016720dc3b3bb467d3413baf8c4309a37a90a0fd355ad931db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000107" : { + "storage" : { + "0x08" : "0", + "0x09" : "0" + } + }, + "1000000000000000000000000000000000000108" : { + "storage" : { + "0x08" : "0" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999753883", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x08" : "0x08d5b6", + "0x09" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000107" : { + "1000000000000000000000000000000000000107" : { "balance" : "0x00", "code" : "0x5a60085560ff60ff60ff60ff6000731000000000000000000000000000000000000108620927c0f1600955", "nonce" : "0x00", "storage" : { } }, - "0x1000000000000000000000000000000000000108" : { + "1000000000000000000000000000000000000108" : { "balance" : "0x00", "code" : "0x5a600855", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xe8d4a51000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x00", "code" : "0x5a60085560ff60ff60ff60ff600073100000000000000000000000000000000000010762030d40f1600955", "nonce" : "0x00", @@ -102,12 +120,12 @@ "gasLimit" : [ "0x0927c0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemExpandingEIP150Calls/CallGoesOOGOnSecondLevel2WithMemExpandingCalls.json b/GeneralStateTests/stMemExpandingEIP150Calls/CallGoesOOGOnSecondLevel2WithMemExpandingCalls.json index 4929b43f9..9a2dd1dc3 100644 --- a/GeneralStateTests/stMemExpandingEIP150Calls/CallGoesOOGOnSecondLevel2WithMemExpandingCalls.json +++ b/GeneralStateTests/stMemExpandingEIP150Calls/CallGoesOOGOnSecondLevel2WithMemExpandingCalls.json @@ -2,92 +2,100 @@ "CallGoesOOGOnSecondLevel2WithMemExpandingCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemExpandingEIP150Calls/CallGoesOOGOnSecondLevel2WithMemExpandingCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc53380bbe4ce6faf67f118f60693db4bc55ad222bca864a691d72de50432e1b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000113" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000114" : { + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999840000", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc53380bbe4ce6faf67f118f60693db4bc55ad222bca864a691d72de50432e1b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc53380bbe4ce6faf67f118f60693db4bc55ad222bca864a691d72de50432e1b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc53380bbe4ce6faf67f118f60693db4bc55ad222bca864a691d72de50432e1b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc53380bbe4ce6faf67f118f60693db4bc55ad222bca864a691d72de50432e1b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000113" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000114" : { + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999840000", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000113" : { + "1000000000000000000000000000000000000113" : { "balance" : "0x00", "code" : "0x5a60085560ff60ff60ff60ff6000731000000000000000000000000000000000000114620927c0f1600955", "nonce" : "0x00", "storage" : { } }, - "0x1000000000000000000000000000000000000114" : { + "1000000000000000000000000000000000000114" : { "balance" : "0x00", "code" : "0x5a6008555a6009555a600a55", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xe8d4a51000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x00", "code" : "0x5a60085560ff60ff60ff60ff6000731000000000000000000000000000000000000113620927c0f1600955", "nonce" : "0x00", @@ -102,12 +110,12 @@ "gasLimit" : [ "0x027100" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemExpandingEIP150Calls/CallGoesOOGOnSecondLevelWithMemExpandingCalls.json b/GeneralStateTests/stMemExpandingEIP150Calls/CallGoesOOGOnSecondLevelWithMemExpandingCalls.json index 5022bf859..e1abd5ae4 100644 --- a/GeneralStateTests/stMemExpandingEIP150Calls/CallGoesOOGOnSecondLevelWithMemExpandingCalls.json +++ b/GeneralStateTests/stMemExpandingEIP150Calls/CallGoesOOGOnSecondLevelWithMemExpandingCalls.json @@ -2,92 +2,100 @@ "CallGoesOOGOnSecondLevelWithMemExpandingCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemExpandingEIP150Calls/CallGoesOOGOnSecondLevelWithMemExpandingCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf29c645d8735ceb8bc618a4069db255bdf77c23ece151cf0822c1613e8227c00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000110" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000111" : { + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999780000", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf29c645d8735ceb8bc618a4069db255bdf77c23ece151cf0822c1613e8227c00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf29c645d8735ceb8bc618a4069db255bdf77c23ece151cf0822c1613e8227c00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf29c645d8735ceb8bc618a4069db255bdf77c23ece151cf0822c1613e8227c00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf29c645d8735ceb8bc618a4069db255bdf77c23ece151cf0822c1613e8227c00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000110" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000111" : { + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999780000", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000110" : { + "1000000000000000000000000000000000000110" : { "balance" : "0x00", "code" : "0x5a60085560ff60ff60ff60ff6000731000000000000000000000000000000000000111620927c0f1600955", "nonce" : "0x00", "storage" : { } }, - "0x1000000000000000000000000000000000000111" : { + "1000000000000000000000000000000000000111" : { "balance" : "0x00", "code" : "0x5a600855600060006000f050600060006000f0505a6009555a600a55", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xe8d4a51000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x00", "code" : "0x5a60085560ff60ff60ff60ff6000731000000000000000000000000000000000000110620927c0f1600955", "nonce" : "0x00", @@ -102,12 +110,12 @@ "gasLimit" : [ "0x035b60" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemExpandingEIP150Calls/CreateAndGasInsideCreateWithMemExpandingCalls.json b/GeneralStateTests/stMemExpandingEIP150Calls/CreateAndGasInsideCreateWithMemExpandingCalls.json index d0f9e8568..8797ec4d5 100644 --- a/GeneralStateTests/stMemExpandingEIP150Calls/CreateAndGasInsideCreateWithMemExpandingCalls.json +++ b/GeneralStateTests/stMemExpandingEIP150Calls/CreateAndGasInsideCreateWithMemExpandingCalls.json @@ -2,78 +2,88 @@ "CreateAndGasInsideCreateWithMemExpandingCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemExpandingEIP150Calls/CreateAndGasInsideCreateWithMemExpandingCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3ca082f6185a3019aea75573a032dd81b0e99f7b7f464b1a84e55eae4513baf5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999866961", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1", + "storage" : { + "0x09" : "0x076e34", + "0x0a" : "0x08d5b6", + "0x0b" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "storage" : { + "0xfd" : "0x07ea53" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4bd8b2a14dc113c65caabef1a52808b711e65ef0eadb38e72a7d0527fbddf1aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0a54e84b6282918bc9e9ec50464ca2edf2e4e3f4ef2ce08fb8660e05b2b0cb02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0a54e84b6282918bc9e9ec50464ca2edf2e4e3f4ef2ce08fb8660e05b2b0cb02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4bd8b2a14dc113c65caabef1a52808b711e65ef0eadb38e72a7d0527fbddf1aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999866961", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1", + "storage" : { + "0x09" : "0x076e34", + "0x0a" : "0x08d5b6", + "0x0b" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "storage" : { + "0xfd" : "0x080a7c" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xe8d4a51000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x00", "code" : "0x5a600a55635a60fd556000526004601c6000f0600b555a600955", "nonce" : "0x00", @@ -88,12 +98,12 @@ "gasLimit" : [ "0x0927c0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemExpandingEIP150Calls/DelegateCallOnEIPWithMemExpandingCalls.json b/GeneralStateTests/stMemExpandingEIP150Calls/DelegateCallOnEIPWithMemExpandingCalls.json index f77b74234..95dba5fe4 100644 --- a/GeneralStateTests/stMemExpandingEIP150Calls/DelegateCallOnEIPWithMemExpandingCalls.json +++ b/GeneralStateTests/stMemExpandingEIP150Calls/DelegateCallOnEIPWithMemExpandingCalls.json @@ -2,85 +2,91 @@ "DelegateCallOnEIPWithMemExpandingCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemExpandingEIP150Calls/DelegateCallOnEIPWithMemExpandingCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa5c328fefa9c88698bc8874c177e30b327354c21d0fc4e8798f311f98ad9ac6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000105" : { + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999918220", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x08" : "0x08d5b6", + "0x09" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa5c328fefa9c88698bc8874c177e30b327354c21d0fc4e8798f311f98ad9ac6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x31ee439cef3e374eb3430278ed326d6114a4218a033843fdddf2edd8a7f994f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x31ee439cef3e374eb3430278ed326d6114a4218a033843fdddf2edd8a7f994f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa5c328fefa9c88698bc8874c177e30b327354c21d0fc4e8798f311f98ad9ac6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000105" : { + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999400000", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x08" : "0", + "0x09" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000105" : { + "1000000000000000000000000000000000000105" : { "balance" : "0x00", "code" : "0x6012600055", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xe8d4a51000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x00", "code" : "0x5a60085560ff60ff60ff60ff731000000000000000000000000000000000000105620927c0f4600955", "nonce" : "0x00", @@ -95,12 +101,12 @@ "gasLimit" : [ "0x0927c0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemExpandingEIP150Calls/ExecuteCallThatAskMoreGasThenTransactionHasWithMemExpandingCalls.json b/GeneralStateTests/stMemExpandingEIP150Calls/ExecuteCallThatAskMoreGasThenTransactionHasWithMemExpandingCalls.json index 5b64d3e2d..eb374e450 100644 --- a/GeneralStateTests/stMemExpandingEIP150Calls/ExecuteCallThatAskMoreGasThenTransactionHasWithMemExpandingCalls.json +++ b/GeneralStateTests/stMemExpandingEIP150Calls/ExecuteCallThatAskMoreGasThenTransactionHasWithMemExpandingCalls.json @@ -2,85 +2,97 @@ "ExecuteCallThatAskMoreGasThenTransactionHasWithMemExpandingCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemExpandingEIP150Calls/ExecuteCallThatAskMoreGasThenTransactionHasWithMemExpandingCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x94b4df76c833bb02bfeb6b63427db966e368c23d3a41baf0c06ca6d6c29368d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "100000", + "storage" : { + "0x01" : "0x0c" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "61778" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "38222", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x94b4df76c833bb02bfeb6b63427db966e368c23d3a41baf0c06ca6d6c29368d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc6ceff6d4e61b8fa03745e08a6250ec800ca8be50a5c7a1605a85c3a4197fec9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc6ceff6d4e61b8fa03745e08a6250ec800ca8be50a5c7a1605a85c3a4197fec9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x94b4df76c833bb02bfeb6b63427db966e368c23d3a41baf0c06ca6d6c29368d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "100000", + "storage" : { + "0x01" : "0" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "100000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000001" : { + "1000000000000000000000000000000000000001" : { "balance" : "0x0186a0", "code" : "0x600c600155", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0186a0", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x00", "code" : "0x60ff60ff60ff60ff6000731000000000000000000000000000000000000001620927c0f1600155", "nonce" : "0x00", @@ -95,12 +107,12 @@ "gasLimit" : [ "0x0186a0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemExpandingEIP150Calls/NewGasPriceForCodesWithMemExpandingCalls.json b/GeneralStateTests/stMemExpandingEIP150Calls/NewGasPriceForCodesWithMemExpandingCalls.json index 8c4536a2d..b604a396b 100644 --- a/GeneralStateTests/stMemExpandingEIP150Calls/NewGasPriceForCodesWithMemExpandingCalls.json +++ b/GeneralStateTests/stMemExpandingEIP150Calls/NewGasPriceForCodesWithMemExpandingCalls.json @@ -2,92 +2,170 @@ "NewGasPriceForCodesWithMemExpandingCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemExpandingEIP150Calls/NewGasPriceForCodesWithMemExpandingCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x479fef1d31182ab6f401423f71268b338d5ab64cf0134b1d00429fbbb2681bc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000010" : { + "balance" : "111" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999765606", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0x20", + "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", + "0x03" : "0xe8d49be840", + "0x04" : "0x12", + "0x07" : "0x01", + "0x08" : "0x01", + "0x0a" : "0x05e249", + "0x64" : "0x11" + } } } - ], - "EIP158" : [ - { - "hash" : "0x3c5bae587cde223b9fa96b488a8d11e43d9b52243a0ff8cb16e9e688add81211", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x55d3f32c0cb176382fbd4970701b62a8e9b01e83c9e83b203b1aceeef65ca3ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000010" : { + "balance" : "111" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999790606", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0x20", + "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", + "0x03" : "0xe8d49be840", + "0x04" : "0x12", + "0x07" : "0x01", + "0x08" : "0x01", + "0x0a" : "0x0643f1", + "0x64" : "0x11" + } } } - ], - "Homestead" : [ - { - "hash" : "0xa70ebcc9693ee6433f20def41c872b787d82673ab6d421a80174e8b5968d3a62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "1000000000000000000000000000000000000010" : { + "balance" : "111" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999400000", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0", + "0x02" : "0", + "0x03" : "0", + "0x04" : "0", + "0x07" : "0", + "0x08" : "0", + "0x0a" : "0", + "0x64" : "0" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x3c5bae587cde223b9fa96b488a8d11e43d9b52243a0ff8cb16e9e688add81211", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000010" : { + "balance" : "111" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999770136", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x01" : "0x20", + "0x02" : "0x1122334455667788991011121314151617181920000000000000000000000000", + "0x03" : "0xe8d49be840", + "0x04" : "0x12", + "0x07" : "0x01", + "0x08" : "0x01", + "0x0a" : "0x05f3fb", + "0x64" : "0x11" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000010" : { + "1000000000000000000000000000000000000010" : { "balance" : "0x6f", "code" : "0x1122334455667788991011121314151617181920212223242526272829303132", "nonce" : "0x00", "storage" : { } }, - "0x1000000000000000000000000000000000000011" : { + "1000000000000000000000000000000000000011" : { "balance" : "0x00", "code" : "0x6011606455", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xe8d4a51000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x00", "code" : "0x7310000000000000000000000000000000000000103b6001556014600060007310000000000000000000000000000000000000103c60005160025560005460045560ff60ff60ff60ff6001731000000000000000000000000000000000000011617530f160055560ff60ff60ff60ff6001731000000000000000000000000000000000000011617530f260065560ff60ff60ff60ff731000000000000000000000000000000000000011617530f460075560ff60ff60ff60ff6000731000000000000000000000000000000000000013617530f160085573a94f5374fce5edbc8e2a8697c15331677e6ebf0b316003555a600a55", "nonce" : "0x00", @@ -103,12 +181,12 @@ "gasLimit" : [ "0x0927c0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds.json b/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds.json index e2d386a9d..46f7271ba 100644 --- a/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds.json @@ -2,128 +2,56 @@ "CALLCODE_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/CALLCODE_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2c4b9214d28816b7a4aea016871aa4c9fe3a19e08b7e581990c57550162f60f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe66e0ad8262c9d853abeac8c9181f7523f3f3908e0fd2225539fa30a825320ce", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2c4b9214d28816b7a4aea016871aa4c9fe3a19e08b7e581990c57550162f60f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe66e0ad8262c9d853abeac8c9181f7523f3f3908e0fd2225539fa30a825320ce", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2c4b9214d28816b7a4aea016871aa4c9fe3a19e08b7e581990c57550162f60f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe66e0ad8262c9d853abeac8c9181f7523f3f3908e0fd2225539fa30a825320ce", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2c4b9214d28816b7a4aea016871aa4c9fe3a19e08b7e581990c57550162f60f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe66e0ad8262c9d853abeac8c9181f7523f3f3908e0fd2225539fa30a825320ce", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2c4b9214d28816b7a4aea016871aa4c9fe3a19e08b7e581990c57550162f60f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xe66e0ad8262c9d853abeac8c9181f7523f3f3908e0fd2225539fa30a825320ce", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600060006000600060007310000000000000000000000000000000000000016707fffffffffffffff250630fffffff6000630fffffff600060007310000000000000000000000000000000000000016707fffffffffffffff25063ffffffff600063ffffffff600060007310000000000000000000000000000000000000016707fffffffffffffff2506000630fffffff6000630fffffff60007310000000000000000000000000000000000000016707fffffffffffffff250600063ffffffff600063ffffffff60007310000000000000000000000000000000000000016707fffffffffffffff250600067ffffffffffffffff600067ffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff25060006fffffffffffffffffffffffffffffffff60006fffffffffffffffffffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff25060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff2", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0 0) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0xfffffff 0 0xfffffff) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0xffffffff 0 0xffffffff) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xfffffff 0 0xfffffff 0) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffff 0 0xffffffff 0) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffff 0 0xffffffffffffffff 0) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff 0) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +61,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds2.json b/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds2.json index 15318313f..ca43777f0 100644 --- a/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds2.json +++ b/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds2.json @@ -2,128 +2,56 @@ "CALLCODE_Bounds2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/CALLCODE_Bounds2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x78b8826f9e0bd3b7245581861b05c0ae453bedd7e33ff37f92ca6588b559ded6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xea11e8bc4d29f7fc9f83fe4212e7bc19e1a3d7a9d9a6f0ead9d9b22ba786d0b4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x78b8826f9e0bd3b7245581861b05c0ae453bedd7e33ff37f92ca6588b559ded6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xea11e8bc4d29f7fc9f83fe4212e7bc19e1a3d7a9d9a6f0ead9d9b22ba786d0b4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x78b8826f9e0bd3b7245581861b05c0ae453bedd7e33ff37f92ca6588b559ded6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xea11e8bc4d29f7fc9f83fe4212e7bc19e1a3d7a9d9a6f0ead9d9b22ba786d0b4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x78b8826f9e0bd3b7245581861b05c0ae453bedd7e33ff37f92ca6588b559ded6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xea11e8bc4d29f7fc9f83fe4212e7bc19e1a3d7a9d9a6f0ead9d9b22ba786d0b4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x78b8826f9e0bd3b7245581861b05c0ae453bedd7e33ff37f92ca6588b559ded6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xea11e8bc4d29f7fc9f83fe4212e7bc19e1a3d7a9d9a6f0ead9d9b22ba786d0b4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x630fffffff630fffffff630fffffff630fffffff60007310000000000000000000000000000000000000016707fffffffffffffff2", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xfffffff 0xfffffff 0xfffffff 0xfffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +61,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds3.json b/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds3.json index c3eb2fee6..ef1770798 100644 --- a/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds3.json +++ b/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds3.json @@ -2,128 +2,56 @@ "CALLCODE_Bounds3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/CALLCODE_Bounds3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa60eaa88033a93724c594b9af586d0b59e14329834385e4aa7a6d476dab17cdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc42356a2337d4ef98581ca4fec268dbcfcec6c6b4a66b502d4d7e388a5af909e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa60eaa88033a93724c594b9af586d0b59e14329834385e4aa7a6d476dab17cdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc42356a2337d4ef98581ca4fec268dbcfcec6c6b4a66b502d4d7e388a5af909e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa60eaa88033a93724c594b9af586d0b59e14329834385e4aa7a6d476dab17cdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc42356a2337d4ef98581ca4fec268dbcfcec6c6b4a66b502d4d7e388a5af909e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa60eaa88033a93724c594b9af586d0b59e14329834385e4aa7a6d476dab17cdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc42356a2337d4ef98581ca4fec268dbcfcec6c6b4a66b502d4d7e388a5af909e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa60eaa88033a93724c594b9af586d0b59e14329834385e4aa7a6d476dab17cdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xc42356a2337d4ef98581ca4fec268dbcfcec6c6b4a66b502d4d7e388a5af909e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x63ffffffff63ffffffff63ffffffff63ffffffff60007310000000000000000000000000000000000000016707fffffffffffffff2", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffff 0xffffffff 0xffffffff 0xffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +61,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds4.json b/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds4.json index e94548b22..1111f0364 100644 --- a/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds4.json +++ b/GeneralStateTests/stMemoryStressTest/CALLCODE_Bounds4.json @@ -2,168 +2,56 @@ "CALLCODE_Bounds4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/CALLCODE_Bounds4Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd4a3c9e1bc0f1223c4c2a02675b60ca191c2e4936fd3b59ec03dd05eef6e8413", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x449e023c1959494c7afa1550f14396ca46a30a0b1526143f9eefe034c98e13d1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x25d72f814c35bbe716a94b3239e8eb88bf990d80e3edef6613161bbffe9623d9", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd4a3c9e1bc0f1223c4c2a02675b60ca191c2e4936fd3b59ec03dd05eef6e8413", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x449e023c1959494c7afa1550f14396ca46a30a0b1526143f9eefe034c98e13d1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x25d72f814c35bbe716a94b3239e8eb88bf990d80e3edef6613161bbffe9623d9", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd4a3c9e1bc0f1223c4c2a02675b60ca191c2e4936fd3b59ec03dd05eef6e8413", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x449e023c1959494c7afa1550f14396ca46a30a0b1526143f9eefe034c98e13d1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x25d72f814c35bbe716a94b3239e8eb88bf990d80e3edef6613161bbffe9623d9", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x00" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0xd4a3c9e1bc0f1223c4c2a02675b60ca191c2e4936fd3b59ec03dd05eef6e8413", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x449e023c1959494c7afa1550f14396ca46a30a0b1526143f9eefe034c98e13d1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x25d72f814c35bbe716a94b3239e8eb88bf990d80e3edef6613161bbffe9623d9", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd4a3c9e1bc0f1223c4c2a02675b60ca191c2e4936fd3b59ec03dd05eef6e8413", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x449e023c1959494c7afa1550f14396ca46a30a0b1526143f9eefe034c98e13d1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x25d72f814c35bbe716a94b3239e8eb88bf990d80e3edef6613161bbffe9623d9", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x67ffffffffffffffff600067ffffffffffffffff600060007310000000000000000000000000000000000000016707fffffffffffffff2506fffffffffffffffffffffffffffffffff60006fffffffffffffffffffffffffffffffff600060007310000000000000000000000000000000000000016707fffffffffffffff2507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600060007310000000000000000000000000000000000000016707fffffffffffffff25067ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff25067ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff2507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007310000000", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0xffffffffffffffff 0 0xffffffffffffffff) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALLCODE 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -173,16 +61,16 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0f4240", - "0x0ee6b280" + "150000", + "1000000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/CALL_Bounds.json b/GeneralStateTests/stMemoryStressTest/CALL_Bounds.json index 3aa2b4d13..dd2f2c3b9 100644 --- a/GeneralStateTests/stMemoryStressTest/CALL_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/CALL_Bounds.json @@ -2,128 +2,58 @@ "CALL_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/CALL_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x135550e1c3fc5f489840f0b4ad2311afa13c055693cb6abccf0b64eb63aca4e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0a80fa99736510a6965c48da2b7d59aaea80b6db377bd8746bae6765002e48b1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x135550e1c3fc5f489840f0b4ad2311afa13c055693cb6abccf0b64eb63aca4e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0a80fa99736510a6965c48da2b7d59aaea80b6db377bd8746bae6765002e48b1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x135550e1c3fc5f489840f0b4ad2311afa13c055693cb6abccf0b64eb63aca4e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0a80fa99736510a6965c48da2b7d59aaea80b6db377bd8746bae6765002e48b1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x135550e1c3fc5f489840f0b4ad2311afa13c055693cb6abccf0b64eb63aca4e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0a80fa99736510a6965c48da2b7d59aaea80b6db377bd8746bae6765002e48b1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x135550e1c3fc5f489840f0b4ad2311afa13c055693cb6abccf0b64eb63aca4e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x0a80fa99736510a6965c48da2b7d59aaea80b6db377bd8746bae6765002e48b1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600060006000600060007310000000000000000000000000000000000000016707fffffffffffffff150630fffffff6000630fffffff600060007310000000000000000000000000000000000000016707fffffffffffffff15063ffffffff600063ffffffff600060007310000000000000000000000000000000000000016707fffffffffffffff1506000630fffffff6000630fffffff60007310000000000000000000000000000000000000016707fffffffffffffff150600063ffffffff600063ffffffff60007310000000000000000000000000000000000000016707fffffffffffffff150600067ffffffffffffffff600067ffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff15060006fffffffffffffffffffffffffffffffff60006fffffffffffffffffffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff15060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff1", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0 0) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0xfffffff 0 0xfffffff) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0xffffffff 0 0xffffffff) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xfffffff 0 0xfffffff 0) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffff 0 0xffffffff 0) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffff 0 0xffffffffffffffff 0) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff 0) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +63,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/CALL_Bounds2.json b/GeneralStateTests/stMemoryStressTest/CALL_Bounds2.json index 5f9fc5447..23b04326b 100644 --- a/GeneralStateTests/stMemoryStressTest/CALL_Bounds2.json +++ b/GeneralStateTests/stMemoryStressTest/CALL_Bounds2.json @@ -2,128 +2,58 @@ "CALL_Bounds2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/CALL_Bounds2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x79e32c7edc24a77ffaaa3a7eaf5cf7625c5a6fc2cc98fa4fce7996577aa819b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf7f87c59b5147540ba22a69169d27aaa67a368d73848454a833c7155149c669d", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x79e32c7edc24a77ffaaa3a7eaf5cf7625c5a6fc2cc98fa4fce7996577aa819b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf7f87c59b5147540ba22a69169d27aaa67a368d73848454a833c7155149c669d", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x79e32c7edc24a77ffaaa3a7eaf5cf7625c5a6fc2cc98fa4fce7996577aa819b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf7f87c59b5147540ba22a69169d27aaa67a368d73848454a833c7155149c669d", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x79e32c7edc24a77ffaaa3a7eaf5cf7625c5a6fc2cc98fa4fce7996577aa819b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf7f87c59b5147540ba22a69169d27aaa67a368d73848454a833c7155149c669d", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x79e32c7edc24a77ffaaa3a7eaf5cf7625c5a6fc2cc98fa4fce7996577aa819b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xf7f87c59b5147540ba22a69169d27aaa67a368d73848454a833c7155149c669d", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x630fffffff630fffffff630fffffff630fffffff60007310000000000000000000000000000000000000016707fffffffffffffff1", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xfffffff 0xfffffff 0xfffffff 0xfffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +63,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/CALL_Bounds2a.json b/GeneralStateTests/stMemoryStressTest/CALL_Bounds2a.json index 9a9687148..f31766d9b 100644 --- a/GeneralStateTests/stMemoryStressTest/CALL_Bounds2a.json +++ b/GeneralStateTests/stMemoryStressTest/CALL_Bounds2a.json @@ -2,128 +2,58 @@ "CALL_Bounds2a" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/CALL_Bounds2aFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7dd4b9a040a8918b3613d2f4e304e32700cfa575657b75363bd91e773fed1c8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x82c8a1d327c1689dc349a495620d09ee4fb4557232fde97bf1b347ea38239f61", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7dd4b9a040a8918b3613d2f4e304e32700cfa575657b75363bd91e773fed1c8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x82c8a1d327c1689dc349a495620d09ee4fb4557232fde97bf1b347ea38239f61", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7dd4b9a040a8918b3613d2f4e304e32700cfa575657b75363bd91e773fed1c8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x82c8a1d327c1689dc349a495620d09ee4fb4557232fde97bf1b347ea38239f61", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7dd4b9a040a8918b3613d2f4e304e32700cfa575657b75363bd91e773fed1c8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x82c8a1d327c1689dc349a495620d09ee4fb4557232fde97bf1b347ea38239f61", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7dd4b9a040a8918b3613d2f4e304e32700cfa575657b75363bd91e773fed1c8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x82c8a1d327c1689dc349a495620d09ee4fb4557232fde97bf1b347ea38239f61", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x63ffffffff63ffffffff63ffffffff63ffffffff60007310000000000000000000000000000000000000016707fffffffffffffff1", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffff 0xffffffff 0xffffffff 0xffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +63,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/CALL_Bounds3.json b/GeneralStateTests/stMemoryStressTest/CALL_Bounds3.json index b230ede99..6437287a0 100644 --- a/GeneralStateTests/stMemoryStressTest/CALL_Bounds3.json +++ b/GeneralStateTests/stMemoryStressTest/CALL_Bounds3.json @@ -2,168 +2,58 @@ "CALL_Bounds3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/CALL_Bounds3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8c74911ffa76564c530eebd8ad1b6c8d50c77521a79e43782391690a74c7c108", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6cc972fd413dcd97d394081a1d046ccb8b0e56302db4836f44df27c180d1e015", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc3ef45f580e085856f5f0f3b93020e304dbfcb7c3f8ac8e019112a56bfcc0793", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8c74911ffa76564c530eebd8ad1b6c8d50c77521a79e43782391690a74c7c108", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6cc972fd413dcd97d394081a1d046ccb8b0e56302db4836f44df27c180d1e015", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc3ef45f580e085856f5f0f3b93020e304dbfcb7c3f8ac8e019112a56bfcc0793", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8c74911ffa76564c530eebd8ad1b6c8d50c77521a79e43782391690a74c7c108", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6cc972fd413dcd97d394081a1d046ccb8b0e56302db4836f44df27c180d1e015", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xc3ef45f580e085856f5f0f3b93020e304dbfcb7c3f8ac8e019112a56bfcc0793", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x8c74911ffa76564c530eebd8ad1b6c8d50c77521a79e43782391690a74c7c108", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6cc972fd413dcd97d394081a1d046ccb8b0e56302db4836f44df27c180d1e015", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc3ef45f580e085856f5f0f3b93020e304dbfcb7c3f8ac8e019112a56bfcc0793", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8c74911ffa76564c530eebd8ad1b6c8d50c77521a79e43782391690a74c7c108", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6cc972fd413dcd97d394081a1d046ccb8b0e56302db4836f44df27c180d1e015", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc3ef45f580e085856f5f0f3b93020e304dbfcb7c3f8ac8e019112a56bfcc0793", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x67ffffffffffffffff600067ffffffffffffffff600060007310000000000000000000000000000000000000016707fffffffffffffff1506fffffffffffffffffffffffffffffffff60006fffffffffffffffffffffffffffffffff600060007310000000000000000000000000000000000000016707fffffffffffffff1507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600060007310000000000000000000000000000000000000016707fffffffffffffff15063ffffffff63ffffffff63ffffffff63ffffffff60007310000000000000000000000000000000000000016707fffffffffffffff15067ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff1506fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff1507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffff", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0xffffffffffffffff 0 0xffffffffffffffff) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -173,16 +63,16 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0f4240", - "0x0ee6b280" + "150000", + "1000000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/CREATE_Bounds.json b/GeneralStateTests/stMemoryStressTest/CREATE_Bounds.json index 62f14c62d..6e2b8b3c7 100644 --- a/GeneralStateTests/stMemoryStressTest/CREATE_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/CREATE_Bounds.json @@ -2,121 +2,52 @@ "CREATE_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/CREATE_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6f15d9a1eacf5b22ca0cd4f1f9c051b04deb72691f83bdbfb02deda51b0a7998", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe286d5477dd43ef438fd7d2cfc94bdabc3b37404b0908b2ad298405cf788f0ce", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6f15d9a1eacf5b22ca0cd4f1f9c051b04deb72691f83bdbfb02deda51b0a7998", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe286d5477dd43ef438fd7d2cfc94bdabc3b37404b0908b2ad298405cf788f0ce", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6f15d9a1eacf5b22ca0cd4f1f9c051b04deb72691f83bdbfb02deda51b0a7998", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe286d5477dd43ef438fd7d2cfc94bdabc3b37404b0908b2ad298405cf788f0ce", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6f15d9a1eacf5b22ca0cd4f1f9c051b04deb72691f83bdbfb02deda51b0a7998", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe286d5477dd43ef438fd7d2cfc94bdabc3b37404b0908b2ad298405cf788f0ce", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6f15d9a1eacf5b22ca0cd4f1f9c051b04deb72691f83bdbfb02deda51b0a7998", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xe286d5477dd43ef438fd7d2cfc94bdabc3b37404b0908b2ad298405cf788f0ce", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "100" + }, + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "shouldnotexist" : "1" + }, + "7c5a2c91b22d7a9226523d4ba717db6afb741ebd" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x64", - "code" : "0x7f6001600155601080600c6000396000f3006000355415600957005b602035600060005260356020536055602153600060006001f050630fffffff60006001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "100", + "code" : "{ (MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 ) (MSTORE8 32 0x35) (MSTORE8 33 0x55) (CREATE 1 0 0) (CREATE 1 0 0xfffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +57,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/CREATE_Bounds2.json b/GeneralStateTests/stMemoryStressTest/CREATE_Bounds2.json index 2d7817b0f..1dce4a494 100644 --- a/GeneralStateTests/stMemoryStressTest/CREATE_Bounds2.json +++ b/GeneralStateTests/stMemoryStressTest/CREATE_Bounds2.json @@ -2,121 +2,49 @@ "CREATE_Bounds2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/CREATE_Bounds2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x61a215e6ac1c0d4618b1580592c49d82cbe7e04439ffeaab65b8d8aa82de242f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6f851a4eb465efdec258536d9f9c237d5629273aac43d0686523eb983249eba0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x61a215e6ac1c0d4618b1580592c49d82cbe7e04439ffeaab65b8d8aa82de242f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6f851a4eb465efdec258536d9f9c237d5629273aac43d0686523eb983249eba0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x61a215e6ac1c0d4618b1580592c49d82cbe7e04439ffeaab65b8d8aa82de242f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6f851a4eb465efdec258536d9f9c237d5629273aac43d0686523eb983249eba0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x61a215e6ac1c0d4618b1580592c49d82cbe7e04439ffeaab65b8d8aa82de242f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6f851a4eb465efdec258536d9f9c237d5629273aac43d0686523eb983249eba0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x61a215e6ac1c0d4618b1580592c49d82cbe7e04439ffeaab65b8d8aa82de242f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x6f851a4eb465efdec258536d9f9c237d5629273aac43d0686523eb983249eba0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "100" + }, + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x64", - "code" : "0x7f6001600155601080600c6000396000f3006000355415600957005b60203560006000526035602053605560215363ffffffff60006001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "100", + "code" : "{ (MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 ) (MSTORE8 32 0x35) (MSTORE8 33 0x55) (CREATE 1 0 0xffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +54,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/CREATE_Bounds3.json b/GeneralStateTests/stMemoryStressTest/CREATE_Bounds3.json index 8d9d5ab1e..aba69f5d8 100644 --- a/GeneralStateTests/stMemoryStressTest/CREATE_Bounds3.json +++ b/GeneralStateTests/stMemoryStressTest/CREATE_Bounds3.json @@ -2,161 +2,49 @@ "CREATE_Bounds3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/CREATE_Bounds3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6ffe73255873de6b521925fd688d790e78b08eda7ae1f97f04818fcb3f88ae65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x60a6ca8cd651c6025acb1128210b94f385d1faa663a5d63cb6a98a77de0fbe43", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x6e20f394c4191fc2d92564fcbaf545c5939aeccb35a252d3024c3eb90d76441f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6ffe73255873de6b521925fd688d790e78b08eda7ae1f97f04818fcb3f88ae65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x60a6ca8cd651c6025acb1128210b94f385d1faa663a5d63cb6a98a77de0fbe43", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x6e20f394c4191fc2d92564fcbaf545c5939aeccb35a252d3024c3eb90d76441f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6ffe73255873de6b521925fd688d790e78b08eda7ae1f97f04818fcb3f88ae65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x60a6ca8cd651c6025acb1128210b94f385d1faa663a5d63cb6a98a77de0fbe43", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x6e20f394c4191fc2d92564fcbaf545c5939aeccb35a252d3024c3eb90d76441f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "100" + }, + "13136008b64ff592819b2fa6d43f2835c452020e" : { + "shouldnotexist" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0x6ffe73255873de6b521925fd688d790e78b08eda7ae1f97f04818fcb3f88ae65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x60a6ca8cd651c6025acb1128210b94f385d1faa663a5d63cb6a98a77de0fbe43", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x6e20f394c4191fc2d92564fcbaf545c5939aeccb35a252d3024c3eb90d76441f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6ffe73255873de6b521925fd688d790e78b08eda7ae1f97f04818fcb3f88ae65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x60a6ca8cd651c6025acb1128210b94f385d1faa663a5d63cb6a98a77de0fbe43", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x6e20f394c4191fc2d92564fcbaf545c5939aeccb35a252d3024c3eb90d76441f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x64", - "code" : "0x7f6001600155601080600c6000396000f3006000355415600957005b60203560006000526035602053605560215367ffffffffffffffff60006001f0506fffffffffffffffffffffffffffffffff60006001f0507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60006001f0506000630fffffff6001f050600063ffffffff6001f050600067ffffffffffffffff6001f05060006fffffffffffffffffffffffffffffffff6001f05060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001f050630fffffff630fffffff6001f05063ffffffff63ffffffff6001f05067ffffffffffffffff67ffffffffffffffff6001f0506fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6001f0507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "100", + "code" : "{ (MSTORE 0 0x6001600155601080600c6000396000f3006000355415600957005b6020356000 ) (MSTORE8 32 0x35) (MSTORE8 33 0x55) (CREATE 1 0 0xffffffffffffffff) (CREATE 1 0 0xffffffffffffffffffffffffffffffff) (CREATE 1 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (CREATE 1 0xfffffff 0) (CREATE 1 0xffffffff 0) (CREATE 1 0xffffffffffffffff 0) (CREATE 1 0xffffffffffffffffffffffffffffffff 0) (CREATE 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) (CREATE 1 0xfffffff 0xfffffff) (CREATE 1 0xffffffff 0xffffffff) (CREATE 1 0xffffffffffffffff 0xffffffffffffffff) (CREATE 1 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (CREATE 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -166,16 +54,16 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0f4240", - "0x0ee6b280" + "150000", + "1000000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/DELEGATECALL_Bounds.json b/GeneralStateTests/stMemoryStressTest/DELEGATECALL_Bounds.json index 9602bd4e4..98a3c4d81 100644 --- a/GeneralStateTests/stMemoryStressTest/DELEGATECALL_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/DELEGATECALL_Bounds.json @@ -2,128 +2,56 @@ "DELEGATECALL_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/DELEGATECALL_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4d56f30a043369eff456aa1bafdbbe3f564ab2d2a8ba46c91c3c84df091e944a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3724e7769ef032a8866e938c837e241ba35343678082b54c7048153a96055fae", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4d56f30a043369eff456aa1bafdbbe3f564ab2d2a8ba46c91c3c84df091e944a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3724e7769ef032a8866e938c837e241ba35343678082b54c7048153a96055fae", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4d56f30a043369eff456aa1bafdbbe3f564ab2d2a8ba46c91c3c84df091e944a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3724e7769ef032a8866e938c837e241ba35343678082b54c7048153a96055fae", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4d56f30a043369eff456aa1bafdbbe3f564ab2d2a8ba46c91c3c84df091e944a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3724e7769ef032a8866e938c837e241ba35343678082b54c7048153a96055fae", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4d56f30a043369eff456aa1bafdbbe3f564ab2d2a8ba46c91c3c84df091e944a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x3724e7769ef032a8866e938c837e241ba35343678082b54c7048153a96055fae", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x60006000600060007310000000000000000000000000000000000000016707fffffffffffffff450630fffffff6000630fffffff60007310000000000000000000000000000000000000016707fffffffffffffff45063ffffffff600063ffffffff60007310000000000000000000000000000000000000016707fffffffffffffff4506000630fffffff6000630fffffff7310000000000000000000000000000000000000016707fffffffffffffff450600063ffffffff600063ffffffff7310000000000000000000000000000000000000016707fffffffffffffff450600067ffffffffffffffff600067ffffffffffffffff7310000000000000000000000000000000000000016707fffffffffffffff45060006fffffffffffffffffffffffffffffffff60006fffffffffffffffffffffffffffffffff7310000000000000000000000000000000000000016707fffffffffffffff45060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7310000000000000000000000000000000000000016707fffffffffffffff450630fffffff630fffffff630fffffff630fffffff7310000000000000000000000000000000000000016707fffffffffffffff4", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xfffffff 0 0xfffffff) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffff 0 0xffffffff) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xfffffff 0 0xfffffff 0) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffff 0 0xffffffff 0) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffffffffffff 0 0xffffffffffffffff 0) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff 0) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xfffffff 0xfffffff 0xfffffff 0xfffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +61,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/DELEGATECALL_Bounds2.json b/GeneralStateTests/stMemoryStressTest/DELEGATECALL_Bounds2.json index 8464ea509..b39152266 100644 --- a/GeneralStateTests/stMemoryStressTest/DELEGATECALL_Bounds2.json +++ b/GeneralStateTests/stMemoryStressTest/DELEGATECALL_Bounds2.json @@ -2,128 +2,55 @@ "DELEGATECALL_Bounds2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/DELEGATECALL_Bounds2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x168dba3b61e557e00a174dd4f0d35ad1fcd1c5ffabf0668e5313ed5c6a119911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5409aca9dca3a6fd974bf0c5584b7f0fafb7f749baa1ff44a6a63e00450ecee7", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x168dba3b61e557e00a174dd4f0d35ad1fcd1c5ffabf0668e5313ed5c6a119911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5409aca9dca3a6fd974bf0c5584b7f0fafb7f749baa1ff44a6a63e00450ecee7", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x168dba3b61e557e00a174dd4f0d35ad1fcd1c5ffabf0668e5313ed5c6a119911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5409aca9dca3a6fd974bf0c5584b7f0fafb7f749baa1ff44a6a63e00450ecee7", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x168dba3b61e557e00a174dd4f0d35ad1fcd1c5ffabf0668e5313ed5c6a119911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5409aca9dca3a6fd974bf0c5584b7f0fafb7f749baa1ff44a6a63e00450ecee7", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x168dba3b61e557e00a174dd4f0d35ad1fcd1c5ffabf0668e5313ed5c6a119911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x5409aca9dca3a6fd974bf0c5584b7f0fafb7f749baa1ff44a6a63e00450ecee7", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x63ffffffff63ffffffff63ffffffff63ffffffff7310000000000000000000000000000000000000016707fffffffffffffff4", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffff 0xffffffff 0xffffffff 0xffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +60,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/DELEGATECALL_Bounds3.json b/GeneralStateTests/stMemoryStressTest/DELEGATECALL_Bounds3.json index af686c723..8a769d248 100644 --- a/GeneralStateTests/stMemoryStressTest/DELEGATECALL_Bounds3.json +++ b/GeneralStateTests/stMemoryStressTest/DELEGATECALL_Bounds3.json @@ -2,168 +2,56 @@ "DELEGATECALL_Bounds3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/DELEGATECALL_Bounds3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf793b64000efb8c77680f6f8027b23cc505dfeaff9c606c1cca06f1720590ee0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x33d6d4cda8d3f3eeb843eecc1b8906df7ccdc98c30d87b44b06a1967982f738e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x4696c13fb38be20d2c995108de8a4fe0f87a5a8dd0af47bb84d948c29f28c871", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf793b64000efb8c77680f6f8027b23cc505dfeaff9c606c1cca06f1720590ee0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x33d6d4cda8d3f3eeb843eecc1b8906df7ccdc98c30d87b44b06a1967982f738e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x4696c13fb38be20d2c995108de8a4fe0f87a5a8dd0af47bb84d948c29f28c871", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf793b64000efb8c77680f6f8027b23cc505dfeaff9c606c1cca06f1720590ee0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x33d6d4cda8d3f3eeb843eecc1b8906df7ccdc98c30d87b44b06a1967982f738e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x4696c13fb38be20d2c995108de8a4fe0f87a5a8dd0af47bb84d948c29f28c871", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x00" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0xf793b64000efb8c77680f6f8027b23cc505dfeaff9c606c1cca06f1720590ee0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x33d6d4cda8d3f3eeb843eecc1b8906df7ccdc98c30d87b44b06a1967982f738e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x4696c13fb38be20d2c995108de8a4fe0f87a5a8dd0af47bb84d948c29f28c871", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf793b64000efb8c77680f6f8027b23cc505dfeaff9c606c1cca06f1720590ee0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x33d6d4cda8d3f3eeb843eecc1b8906df7ccdc98c30d87b44b06a1967982f738e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x4696c13fb38be20d2c995108de8a4fe0f87a5a8dd0af47bb84d948c29f28c871", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x67ffffffffffffffff600067ffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff4506fffffffffffffffffffffffffffffffff60006fffffffffffffffffffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff4507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffff45067ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff7310000000000000000000000000000000000000016707fffffffffffffff4506fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff7310000000000000000000000000000000000000016707fffffffffffffff4507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffff", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffff 0 0xffffffffffffffff) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DELEGATECALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -173,16 +61,16 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0f4240", - "0x0ee6b280" + "150000", + "1000000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/DUP_Bounds.json b/GeneralStateTests/stMemoryStressTest/DUP_Bounds.json index 4d2b83326..eaa152cf8 100644 --- a/GeneralStateTests/stMemoryStressTest/DUP_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/DUP_Bounds.json @@ -2,161 +2,46 @@ "DUP_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/DUP_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd77924065001f0e73dd647c655a5a4ba6437e7876eba3c1f22238172e73466a3", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff87", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (DUP1 0) (DUP1 0xffffffff) (DUP1 0xffffffffffffffff) (DUP1 0xffffffffffffffffffffffffffffffff) (DUP1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP2 0 0) (DUP2 0xffffffff 0xffffffff) (DUP2 0xffffffffffffffff 0xffffffffffffffff) (DUP2 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP2 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP3 0 0 0) (DUP3 0xffffffff 0xffffffff 0xffffffff) (DUP3 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DUP3 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP4 0 0 0 0) (DUP4 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (DUP4 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DUP4 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP4 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP5 0 0 0 0 0) (DUP5 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (DUP5 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DUP5 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP5 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP6 0 0 0 0 0 0) (DUP6 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (DUP6 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DUP6 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP6 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP7 0 0 0 0 0 0 0) (DUP7 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (DUP7 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DUP7 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP7 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (DUP8 0 0 0 0 0 0 0 0) (DUP8 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (DUP8 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (DUP8 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (DUP8 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x7fffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -166,16 +51,16 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0f4240", - "0x0ee6b280" + "150000", + "1000000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/FillStack.json b/GeneralStateTests/stMemoryStressTest/FillStack.json index aca5fc390..920219fa4 100644 --- a/GeneralStateTests/stMemoryStressTest/FillStack.json +++ b/GeneralStateTests/stMemoryStressTest/FillStack.json @@ -2,128 +2,102 @@ "FillStack" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/FillStackFiller.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "9223372036854775807", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfce3d23dbb978bf49908221f831b52381c8a13cc354cf20130f659c481515e83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4ef14fe7ec56413ed67fe9fa0efc398fe87f727b5c33dd60b48957334e03bdd5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xfce3d23dbb978bf49908221f831b52381c8a13cc354cf20130f659c481515e83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4ef14fe7ec56413ed67fe9fa0efc398fe87f727b5c33dd60b48957334e03bdd5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfce3d23dbb978bf49908221f831b52381c8a13cc354cf20130f659c481515e83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x4ef14fe7ec56413ed67fe9fa0efc398fe87f727b5c33dd60b48957334e03bdd5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3504357155320803a975560005155", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "250000046", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0xfce3d23dbb978bf49908221f831b52381c8a13cc354cf20130f659c481515e83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4ef14fe7ec56413ed67fe9fa0efc398fe87f727b5c33dd60b48957334e03bdd5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfce3d23dbb978bf49908221f831b52381c8a13cc354cf20130f659c481515e83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x4ef14fe7ec56413ed67fe9fa0efc398fe87f727b5c33dd60b48957334e03bdd5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3504357155320803a975560005155", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "250000046", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3504357155320803a975560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -133,15 +107,15 @@ "0x5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3504357155320803a97" ], "gasLimit" : [ - "0x2fefd8", - "0x0ee6b280" + "3141592", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0fbd1593" + "264050067" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/JUMPI_Bounds.json b/GeneralStateTests/stMemoryStressTest/JUMPI_Bounds.json index cfa74e69c..a1dbf5e9c 100644 --- a/GeneralStateTests/stMemoryStressTest/JUMPI_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/JUMPI_Bounds.json @@ -2,121 +2,47 @@ "JUMPI_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/JUMPI_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8f4527b62b6584296e56720c079334a402880d2532b78190432d599575d238d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5f1ab61a3e2aaea767090be6f018a0d4744a0f520f17c0bb96897ec4307add4a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8f4527b62b6584296e56720c079334a402880d2532b78190432d599575d238d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5f1ab61a3e2aaea767090be6f018a0d4744a0f520f17c0bb96897ec4307add4a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8f4527b62b6584296e56720c079334a402880d2532b78190432d599575d238d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5f1ab61a3e2aaea767090be6f018a0d4744a0f520f17c0bb96897ec4307add4a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8f4527b62b6584296e56720c079334a402880d2532b78190432d599575d238d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5f1ab61a3e2aaea767090be6f018a0d4744a0f520f17c0bb96897ec4307add4a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8f4527b62b6584296e56720c079334a402880d2532b78190432d599575d238d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x5f1ab61a3e2aaea767090be6f018a0d4744a0f520f17c0bb96897ec4307add4a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "0x600163ffffffff57600167ffffffffffffffff5760016fffffffffffffffffffffffffffffffff5760017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff57" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600163ffffffff57600167ffffffffffffffff5760016fffffffffffffffffffffffffffffffff5760017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff57", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (JUMPI 0xffffffff 1) (JUMPI 0xffffffffffffffff 1) (JUMPI 0xffffffffffffffffffffffffffffffff 1) (JUMPI 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x7fffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +52,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/JUMP_Bounds.json b/GeneralStateTests/stMemoryStressTest/JUMP_Bounds.json index de1be551d..9df5fec98 100644 --- a/GeneralStateTests/stMemoryStressTest/JUMP_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/JUMP_Bounds.json @@ -2,121 +2,46 @@ "JUMP_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/JUMP_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7a6e4d1a26f1bb28074ee0b95e06e764eaf8b040634c23db3033f9fdc3566411", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x76875c479924ac8061462f0b590886fd5d0f75fa8947ae6e7c4e5decdf82fb61", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7a6e4d1a26f1bb28074ee0b95e06e764eaf8b040634c23db3033f9fdc3566411", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x76875c479924ac8061462f0b590886fd5d0f75fa8947ae6e7c4e5decdf82fb61", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7a6e4d1a26f1bb28074ee0b95e06e764eaf8b040634c23db3033f9fdc3566411", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x76875c479924ac8061462f0b590886fd5d0f75fa8947ae6e7c4e5decdf82fb61", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7a6e4d1a26f1bb28074ee0b95e06e764eaf8b040634c23db3033f9fdc3566411", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x76875c479924ac8061462f0b590886fd5d0f75fa8947ae6e7c4e5decdf82fb61", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7a6e4d1a26f1bb28074ee0b95e06e764eaf8b040634c23db3033f9fdc3566411", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x76875c479924ac8061462f0b590886fd5d0f75fa8947ae6e7c4e5decdf82fb61", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600056", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (JUMP 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x7fffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +51,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/JUMP_Bounds2.json b/GeneralStateTests/stMemoryStressTest/JUMP_Bounds2.json index 2a3780835..6b2b65786 100644 --- a/GeneralStateTests/stMemoryStressTest/JUMP_Bounds2.json +++ b/GeneralStateTests/stMemoryStressTest/JUMP_Bounds2.json @@ -2,121 +2,47 @@ "JUMP_Bounds2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/JUMP_Bounds2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x47f5783b17068d6fc8900cd43707d2f650444b65a4d53a2500f632903e07a3b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222a750937b203db5eb109e1b79f1500a9cb65192ad3eb97f5b333f8718ad979", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x47f5783b17068d6fc8900cd43707d2f650444b65a4d53a2500f632903e07a3b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222a750937b203db5eb109e1b79f1500a9cb65192ad3eb97f5b333f8718ad979", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x47f5783b17068d6fc8900cd43707d2f650444b65a4d53a2500f632903e07a3b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222a750937b203db5eb109e1b79f1500a9cb65192ad3eb97f5b333f8718ad979", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x47f5783b17068d6fc8900cd43707d2f650444b65a4d53a2500f632903e07a3b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222a750937b203db5eb109e1b79f1500a9cb65192ad3eb97f5b333f8718ad979", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x47f5783b17068d6fc8900cd43707d2f650444b65a4d53a2500f632903e07a3b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x222a750937b203db5eb109e1b79f1500a9cb65192ad3eb97f5b333f8718ad979", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "0x63ffffffff5667ffffffffffffffff566fffffffffffffffffffffffffffffffff567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff56" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", "code" : "0x63ffffffff5667ffffffffffffffff566fffffffffffffffffffffffffffffffff567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff56", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x7fffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +52,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/MLOAD_Bounds.json b/GeneralStateTests/stMemoryStressTest/MLOAD_Bounds.json index a3dc3fe62..bfc899764 100644 --- a/GeneralStateTests/stMemoryStressTest/MLOAD_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/MLOAD_Bounds.json @@ -2,121 +2,46 @@ "MLOAD_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/MLOAD_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0bc954098c4d32194a9ddc0071d32cc469dc08c3d5544d7d3dc15bda8883c3e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3267b33b6cdf79690cefd9c70cb6aeda7e329e76e527279f015be18f6c9a749c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0bc954098c4d32194a9ddc0071d32cc469dc08c3d5544d7d3dc15bda8883c3e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3267b33b6cdf79690cefd9c70cb6aeda7e329e76e527279f015be18f6c9a749c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0bc954098c4d32194a9ddc0071d32cc469dc08c3d5544d7d3dc15bda8883c3e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3267b33b6cdf79690cefd9c70cb6aeda7e329e76e527279f015be18f6c9a749c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0bc954098c4d32194a9ddc0071d32cc469dc08c3d5544d7d3dc15bda8883c3e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3267b33b6cdf79690cefd9c70cb6aeda7e329e76e527279f015be18f6c9a749c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0bc954098c4d32194a9ddc0071d32cc469dc08c3d5544d7d3dc15bda8883c3e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x3267b33b6cdf79690cefd9c70cb6aeda7e329e76e527279f015be18f6c9a749c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x63ffffffff51", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (MLOAD 0) (MLOAD 0xffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07ffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x7ffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +51,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/MLOAD_Bounds2.json b/GeneralStateTests/stMemoryStressTest/MLOAD_Bounds2.json index ee7e9747b..a79d00edd 100644 --- a/GeneralStateTests/stMemoryStressTest/MLOAD_Bounds2.json +++ b/GeneralStateTests/stMemoryStressTest/MLOAD_Bounds2.json @@ -2,121 +2,46 @@ "MLOAD_Bounds2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/MLOAD_Bounds2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x80137ccc623c1ba0bf56943bb0e216b9fdcdd8c6dffbf9da71ceb10da611e713", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x45e95ab4467aa5036253d6ab6ed80a119c4236cbb1c51239e995b98f92fe4f9e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x80137ccc623c1ba0bf56943bb0e216b9fdcdd8c6dffbf9da71ceb10da611e713", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x45e95ab4467aa5036253d6ab6ed80a119c4236cbb1c51239e995b98f92fe4f9e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x80137ccc623c1ba0bf56943bb0e216b9fdcdd8c6dffbf9da71ceb10da611e713", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x45e95ab4467aa5036253d6ab6ed80a119c4236cbb1c51239e995b98f92fe4f9e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x80137ccc623c1ba0bf56943bb0e216b9fdcdd8c6dffbf9da71ceb10da611e713", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x45e95ab4467aa5036253d6ab6ed80a119c4236cbb1c51239e995b98f92fe4f9e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x80137ccc623c1ba0bf56943bb0e216b9fdcdd8c6dffbf9da71ceb10da611e713", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x45e95ab4467aa5036253d6ab6ed80a119c4236cbb1c51239e995b98f92fe4f9e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff51", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (MLOAD 0xffffffffffffffff) (MLOAD 0xffffffffffffffffffffffffffffffff) (MLOAD 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07ffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x7ffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +51,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/MLOAD_Bounds3.json b/GeneralStateTests/stMemoryStressTest/MLOAD_Bounds3.json index 79dc0d18b..8f1bf7cfe 100644 --- a/GeneralStateTests/stMemoryStressTest/MLOAD_Bounds3.json +++ b/GeneralStateTests/stMemoryStressTest/MLOAD_Bounds3.json @@ -2,121 +2,46 @@ "MLOAD_Bounds3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/MLOAD_Bounds3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdb86cc22a252fa3353441234daa0324f13bfc4bfd0248a855bf04e9f46618261", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdb86cc22a252fa3353441234daa0324f13bfc4bfd0248a855bf04e9f46618261", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdb86cc22a252fa3353441234daa0324f13bfc4bfd0248a855bf04e9f46618261", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdb86cc22a252fa3353441234daa0324f13bfc4bfd0248a855bf04e9f46618261", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdb86cc22a252fa3353441234daa0324f13bfc4bfd0248a855bf04e9f46618261", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdb86cc22a252fa3353441234daa0324f13bfc4bfd0248a855bf04e9f46618261", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdb86cc22a252fa3353441234daa0324f13bfc4bfd0248a855bf04e9f46618261", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdb86cc22a252fa3353441234daa0324f13bfc4bfd0248a855bf04e9f46618261", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdb86cc22a252fa3353441234daa0324f13bfc4bfd0248a855bf04e9f46618261", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xdb86cc22a252fa3353441234daa0324f13bfc4bfd0248a855bf04e9f46618261", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6240000051", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (MLOAD 0x400000) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07ffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x7ffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +51,15 @@ "" ], "gasLimit" : [ - "0x02160ec0", - "0x0ee6b280" + "35000000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/MSTORE_Bounds.json b/GeneralStateTests/stMemoryStressTest/MSTORE_Bounds.json index d0ce8508b..25e21bb07 100644 --- a/GeneralStateTests/stMemoryStressTest/MSTORE_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/MSTORE_Bounds.json @@ -2,121 +2,46 @@ "MSTORE_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/MSTORE_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x41c9cd8313c66d7def51f431c90a285b3c3eb3949696d370fb85e96d1669dc91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc0154248b60b10edbbf0d812f02d3f8e6c2e7aef1654b2b5056a73ab799906f3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x41c9cd8313c66d7def51f431c90a285b3c3eb3949696d370fb85e96d1669dc91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc0154248b60b10edbbf0d812f02d3f8e6c2e7aef1654b2b5056a73ab799906f3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x41c9cd8313c66d7def51f431c90a285b3c3eb3949696d370fb85e96d1669dc91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc0154248b60b10edbbf0d812f02d3f8e6c2e7aef1654b2b5056a73ab799906f3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x41c9cd8313c66d7def51f431c90a285b3c3eb3949696d370fb85e96d1669dc91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc0154248b60b10edbbf0d812f02d3f8e6c2e7aef1654b2b5056a73ab799906f3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x41c9cd8313c66d7def51f431c90a285b3c3eb3949696d370fb85e96d1669dc91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xc0154248b60b10edbbf0d812f02d3f8e6c2e7aef1654b2b5056a73ab799906f3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600167ffffffffffffffff52", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (MSTORE 0xffffffffffffffff 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +51,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/MSTORE_Bounds2.json b/GeneralStateTests/stMemoryStressTest/MSTORE_Bounds2.json index fb6fb4d82..b69edcfe0 100644 --- a/GeneralStateTests/stMemoryStressTest/MSTORE_Bounds2.json +++ b/GeneralStateTests/stMemoryStressTest/MSTORE_Bounds2.json @@ -2,121 +2,46 @@ "MSTORE_Bounds2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/MSTORE_Bounds2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5d4cd1c3cf0fddfd066a9502c78d71ea383e82613fc90a1bd7e29fba74f9f29d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e0015a30eba56798562ebe9ee485251bd5218ed97199c8206c819711e96abc3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5d4cd1c3cf0fddfd066a9502c78d71ea383e82613fc90a1bd7e29fba74f9f29d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e0015a30eba56798562ebe9ee485251bd5218ed97199c8206c819711e96abc3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5d4cd1c3cf0fddfd066a9502c78d71ea383e82613fc90a1bd7e29fba74f9f29d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e0015a30eba56798562ebe9ee485251bd5218ed97199c8206c819711e96abc3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5d4cd1c3cf0fddfd066a9502c78d71ea383e82613fc90a1bd7e29fba74f9f29d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e0015a30eba56798562ebe9ee485251bd5218ed97199c8206c819711e96abc3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5d4cd1c3cf0fddfd066a9502c78d71ea383e82613fc90a1bd7e29fba74f9f29d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x1e0015a30eba56798562ebe9ee485251bd5218ed97199c8206c819711e96abc3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600164ffffffffff52", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (MSTORE 0xffffffffff 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +51,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/MSTORE_Bounds2a.json b/GeneralStateTests/stMemoryStressTest/MSTORE_Bounds2a.json index 90a8b754d..60194785b 100644 --- a/GeneralStateTests/stMemoryStressTest/MSTORE_Bounds2a.json +++ b/GeneralStateTests/stMemoryStressTest/MSTORE_Bounds2a.json @@ -2,121 +2,46 @@ "MSTORE_Bounds2a" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/MSTORE_Bounds2aFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb5ab241c9c0430cff81353c2e3cb936ac7a4fc21a304e799979f3e7bfeee4f4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x96000f218ecd16570c217a01ff0261ba7d1533cbfc6e65a8a2715582390db7b5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb5ab241c9c0430cff81353c2e3cb936ac7a4fc21a304e799979f3e7bfeee4f4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x96000f218ecd16570c217a01ff0261ba7d1533cbfc6e65a8a2715582390db7b5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb5ab241c9c0430cff81353c2e3cb936ac7a4fc21a304e799979f3e7bfeee4f4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x96000f218ecd16570c217a01ff0261ba7d1533cbfc6e65a8a2715582390db7b5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb5ab241c9c0430cff81353c2e3cb936ac7a4fc21a304e799979f3e7bfeee4f4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x96000f218ecd16570c217a01ff0261ba7d1533cbfc6e65a8a2715582390db7b5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb5ab241c9c0430cff81353c2e3cb936ac7a4fc21a304e799979f3e7bfeee4f4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x96000f218ecd16570c217a01ff0261ba7d1533cbfc6e65a8a2715582390db7b5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6001623fffff52", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (MSTORE 0x3fffff 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +51,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/POP_Bounds.json b/GeneralStateTests/stMemoryStressTest/POP_Bounds.json index e0a9008bd..1b1fb5e11 100644 --- a/GeneralStateTests/stMemoryStressTest/POP_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/POP_Bounds.json @@ -2,121 +2,46 @@ "POP_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/POP_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x49d30e89222910cfe0cbe8911d755ffcbffbf5944a30887314d3eab43cbce7de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x49d30e89222910cfe0cbe8911d755ffcbffbf5944a30887314d3eab43cbce7de", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x49d30e89222910cfe0cbe8911d755ffcbffbf5944a30887314d3eab43cbce7de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x49d30e89222910cfe0cbe8911d755ffcbffbf5944a30887314d3eab43cbce7de", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x49d30e89222910cfe0cbe8911d755ffcbffbf5944a30887314d3eab43cbce7de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x49d30e89222910cfe0cbe8911d755ffcbffbf5944a30887314d3eab43cbce7de", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x49d30e89222910cfe0cbe8911d755ffcbffbf5944a30887314d3eab43cbce7de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x49d30e89222910cfe0cbe8911d755ffcbffbf5944a30887314d3eab43cbce7de", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x49d30e89222910cfe0cbe8911d755ffcbffbf5944a30887314d3eab43cbce7de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x49d30e89222910cfe0cbe8911d755ffcbffbf5944a30887314d3eab43cbce7de", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (POP 0) (POP 0xffffffff) (POP 0xffffffffffffffff) (POP 0xffffffffffffffffffffffffffffffff) (POP 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07ffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x7ffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +51,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/RETURN_Bounds.json b/GeneralStateTests/stMemoryStressTest/RETURN_Bounds.json index f997676a3..6175c0dd1 100644 --- a/GeneralStateTests/stMemoryStressTest/RETURN_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/RETURN_Bounds.json @@ -2,233 +2,191 @@ "RETURN_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/RETURN_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9bac205f0499a5554fbee863d508575c327b4c9c3f1ca2950a0a391b0bc10354", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x721034ad65ef7a1104351c296dd0d7f1bf6fc37cf7cef361f51b6d714d7afb39", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9bac205f0499a5554fbee863d508575c327b4c9c3f1ca2950a0a391b0bc10354", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x721034ad65ef7a1104351c296dd0d7f1bf6fc37cf7cef361f51b6d714d7afb39", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9bac205f0499a5554fbee863d508575c327b4c9c3f1ca2950a0a391b0bc10354", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x56c3fd964ba2136f6818a7d7b154d4477310912c3a39edf2c7ec1b860c06d8a5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0x9bac205f0499a5554fbee863d508575c327b4c9c3f1ca2950a0a391b0bc10354", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x56c3fd964ba2136f6818a7d7b154d4477310912c3a39edf2c7ec1b860c06d8a5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9bac205f0499a5554fbee863d508575c327b4c9c3f1ca2950a0a391b0bc10354", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x721034ad65ef7a1104351c296dd0d7f1bf6fc37cf7cef361f51b6d714d7afb39", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP158", + "EIP150", + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x01", + "0x05" : "0x01", + "0x06" : "0x01", + "0x07" : "0x01", + "0x08" : "0x01", + "0x09" : "0x01", + "0x0a" : "0x01", + "0x0b" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600060006000600060007310000000000000000000000000000000000000016707fffffffffffffff1600155600060006000600060007310000000000000000000000000000000000000026707fffffffffffffff1600255600060006000600060007310000000000000000000000000000000000000036707fffffffffffffff1600355600060006000600060007310000000000000000000000000000000000000046707fffffffffffffff1600455600060006000600060007310000000000000000000000000000000000000056707fffffffffffffff1600555600060006000600060007310000000000000000000000000000000000000066707fffffffffffffff1600655600060006000600060007310000000000000000000000000000000000000066707fffffffffffffff1600755600060006000600060007310000000000000000000000000000000000000066707fffffffffffffff1600855600060006000600060007310000000000000000000000000000000000000066707fffffffffffffff1600955600060006000600060007310000000000000000000000000000000000000066707fffffffffffffff1600a55600060006000600060007310000000000000000000000000000000000000066707fffffffffffffff1600b55600060006000600060007310000000000000000000000000000000", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0 0) [[2]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000002 0 0 0 0 0) [[3]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000003 0 0 0 0 0) [[4]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000004 0 0 0 0 0) [[5]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000005 0 0 0 0 0) [[6]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[7]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[8]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[9]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[10]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[11]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[12]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[13]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[14]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[15]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0) [[16]] (CALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60006000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (RETURN 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6000630ffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600063fffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000004" : { - "balance" : "0x00", - "code" : "0x600067fffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000004" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000005" : { - "balance" : "0x00", - "code" : "0x60006d0ffffffffffffffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000005" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000006" : { - "balance" : "0x00", - "code" : "0x60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000006" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000007" : { - "balance" : "0x00", - "code" : "0x630fffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000007" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000008" : { - "balance" : "0x00", - "code" : "0x63ffffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000008" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000009" : { - "balance" : "0x00", - "code" : "0x67ffffffffffffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000009" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000010" : { - "balance" : "0x00", - "code" : "0x6d0fffffffffffffffffffffffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000010" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000011" : { - "balance" : "0x00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000011" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000012" : { - "balance" : "0x00", - "code" : "0x630fffffff630ffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000012" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0xfffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000013" : { - "balance" : "0x00", - "code" : "0x63ffffffff63fffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000013" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0xffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000014" : { - "balance" : "0x00", - "code" : "0x67ffffffffffffffff67fffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000014" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0xffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000015" : { - "balance" : "0x00", - "code" : "0x6d0fffffffffffffffffffffffffff6d0ffffffffffffffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000015" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000016" : { - "balance" : "0x00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000016" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -238,15 +196,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/SLOAD_Bounds.json b/GeneralStateTests/stMemoryStressTest/SLOAD_Bounds.json index 825ec67f0..ff6ff0dee 100644 --- a/GeneralStateTests/stMemoryStressTest/SLOAD_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/SLOAD_Bounds.json @@ -2,121 +2,46 @@ "SLOAD_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/SLOAD_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x03c73bdee9d82b284d98c672b59bcaff59daef066ddab684290a8c2e47e6c579", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x03c73bdee9d82b284d98c672b59bcaff59daef066ddab684290a8c2e47e6c579", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x03c73bdee9d82b284d98c672b59bcaff59daef066ddab684290a8c2e47e6c579", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x03c73bdee9d82b284d98c672b59bcaff59daef066ddab684290a8c2e47e6c579", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe92c368377f8bae66097342b63f421dcd1d8e679aef42fd133b4dc8574717cf3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe92c368377f8bae66097342b63f421dcd1d8e679aef42fd133b4dc8574717cf3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe92c368377f8bae66097342b63f421dcd1d8e679aef42fd133b4dc8574717cf3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe92c368377f8bae66097342b63f421dcd1d8e679aef42fd133b4dc8574717cf3", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x03c73bdee9d82b284d98c672b59bcaff59daef066ddab684290a8c2e47e6c579", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x03c73bdee9d82b284d98c672b59bcaff59daef066ddab684290a8c2e47e6c579", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff54", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SLOAD 0) (SLOAD 0xffffffff) (SLOAD 0xffffffffffffffff) (SLOAD 0xffffffffffffffffffffffffffffffff) (SLOAD 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07ffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x7ffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +51,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/SSTORE_Bounds.json b/GeneralStateTests/stMemoryStressTest/SSTORE_Bounds.json index 81e9a56b8..6cc9c9fde 100644 --- a/GeneralStateTests/stMemoryStressTest/SSTORE_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/SSTORE_Bounds.json @@ -2,121 +2,56 @@ "SSTORE_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/SSTORE_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa490aaac545ffb621eb0f87dce5693d3cac69a094dfea4b5cc9f29a2d7d09b28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2af2733cdea16f85dfb3360686a89712a8cae12e7b2e350b774f995d032718b9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa490aaac545ffb621eb0f87dce5693d3cac69a094dfea4b5cc9f29a2d7d09b28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2af2733cdea16f85dfb3360686a89712a8cae12e7b2e350b774f995d032718b9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa490aaac545ffb621eb0f87dce5693d3cac69a094dfea4b5cc9f29a2d7d09b28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2af2733cdea16f85dfb3360686a89712a8cae12e7b2e350b774f995d032718b9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa490aaac545ffb621eb0f87dce5693d3cac69a094dfea4b5cc9f29a2d7d09b28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2af2733cdea16f85dfb3360686a89712a8cae12e7b2e350b774f995d032718b9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa490aaac545ffb621eb0f87dce5693d3cac69a094dfea4b5cc9f29a2d7d09b28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x2af2733cdea16f85dfb3360686a89712a8cae12e7b2e350b774f995d032718b9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1", + "storage" : { + "0xffffffff" : "1", + "0xffffffffffffffff" : "1", + "0xffffffffffffffffffffffffffffffff" : "1", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "1", + "128" : "0xffffffffffffffffffffffffffffffff", + "256" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "32" : "0xffffffff", + "64" : "0xffffffffffffffff" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600163ffffffff55600167ffffffffffffffff5560016fffffffffffffffffffffffffffffffff5560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5563ffffffff60205567ffffffffffffffff6040556fffffffffffffffffffffffffffffffff6080557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0xffffffff 1) (SSTORE 0xffffffffffffffff 1) (SSTORE 0xffffffffffffffffffffffffffffffff 1) (SSTORE 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) (SSTORE 32 0xffffffff) (SSTORE 64 0xffffffffffffffff) (SSTORE 128 0xffffffffffffffffffffffffffffffff) (SSTORE 256 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07ffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x7ffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +61,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/mload32bitBound.json b/GeneralStateTests/stMemoryStressTest/mload32bitBound.json index 27982d6ac..c13878bf4 100644 --- a/GeneralStateTests/stMemoryStressTest/mload32bitBound.json +++ b/GeneralStateTests/stMemoryStressTest/mload32bitBound.json @@ -2,121 +2,63 @@ "mload32bitBound" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/mload32bitBoundFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x10000804025c", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "17592320524892", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe5365baae653efdbfffc79841728b890ab9a0814cc0a56ccd0e7ea6ee0d21950", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x61d9015edd9252dc94aa73cdd60c92794ba5b98001d47c80c2eb51bacfb68126", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe5365baae653efdbfffc79841728b890ab9a0814cc0a56ccd0e7ea6ee0d21950", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x61d9015edd9252dc94aa73cdd60c92794ba5b98001d47c80c2eb51bacfb68126", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe5365baae653efdbfffc79841728b890ab9a0814cc0a56ccd0e7ea6ee0d21950", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x61d9015edd9252dc94aa73cdd60c92794ba5b98001d47c80c2eb51bacfb68126", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe5365baae653efdbfffc79841728b890ab9a0814cc0a56ccd0e7ea6ee0d21950", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x61d9015edd9252dc94aa73cdd60c92794ba5b98001d47c80c2eb51bacfb68126", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe5365baae653efdbfffc79841728b890ab9a0814cc0a56ccd0e7ea6ee0d21950", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x61d9015edd9252dc94aa73cdd60c92794ba5b98001d47c80c2eb51bacfb68126", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x64010000000051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x64010000000051600155", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (MLOAD 4294967296) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xa00050281798", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "175923205248920", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +68,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/mload32bitBound2.json b/GeneralStateTests/stMemoryStressTest/mload32bitBound2.json index f1dac536f..63f569dd1 100644 --- a/GeneralStateTests/stMemoryStressTest/mload32bitBound2.json +++ b/GeneralStateTests/stMemoryStressTest/mload32bitBound2.json @@ -2,121 +2,102 @@ "mload32bitBound2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/mload32bitBound2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x225eebec75ab", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "37791080412587", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdd0682b57f5666e5d866e348ac7d3e539acd681ea27c9b0a814763f9c26f9792", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x325badc62761abdab23d0313acd3279d4109b53465c6efeeba3d46197740bc1c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdd0682b57f5666e5d866e348ac7d3e539acd681ea27c9b0a814763f9c26f9792", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x325badc62761abdab23d0313acd3279d4109b53465c6efeeba3d46197740bc1c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdd0682b57f5666e5d866e348ac7d3e539acd681ea27c9b0a814763f9c26f9792", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x325badc62761abdab23d0313acd3279d4109b53465c6efeeba3d46197740bc1c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x64017735940051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0xdd0682b57f5666e5d866e348ac7d3e539acd681ea27c9b0a814763f9c26f9792", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x325badc62761abdab23d0313acd3279d4109b53465c6efeeba3d46197740bc1c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x64017735940051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "377910554219850", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xdd0682b57f5666e5d866e348ac7d3e539acd681ea27c9b0a814763f9c26f9792", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x325badc62761abdab23d0313acd3279d4109b53465c6efeeba3d46197740bc1c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + } + ], + "post" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { } - ] + } }, "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x64017735940051600155", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (MLOAD 6294967296) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0157b5373e07ca", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "377910804219850", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +107,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/mload32bitBound_Msize.json b/GeneralStateTests/stMemoryStressTest/mload32bitBound_Msize.json index 7343fa8a2..0edae1fdb 100644 --- a/GeneralStateTests/stMemoryStressTest/mload32bitBound_Msize.json +++ b/GeneralStateTests/stMemoryStressTest/mload32bitBound_Msize.json @@ -2,121 +2,64 @@ "mload32bitBound_Msize" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/mload32bitBound_MsizeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x027101391c9c29c0", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "175923205248920000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x827f5d94dc3940fb58461cb4e92f05056e6c09ac15883f7af4b18bcb6c2b7fb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x62c6daa60b3f396ea04236f24b67e19860d9f0d9fc8ac30db3ad56317272f27f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x827f5d94dc3940fb58461cb4e92f05056e6c09ac15883f7af4b18bcb6c2b7fb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x62c6daa60b3f396ea04236f24b67e19860d9f0d9fc8ac30db3ad56317272f27f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x827f5d94dc3940fb58461cb4e92f05056e6c09ac15883f7af4b18bcb6c2b7fb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x62c6daa60b3f396ea04236f24b67e19860d9f0d9fc8ac30db3ad56317272f27f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x827f5d94dc3940fb58461cb4e92f05056e6c09ac15883f7af4b18bcb6c2b7fb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x62c6daa60b3f396ea04236f24b67e19860d9f0d9fc8ac30db3ad56317272f27f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x827f5d94dc3940fb58461cb4e92f05056e6c09ac15883f7af4b18bcb6c2b7fb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x62c6daa60b3f396ea04236f24b67e19860d9f0d9fc8ac30db3ad56317272f27f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x600163ffffffff5259600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600163ffffffff5259600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ [4294967295] 1 [[ 0 ]] (MSIZE)} ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x186a0c3b1e19a180", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1759232052489200000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +69,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/mload32bitBound_return.json b/GeneralStateTests/stMemoryStressTest/mload32bitBound_return.json index 22046ac96..ee57c3d73 100644 --- a/GeneralStateTests/stMemoryStressTest/mload32bitBound_return.json +++ b/GeneralStateTests/stMemoryStressTest/mload32bitBound_return.json @@ -2,121 +2,63 @@ "mload32bitBound_return" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/mload32bitBound_returnFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x10000804025c", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "17592320524892", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4657df8e7e86f21b70de01af2de4e6e62578cf2a3793f21ed92e05e5c3d342fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd0edc1f5e92a979fd19f8c28c3a30f2108f7b7cdf79ec91176bb84ec518a00f0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4657df8e7e86f21b70de01af2de4e6e62578cf2a3793f21ed92e05e5c3d342fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd0edc1f5e92a979fd19f8c28c3a30f2108f7b7cdf79ec91176bb84ec518a00f0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4657df8e7e86f21b70de01af2de4e6e62578cf2a3793f21ed92e05e5c3d342fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xd0edc1f5e92a979fd19f8c28c3a30f2108f7b7cdf79ec91176bb84ec518a00f0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0x4657df8e7e86f21b70de01af2de4e6e62578cf2a3793f21ed92e05e5c3d342fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd0edc1f5e92a979fd19f8c28c3a30f2108f7b7cdf79ec91176bb84ec518a00f0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4657df8e7e86f21b70de01af2de4e6e62578cf2a3793f21ed92e05e5c3d342fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xd0edc1f5e92a979fd19f8c28c3a30f2108f7b7cdf79ec91176bb84ec518a00f0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x63ffffffff6000f3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (RETURN 0 4294967295) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x186a0c3b1e19a180", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1759232052489200000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +68,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/mload32bitBound_return2.json b/GeneralStateTests/stMemoryStressTest/mload32bitBound_return2.json index b5e879bdf..aec45bb47 100644 --- a/GeneralStateTests/stMemoryStressTest/mload32bitBound_return2.json +++ b/GeneralStateTests/stMemoryStressTest/mload32bitBound_return2.json @@ -2,121 +2,63 @@ "mload32bitBound_return2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/mload32bitBound_return2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x027101391c9c29c0", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "175923205248920000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4cca87515299336f6b213b88d0754296be349b981b7b282615f230319b98a74a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa2bb0ae80eda2e0936e89d3cfa8298b600a2b9d0dd2c12ce529593e9aae2544e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4cca87515299336f6b213b88d0754296be349b981b7b282615f230319b98a74a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa2bb0ae80eda2e0936e89d3cfa8298b600a2b9d0dd2c12ce529593e9aae2544e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4cca87515299336f6b213b88d0754296be349b981b7b282615f230319b98a74a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa2bb0ae80eda2e0936e89d3cfa8298b600a2b9d0dd2c12ce529593e9aae2544e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0x4cca87515299336f6b213b88d0754296be349b981b7b282615f230319b98a74a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa2bb0ae80eda2e0936e89d3cfa8298b600a2b9d0dd2c12ce529593e9aae2544e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4cca87515299336f6b213b88d0754296be349b981b7b282615f230319b98a74a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa2bb0ae80eda2e0936e89d3cfa8298b600a2b9d0dd2c12ce529593e9aae2544e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160005263ffffffff6000f3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ [ 0 ] 1 (RETURN 0 4294967295) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x186a0c3b1e19a180", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1759232052489200000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +68,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds.json b/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds.json index 42af60eea..34ec8fc31 100644 --- a/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds.json +++ b/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds.json @@ -2,128 +2,58 @@ "static_CALL_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/static_CALL_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x48de9d28998951446e5c0d7f95b1e8bf45d3ce5e37185043f69acb8f85eebe9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x427ea33eba4f0f717326e7b65a6e5c430bee7ce98b409bc85327b69c5e82cfc6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x48de9d28998951446e5c0d7f95b1e8bf45d3ce5e37185043f69acb8f85eebe9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x427ea33eba4f0f717326e7b65a6e5c430bee7ce98b409bc85327b69c5e82cfc6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x48de9d28998951446e5c0d7f95b1e8bf45d3ce5e37185043f69acb8f85eebe9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x427ea33eba4f0f717326e7b65a6e5c430bee7ce98b409bc85327b69c5e82cfc6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x48de9d28998951446e5c0d7f95b1e8bf45d3ce5e37185043f69acb8f85eebe9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x427ea33eba4f0f717326e7b65a6e5c430bee7ce98b409bc85327b69c5e82cfc6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x48de9d28998951446e5c0d7f95b1e8bf45d3ce5e37185043f69acb8f85eebe9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x427ea33eba4f0f717326e7b65a6e5c430bee7ce98b409bc85327b69c5e82cfc6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x60006000600060007310000000000000000000000000000000000000016707fffffffffffffffa50630fffffff6000630fffffff60007310000000000000000000000000000000000000016707fffffffffffffffa5063ffffffff600063ffffffff60007310000000000000000000000000000000000000016707fffffffffffffffa506000630fffffff6000630fffffff7310000000000000000000000000000000000000016707fffffffffffffffa50600063ffffffff600063ffffffff7310000000000000000000000000000000000000016707fffffffffffffffa50600067ffffffffffffffff600067ffffffffffffffff7310000000000000000000000000000000000000016707fffffffffffffffa5060006fffffffffffffffffffffffffffffffff60006fffffffffffffffffffffffffffffffff7310000000000000000000000000000000000000016707fffffffffffffffa5060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7310000000000000000000000000000000000000016707fffffffffffffffa", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xfffffff 0 0xfffffff) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffff 0 0xffffffff) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xfffffff 0 0xfffffff 0) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffff 0 0xffffffff 0) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffffffffffff 0 0xffffffffffffffff 0) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff 0) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +63,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds2.json b/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds2.json index 7dc8717c6..eeb6b2578 100644 --- a/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds2.json +++ b/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds2.json @@ -2,128 +2,58 @@ "static_CALL_Bounds2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/static_CALL_Bounds2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x975be6d475693704b32fd500ed343455d3703a7f98ead26c511bad06b61b4d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x35634733acdd267a2dd265f0af47953e1501b827d05eb963dd41ec83c182336b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x975be6d475693704b32fd500ed343455d3703a7f98ead26c511bad06b61b4d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x35634733acdd267a2dd265f0af47953e1501b827d05eb963dd41ec83c182336b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x975be6d475693704b32fd500ed343455d3703a7f98ead26c511bad06b61b4d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x35634733acdd267a2dd265f0af47953e1501b827d05eb963dd41ec83c182336b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x975be6d475693704b32fd500ed343455d3703a7f98ead26c511bad06b61b4d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x35634733acdd267a2dd265f0af47953e1501b827d05eb963dd41ec83c182336b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x975be6d475693704b32fd500ed343455d3703a7f98ead26c511bad06b61b4d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x35634733acdd267a2dd265f0af47953e1501b827d05eb963dd41ec83c182336b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x630fffffff630fffffff630fffffff630fffffff7310000000000000000000000000000000000000016707fffffffffffffffa", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xfffffff 0xfffffff 0xfffffff 0xfffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +63,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds2a.json b/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds2a.json index 76336e259..9b7f226e9 100644 --- a/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds2a.json +++ b/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds2a.json @@ -2,128 +2,57 @@ "static_CALL_Bounds2a" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/static_CALL_Bounds2aFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcfbf7eb8f84c61521ec86584a53a98e49d0acd7f53d6debf5fbc09a7ba3c8c09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x71a181a75f7d5b531e23579d497c8a55d9f9c846e2c6f7099826d008b9571ed9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcfbf7eb8f84c61521ec86584a53a98e49d0acd7f53d6debf5fbc09a7ba3c8c09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x71a181a75f7d5b531e23579d497c8a55d9f9c846e2c6f7099826d008b9571ed9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcfbf7eb8f84c61521ec86584a53a98e49d0acd7f53d6debf5fbc09a7ba3c8c09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x71a181a75f7d5b531e23579d497c8a55d9f9c846e2c6f7099826d008b9571ed9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcfbf7eb8f84c61521ec86584a53a98e49d0acd7f53d6debf5fbc09a7ba3c8c09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x71a181a75f7d5b531e23579d497c8a55d9f9c846e2c6f7099826d008b9571ed9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcfbf7eb8f84c61521ec86584a53a98e49d0acd7f53d6debf5fbc09a7ba3c8c09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x71a181a75f7d5b531e23579d497c8a55d9f9c846e2c6f7099826d008b9571ed9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x63ffffffff63ffffffff63ffffffff63ffffffff7310000000000000000000000000000000000000016707fffffffffffffffa", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffff 0xffffffff 0xffffffff 0xffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (SSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +62,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds3.json b/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds3.json index c0e6ca4e1..e42bb0215 100644 --- a/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds3.json +++ b/GeneralStateTests/stMemoryStressTest/static_CALL_Bounds3.json @@ -2,128 +2,58 @@ "static_CALL_Bounds3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryStressTest/static_CALL_Bounds3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x097a8c1473b2389b8d296986833e995f1ba1059096188c9d8e39ff7dd292f908", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x95ec920c486fb4ba9bd59bf271f65faa21e07bf51e319c9ae018e3a64a79bfed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x097a8c1473b2389b8d296986833e995f1ba1059096188c9d8e39ff7dd292f908", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x95ec920c486fb4ba9bd59bf271f65faa21e07bf51e319c9ae018e3a64a79bfed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x097a8c1473b2389b8d296986833e995f1ba1059096188c9d8e39ff7dd292f908", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x95ec920c486fb4ba9bd59bf271f65faa21e07bf51e319c9ae018e3a64a79bfed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x097a8c1473b2389b8d296986833e995f1ba1059096188c9d8e39ff7dd292f908", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x95ec920c486fb4ba9bd59bf271f65faa21e07bf51e319c9ae018e3a64a79bfed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x097a8c1473b2389b8d296986833e995f1ba1059096188c9d8e39ff7dd292f908", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x95ec920c486fb4ba9bd59bf271f65faa21e07bf51e319c9ae018e3a64a79bfed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0" + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x67ffffffffffffffff600067ffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffffa506fffffffffffffffffffffffffffffffff60006fffffffffffffffffffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffffa507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60007310000000000000000000000000000000000000016707fffffffffffffffa5063ffffffff63ffffffff63ffffffff63ffffffff7310000000000000000000000000000000000000016707fffffffffffffffa5067ffffffffffffffff67ffffffffffffffff67ffffffffffffffff67ffffffffffffffff7310000000000000000000000000000000000000016707fffffffffffffffa506fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff7310000000000000000000000000000000000000016707fffffffffffffffa507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffff 0 0xffffffffffffffff) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffff) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffff 0xffffffff 0xffffffff 0xffffffff) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffff) (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600054600101600052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 0 (ADD 1 (SLOAD 0))) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +63,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stMemoryTest/calldatacopy_dejavu.json b/GeneralStateTests/stMemoryTest/calldatacopy_dejavu.json index bc4fb1a59..6da2a60d3 100644 --- a/GeneralStateTests/stMemoryTest/calldatacopy_dejavu.json +++ b/GeneralStateTests/stMemoryTest/calldatacopy_dejavu.json @@ -2,81 +2,97 @@ "calldatacopy_dejavu" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/calldatacopy_dejavuFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfb0eef5366c4b1d9bd479557e0cbf35f0b1512f3f6cfea8fd2853933ec3c3d23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff630fffffff630fffffff37", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfb0eef5366c4b1d9bd479557e0cbf35f0b1512f3f6cfea8fd2853933ec3c3d23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfb0eef5366c4b1d9bd479557e0cbf35f0b1512f3f6cfea8fd2853933ec3c3d23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfb0eef5366c4b1d9bd479557e0cbf35f0b1512f3f6cfea8fd2853933ec3c3d23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfb0eef5366c4b1d9bd479557e0cbf35f0b1512f3f6cfea8fd2853933ec3c3d23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff630fffffff630fffffff37", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff60ff630fffffff630fffffff37", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "0x60FF60FF630FFFFFFF630FFFFFFF37", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/calldatacopy_dejavu2.json b/GeneralStateTests/stMemoryTest/calldatacopy_dejavu2.json index c562a7d32..ed284be3b 100644 --- a/GeneralStateTests/stMemoryTest/calldatacopy_dejavu2.json +++ b/GeneralStateTests/stMemoryTest/calldatacopy_dejavu2.json @@ -2,81 +2,99 @@ "calldatacopy_dejavu2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/calldatacopy_dejavu2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x74ee79796297a4556e905da5bc59648da679f19b3884a1a383e5b0c7a91c9e05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6005565b005b6042601f536101036000601f3760005180606014600357640badc0ffee60ff55", + "nonce" : "0x00", + "storage" : { + "0xff" : "0x0badc0ffee" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa0a4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff5f52", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x74ee79796297a4556e905da5bc59648da679f19b3884a1a383e5b0c7a91c9e05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x74ee79796297a4556e905da5bc59648da679f19b3884a1a383e5b0c7a91c9e05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x74ee79796297a4556e905da5bc59648da679f19b3884a1a383e5b0c7a91c9e05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x74ee79796297a4556e905da5bc59648da679f19b3884a1a383e5b0c7a91c9e05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6005565b005b6042601f536101036000601f3760005180606014600357640badc0ffee60ff55", + "nonce" : "0x00", + "storage" : { + "0xff" : "0x0badc0ffee" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa0a4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff5f52", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", "code" : "0x6005565b005b6042601f536101036000601f3760005180606014600357640badc0ffee60ff55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/codecopy_dejavu.json b/GeneralStateTests/stMemoryTest/codecopy_dejavu.json index d67921360..ab581e35d 100644 --- a/GeneralStateTests/stMemoryTest/codecopy_dejavu.json +++ b/GeneralStateTests/stMemoryTest/codecopy_dejavu.json @@ -2,81 +2,97 @@ "codecopy_dejavu" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/codecopy_dejavuFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5e3bd4dc78514c1999c1d83a89bad70d4596bf2f1a8a53c406078f208257c174", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff630fffffff630fffffff39", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5e3bd4dc78514c1999c1d83a89bad70d4596bf2f1a8a53c406078f208257c174", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5e3bd4dc78514c1999c1d83a89bad70d4596bf2f1a8a53c406078f208257c174", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5e3bd4dc78514c1999c1d83a89bad70d4596bf2f1a8a53c406078f208257c174", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5e3bd4dc78514c1999c1d83a89bad70d4596bf2f1a8a53c406078f208257c174", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff630fffffff630fffffff39", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff60ff630fffffff630fffffff39", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "0x60FF60FF630FFFFFFF630FFFFFFF39", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/codecopy_dejavu2.json b/GeneralStateTests/stMemoryTest/codecopy_dejavu2.json index 2df6778a7..f5499aae2 100644 --- a/GeneralStateTests/stMemoryTest/codecopy_dejavu2.json +++ b/GeneralStateTests/stMemoryTest/codecopy_dejavu2.json @@ -2,81 +2,97 @@ "codecopy_dejavu2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/codecopy_dejavu2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x368b88a2614b03725ac64cec0ef73009aaa11390385f0273541932e152f03900", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6005565b005b600a68010000000000000001601f3960005180600014600357640badc0ffee60", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x5246", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffffadb0", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x368b88a2614b03725ac64cec0ef73009aaa11390385f0273541932e152f03900", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x368b88a2614b03725ac64cec0ef73009aaa11390385f0273541932e152f03900", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x368b88a2614b03725ac64cec0ef73009aaa11390385f0273541932e152f03900", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x368b88a2614b03725ac64cec0ef73009aaa11390385f0273541932e152f03900", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6005565b005b600a68010000000000000001601f3960005180600014600357640badc0ffee60", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x5246", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffffadb0", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", "code" : "0x6005565b005b600a68010000000000000001601f3960005180600014600357640badc0ffee60", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/extcodecopy_dejavu.json b/GeneralStateTests/stMemoryTest/extcodecopy_dejavu.json index af0fef4c4..b5ff89588 100644 --- a/GeneralStateTests/stMemoryTest/extcodecopy_dejavu.json +++ b/GeneralStateTests/stMemoryTest/extcodecopy_dejavu.json @@ -2,81 +2,97 @@ "extcodecopy_dejavu" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/extcodecopy_dejavuFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7db301c0754d4f94248fcc32e831c45b1a730331848fe6b51d1381b3b08ba403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff630fffffff630fffffff3c", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7db301c0754d4f94248fcc32e831c45b1a730331848fe6b51d1381b3b08ba403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7db301c0754d4f94248fcc32e831c45b1a730331848fe6b51d1381b3b08ba403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7db301c0754d4f94248fcc32e831c45b1a730331848fe6b51d1381b3b08ba403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7db301c0754d4f94248fcc32e831c45b1a730331848fe6b51d1381b3b08ba403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff630fffffff630fffffff3c", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff60ff630fffffff630fffffff3c", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "0x60FF60FF630FFFFFFF630FFFFFFF3C", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/log1_dejavu.json b/GeneralStateTests/stMemoryTest/log1_dejavu.json index 4719ae7ee..46a710833 100644 --- a/GeneralStateTests/stMemoryTest/log1_dejavu.json +++ b/GeneralStateTests/stMemoryTest/log1_dejavu.json @@ -2,81 +2,97 @@ "log1_dejavu" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/log1_dejavuFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x236e71ab7e9bce4137b479cabfe2691738eb87b7e9221f69feab810e8d2d5def", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff630fffffffa1", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x236e71ab7e9bce4137b479cabfe2691738eb87b7e9221f69feab810e8d2d5def", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x236e71ab7e9bce4137b479cabfe2691738eb87b7e9221f69feab810e8d2d5def", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x236e71ab7e9bce4137b479cabfe2691738eb87b7e9221f69feab810e8d2d5def", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x236e71ab7e9bce4137b479cabfe2691738eb87b7e9221f69feab810e8d2d5def", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff630fffffffa1", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff60ff630fffffffa1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "0x60FF60FF630FFFFFFFA1", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/log2_dejavu.json b/GeneralStateTests/stMemoryTest/log2_dejavu.json index cedab4691..0395b685c 100644 --- a/GeneralStateTests/stMemoryTest/log2_dejavu.json +++ b/GeneralStateTests/stMemoryTest/log2_dejavu.json @@ -2,81 +2,97 @@ "log2_dejavu" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/log2_dejavuFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4f5d3d8ba03ebe57a1ae72c00c7604c85a67edd03cc3b86ecbf3dbc760c17383", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff630fffffffa2", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4f5d3d8ba03ebe57a1ae72c00c7604c85a67edd03cc3b86ecbf3dbc760c17383", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4f5d3d8ba03ebe57a1ae72c00c7604c85a67edd03cc3b86ecbf3dbc760c17383", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4f5d3d8ba03ebe57a1ae72c00c7604c85a67edd03cc3b86ecbf3dbc760c17383", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4f5d3d8ba03ebe57a1ae72c00c7604c85a67edd03cc3b86ecbf3dbc760c17383", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff630fffffffa2", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff60ff630fffffffa2", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "0x60FF60FF630FFFFFFFA2", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/log3_dejavu.json b/GeneralStateTests/stMemoryTest/log3_dejavu.json index b54940d5d..d57d16e01 100644 --- a/GeneralStateTests/stMemoryTest/log3_dejavu.json +++ b/GeneralStateTests/stMemoryTest/log3_dejavu.json @@ -2,81 +2,97 @@ "log3_dejavu" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/log3_dejavuFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9fc7f149800e24882ebf620c5be1aa59d621b38accc418df88bba08aec37e6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff60ff630fffffffa2", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9fc7f149800e24882ebf620c5be1aa59d621b38accc418df88bba08aec37e6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9fc7f149800e24882ebf620c5be1aa59d621b38accc418df88bba08aec37e6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9fc7f149800e24882ebf620c5be1aa59d621b38accc418df88bba08aec37e6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9fc7f149800e24882ebf620c5be1aa59d621b38accc418df88bba08aec37e6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff60ff630fffffffa2", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff60ff60ff630fffffffa2", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "0x60FF60FF60FF630FFFFFFFA2", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/log4_dejavu.json b/GeneralStateTests/stMemoryTest/log4_dejavu.json index 847c7ec8a..7c069b11f 100644 --- a/GeneralStateTests/stMemoryTest/log4_dejavu.json +++ b/GeneralStateTests/stMemoryTest/log4_dejavu.json @@ -2,81 +2,97 @@ "log4_dejavu" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/log4_dejavuFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9fc7f149800e24882ebf620c5be1aa59d621b38accc418df88bba08aec37e6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff60ff630fffffffa2", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9fc7f149800e24882ebf620c5be1aa59d621b38accc418df88bba08aec37e6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9fc7f149800e24882ebf620c5be1aa59d621b38accc418df88bba08aec37e6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9fc7f149800e24882ebf620c5be1aa59d621b38accc418df88bba08aec37e6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9fc7f149800e24882ebf620c5be1aa59d621b38accc418df88bba08aec37e6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff60ff60ff630fffffffa2", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff60ff60ff630fffffffa2", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "0x60FF60FF60FF630FFFFFFFA2", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem0b_singleByte.json b/GeneralStateTests/stMemoryTest/mem0b_singleByte.json index 177f299d9..a5f7ec3d0 100644 --- a/GeneralStateTests/stMemoryTest/mem0b_singleByte.json +++ b/GeneralStateTests/stMemoryTest/mem0b_singleByte.json @@ -2,81 +2,99 @@ "mem0b_singleByte" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem0b_singleByteFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe0efa836f999455740148dc120dc5f2344ad3b3c1323dca3852268d7b243d0ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a60005359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa039", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff5fbd", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe0efa836f999455740148dc120dc5f2344ad3b3c1323dca3852268d7b243d0ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe0efa836f999455740148dc120dc5f2344ad3b3c1323dca3852268d7b243d0ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe0efa836f999455740148dc120dc5f2344ad3b3c1323dca3852268d7b243d0ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe0efa836f999455740148dc120dc5f2344ad3b3c1323dca3852268d7b243d0ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a60005359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa039", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff5fbd", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a60005359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem31b_singleByte.json b/GeneralStateTests/stMemoryTest/mem31b_singleByte.json index 7f6ee2fce..6648e47b5 100644 --- a/GeneralStateTests/stMemoryTest/mem31b_singleByte.json +++ b/GeneralStateTests/stMemoryTest/mem31b_singleByte.json @@ -2,81 +2,99 @@ "mem31b_singleByte" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem31b_singleByteFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x604b731508388ec89df1d255944de348916844d5bd6c301ddc9cda6b78587154", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a601e5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa039", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff5fbd", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x604b731508388ec89df1d255944de348916844d5bd6c301ddc9cda6b78587154", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x604b731508388ec89df1d255944de348916844d5bd6c301ddc9cda6b78587154", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x604b731508388ec89df1d255944de348916844d5bd6c301ddc9cda6b78587154", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x604b731508388ec89df1d255944de348916844d5bd6c301ddc9cda6b78587154", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a601e5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa039", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff5fbd", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a601e5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 30 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32b_singleByte.json b/GeneralStateTests/stMemoryTest/mem32b_singleByte.json index c11fb074a..ed9287145 100644 --- a/GeneralStateTests/stMemoryTest/mem32b_singleByte.json +++ b/GeneralStateTests/stMemoryTest/mem32b_singleByte.json @@ -2,81 +2,99 @@ "mem32b_singleByte" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32b_singleByteFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x37091fe21c4e51aec98d8c91dd43221caa0299562e7e6408f30a26c7d3f42b3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a601f5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa039", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff5fbd", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x37091fe21c4e51aec98d8c91dd43221caa0299562e7e6408f30a26c7d3f42b3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x37091fe21c4e51aec98d8c91dd43221caa0299562e7e6408f30a26c7d3f42b3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x37091fe21c4e51aec98d8c91dd43221caa0299562e7e6408f30a26c7d3f42b3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x37091fe21c4e51aec98d8c91dd43221caa0299562e7e6408f30a26c7d3f42b3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a601f5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa039", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff5fbd", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a601f5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 31 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb+1.json b/GeneralStateTests/stMemoryTest/mem32kb+1.json index 15638762d..f6e35ee3c 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb+1.json +++ b/GeneralStateTests/stMemoryTest/mem32kb+1.json @@ -2,81 +2,101 @@ "mem32kb+1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb+1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x171d90f0d7d4dc497acbb9ae9293ab906ace85e65f13fb3088bdbd021e46097e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617ce152617ce15160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d20", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101bf", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe37", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x171d90f0d7d4dc497acbb9ae9293ab906ace85e65f13fb3088bdbd021e46097e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x171d90f0d7d4dc497acbb9ae9293ab906ace85e65f13fb3088bdbd021e46097e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x171d90f0d7d4dc497acbb9ae9293ab906ace85e65f13fb3088bdbd021e46097e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x171d90f0d7d4dc497acbb9ae9293ab906ace85e65f13fb3088bdbd021e46097e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617ce152617ce15160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d20", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101bf", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe37", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617ce152617ce15160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 31969 42) [[ 1 ]] (MLOAD 31969) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb+31.json b/GeneralStateTests/stMemoryTest/mem32kb+31.json index b83848804..c12800185 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb+31.json +++ b/GeneralStateTests/stMemoryTest/mem32kb+31.json @@ -2,81 +2,101 @@ "mem32kb+31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb+31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x431025fb6f5dfd2375add19f1c807edbde060fc825224234b00c1e6bed33693b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cff52617cff5160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d20", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101bf", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe37", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x431025fb6f5dfd2375add19f1c807edbde060fc825224234b00c1e6bed33693b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x431025fb6f5dfd2375add19f1c807edbde060fc825224234b00c1e6bed33693b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x431025fb6f5dfd2375add19f1c807edbde060fc825224234b00c1e6bed33693b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x431025fb6f5dfd2375add19f1c807edbde060fc825224234b00c1e6bed33693b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cff52617cff5160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d20", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101bf", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe37", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617cff52617cff5160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 31999 42) [[ 1 ]] (MLOAD 31999) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb+32.json b/GeneralStateTests/stMemoryTest/mem32kb+32.json index fbb3cafaf..53e139bd7 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb+32.json +++ b/GeneralStateTests/stMemoryTest/mem32kb+32.json @@ -2,81 +2,101 @@ "mem32kb+32" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb+32Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8300e03f4530881e7bf38b31e76bf0ea8b0661b8999bb5c6ed79d548a250fd3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617d0052617d005160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d20", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101bf", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe37", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8300e03f4530881e7bf38b31e76bf0ea8b0661b8999bb5c6ed79d548a250fd3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8300e03f4530881e7bf38b31e76bf0ea8b0661b8999bb5c6ed79d548a250fd3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8300e03f4530881e7bf38b31e76bf0ea8b0661b8999bb5c6ed79d548a250fd3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8300e03f4530881e7bf38b31e76bf0ea8b0661b8999bb5c6ed79d548a250fd3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617d0052617d005160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d20", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101bf", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe37", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617d0052617d005160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 32000 42) [[ 1 ]] (MLOAD 32000) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb+33.json b/GeneralStateTests/stMemoryTest/mem32kb+33.json index 6f084ad14..08a22b25c 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb+33.json +++ b/GeneralStateTests/stMemoryTest/mem32kb+33.json @@ -2,81 +2,101 @@ "mem32kb+33" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb+33Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5aeebda7bc76659e25766c04d5e1d33ca3330a057e443093c675cba86c8eba22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617d0152617d015160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d40", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101c5", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe31", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5aeebda7bc76659e25766c04d5e1d33ca3330a057e443093c675cba86c8eba22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5aeebda7bc76659e25766c04d5e1d33ca3330a057e443093c675cba86c8eba22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5aeebda7bc76659e25766c04d5e1d33ca3330a057e443093c675cba86c8eba22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5aeebda7bc76659e25766c04d5e1d33ca3330a057e443093c675cba86c8eba22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617d0152617d015160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d40", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101c5", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe31", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617d0152617d015160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 32001 42) [[ 1 ]] (MLOAD 32001) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb-1.json b/GeneralStateTests/stMemoryTest/mem32kb-1.json index dc60ed455..bfbac7652 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb-1.json +++ b/GeneralStateTests/stMemoryTest/mem32kb-1.json @@ -2,81 +2,101 @@ "mem32kb-1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb-1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x74214f4526e90cf38bfaf0df1b0dde9bdde8f28ff7018eb82efba1a27d46df37", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cdf52617cdf5160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d00", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101b8", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x74214f4526e90cf38bfaf0df1b0dde9bdde8f28ff7018eb82efba1a27d46df37", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x74214f4526e90cf38bfaf0df1b0dde9bdde8f28ff7018eb82efba1a27d46df37", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x74214f4526e90cf38bfaf0df1b0dde9bdde8f28ff7018eb82efba1a27d46df37", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x74214f4526e90cf38bfaf0df1b0dde9bdde8f28ff7018eb82efba1a27d46df37", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cdf52617cdf5160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d00", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101b8", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617cdf52617cdf5160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 31967 42) [[ 1 ]] (MLOAD 31967) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb-31.json b/GeneralStateTests/stMemoryTest/mem32kb-31.json index 1476b51f8..c53559ede 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb-31.json +++ b/GeneralStateTests/stMemoryTest/mem32kb-31.json @@ -2,81 +2,101 @@ "mem32kb-31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb-31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf8d026ebbc585731386c6ea601053567cc8a61cb5d6f914b2ca998434fcaf08d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cc152617cc15160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d00", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101b8", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf8d026ebbc585731386c6ea601053567cc8a61cb5d6f914b2ca998434fcaf08d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf8d026ebbc585731386c6ea601053567cc8a61cb5d6f914b2ca998434fcaf08d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf8d026ebbc585731386c6ea601053567cc8a61cb5d6f914b2ca998434fcaf08d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf8d026ebbc585731386c6ea601053567cc8a61cb5d6f914b2ca998434fcaf08d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cc152617cc15160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d00", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101b8", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617cc152617cc15160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 31937 42) [[ 1 ]] (MLOAD 31937) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb-32.json b/GeneralStateTests/stMemoryTest/mem32kb-32.json index 8ce6a4af5..1ac9d36c8 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb-32.json +++ b/GeneralStateTests/stMemoryTest/mem32kb-32.json @@ -2,81 +2,101 @@ "mem32kb-32" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb-32Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf2ccd3bdd3afd712768712179ccd506a4711ceee3a6903be053399a74077ac61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cc052617cc05160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7ce0", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101b1", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe45", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf2ccd3bdd3afd712768712179ccd506a4711ceee3a6903be053399a74077ac61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf2ccd3bdd3afd712768712179ccd506a4711ceee3a6903be053399a74077ac61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf2ccd3bdd3afd712768712179ccd506a4711ceee3a6903be053399a74077ac61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf2ccd3bdd3afd712768712179ccd506a4711ceee3a6903be053399a74077ac61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cc052617cc05160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7ce0", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101b1", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe45", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617cc052617cc05160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 31936 42) [[ 1 ]] (MLOAD 31936) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb-33.json b/GeneralStateTests/stMemoryTest/mem32kb-33.json index a4cc3c52f..280b3ab99 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb-33.json +++ b/GeneralStateTests/stMemoryTest/mem32kb-33.json @@ -2,81 +2,101 @@ "mem32kb-33" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb-33Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x55bd72cef2f9d05ec55e05fd8117ddab58ef72135d61be72e3a346d262c9f078", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cbf52617cbf5160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7ce0", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101b1", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe45", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x55bd72cef2f9d05ec55e05fd8117ddab58ef72135d61be72e3a346d262c9f078", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x55bd72cef2f9d05ec55e05fd8117ddab58ef72135d61be72e3a346d262c9f078", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x55bd72cef2f9d05ec55e05fd8117ddab58ef72135d61be72e3a346d262c9f078", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x55bd72cef2f9d05ec55e05fd8117ddab58ef72135d61be72e3a346d262c9f078", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cbf52617cbf5160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7ce0", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101b1", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe45", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617cbf52617cbf5160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 31935 42) [[ 1 ]] (MLOAD 31935) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb.json b/GeneralStateTests/stMemoryTest/mem32kb.json index 1b7563b0e..c86dffa7b 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb.json +++ b/GeneralStateTests/stMemoryTest/mem32kb.json @@ -2,81 +2,101 @@ "mem32kb" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kbFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x89e9ff8359f5e43c9c09a84961d7ab11f4d939c1aa4698f86324e13a3b2cb60f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617ce052617ce05160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d00", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101b8", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x89e9ff8359f5e43c9c09a84961d7ab11f4d939c1aa4698f86324e13a3b2cb60f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x89e9ff8359f5e43c9c09a84961d7ab11f4d939c1aa4698f86324e13a3b2cb60f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x89e9ff8359f5e43c9c09a84961d7ab11f4d939c1aa4698f86324e13a3b2cb60f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x89e9ff8359f5e43c9c09a84961d7ab11f4d939c1aa4698f86324e13a3b2cb60f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617ce052617ce05160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d00", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0101b8", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffefe3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617ce052617ce05160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 31968 42) [[ 1 ]] (MLOAD 31968) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb_singleByte+1.json b/GeneralStateTests/stMemoryTest/mem32kb_singleByte+1.json index d98ea0d88..8805eed93 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb_singleByte+1.json +++ b/GeneralStateTests/stMemoryTest/mem32kb_singleByte+1.json @@ -2,81 +2,99 @@ "mem32kb_singleByte+1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb_singleByte+1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbce6091d727ff3b6b29ce187a343cf270ecb87fde937d65d32d41d5c4a7d7119", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617d005359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb396", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c60", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbce6091d727ff3b6b29ce187a343cf270ecb87fde937d65d32d41d5c4a7d7119", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbce6091d727ff3b6b29ce187a343cf270ecb87fde937d65d32d41d5c4a7d7119", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbce6091d727ff3b6b29ce187a343cf270ecb87fde937d65d32d41d5c4a7d7119", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbce6091d727ff3b6b29ce187a343cf270ecb87fde937d65d32d41d5c4a7d7119", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617d005359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb396", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c60", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617d005359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 32000 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb_singleByte+31.json b/GeneralStateTests/stMemoryTest/mem32kb_singleByte+31.json index 9cc85a202..a619e7507 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb_singleByte+31.json +++ b/GeneralStateTests/stMemoryTest/mem32kb_singleByte+31.json @@ -2,81 +2,99 @@ "mem32kb_singleByte+31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb_singleByte+31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1cab92d6e5feda6736ef0b0714a018652323598895059e9e36da278c45c871a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617d1e5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb396", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c60", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1cab92d6e5feda6736ef0b0714a018652323598895059e9e36da278c45c871a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1cab92d6e5feda6736ef0b0714a018652323598895059e9e36da278c45c871a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1cab92d6e5feda6736ef0b0714a018652323598895059e9e36da278c45c871a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1cab92d6e5feda6736ef0b0714a018652323598895059e9e36da278c45c871a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617d1e5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb396", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c60", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617d1e5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 32030 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb_singleByte+32.json b/GeneralStateTests/stMemoryTest/mem32kb_singleByte+32.json index ed18bd13e..00b000867 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb_singleByte+32.json +++ b/GeneralStateTests/stMemoryTest/mem32kb_singleByte+32.json @@ -2,81 +2,99 @@ "mem32kb_singleByte+32" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb_singleByte+32Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x75efddbdc85b42ff3c7550bf024c89151a8ea87d117ecadedfd6e7581e5f358d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617d1f5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb396", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c60", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x75efddbdc85b42ff3c7550bf024c89151a8ea87d117ecadedfd6e7581e5f358d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x75efddbdc85b42ff3c7550bf024c89151a8ea87d117ecadedfd6e7581e5f358d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x75efddbdc85b42ff3c7550bf024c89151a8ea87d117ecadedfd6e7581e5f358d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x75efddbdc85b42ff3c7550bf024c89151a8ea87d117ecadedfd6e7581e5f358d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617d1f5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb396", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c60", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617d1f5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 32031 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb_singleByte+33.json b/GeneralStateTests/stMemoryTest/mem32kb_singleByte+33.json index eba46b0ad..9e5ff504b 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb_singleByte+33.json +++ b/GeneralStateTests/stMemoryTest/mem32kb_singleByte+33.json @@ -2,81 +2,99 @@ "mem32kb_singleByte+33" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb_singleByte+33Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x07b152dfa501fa5581f636f29e759de90c51922b9d2b7cc92ddb8d284049a911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617d205359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d40" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb39c", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c5a", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x07b152dfa501fa5581f636f29e759de90c51922b9d2b7cc92ddb8d284049a911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x07b152dfa501fa5581f636f29e759de90c51922b9d2b7cc92ddb8d284049a911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x07b152dfa501fa5581f636f29e759de90c51922b9d2b7cc92ddb8d284049a911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x07b152dfa501fa5581f636f29e759de90c51922b9d2b7cc92ddb8d284049a911", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617d205359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d40" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb39c", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c5a", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617d205359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 32032 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb_singleByte-1.json b/GeneralStateTests/stMemoryTest/mem32kb_singleByte-1.json index 537eb64c4..333c86943 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb_singleByte-1.json +++ b/GeneralStateTests/stMemoryTest/mem32kb_singleByte-1.json @@ -2,81 +2,99 @@ "mem32kb_singleByte-1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb_singleByte-1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdfaacf050276c37e00aa5cbbcdc87a77cedf780556330796cb6dd775498c7585", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cfe5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb38f", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c67", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xdfaacf050276c37e00aa5cbbcdc87a77cedf780556330796cb6dd775498c7585", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdfaacf050276c37e00aa5cbbcdc87a77cedf780556330796cb6dd775498c7585", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdfaacf050276c37e00aa5cbbcdc87a77cedf780556330796cb6dd775498c7585", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdfaacf050276c37e00aa5cbbcdc87a77cedf780556330796cb6dd775498c7585", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cfe5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb38f", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c67", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617cfe5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 31998 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb_singleByte-31.json b/GeneralStateTests/stMemoryTest/mem32kb_singleByte-31.json index 0c0fc2c4d..36729b120 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb_singleByte-31.json +++ b/GeneralStateTests/stMemoryTest/mem32kb_singleByte-31.json @@ -2,81 +2,99 @@ "mem32kb_singleByte-31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb_singleByte-31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x91e686a5caf72969cc88c885746cefa69b3089a80543eb9c75f2f2ce822b1e08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617ce05359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb38f", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c67", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x91e686a5caf72969cc88c885746cefa69b3089a80543eb9c75f2f2ce822b1e08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x91e686a5caf72969cc88c885746cefa69b3089a80543eb9c75f2f2ce822b1e08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x91e686a5caf72969cc88c885746cefa69b3089a80543eb9c75f2f2ce822b1e08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x91e686a5caf72969cc88c885746cefa69b3089a80543eb9c75f2f2ce822b1e08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617ce05359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb38f", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c67", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617ce05359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 31968 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb_singleByte-32.json b/GeneralStateTests/stMemoryTest/mem32kb_singleByte-32.json index e303fda62..60b946d1a 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb_singleByte-32.json +++ b/GeneralStateTests/stMemoryTest/mem32kb_singleByte-32.json @@ -2,81 +2,99 @@ "mem32kb_singleByte-32" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb_singleByte-32Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x656252dfd066c252bc1a9c8b26fd3872596a192ce72b2fa09eb7148deef623a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cdf5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7ce0" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb388", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c6e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x656252dfd066c252bc1a9c8b26fd3872596a192ce72b2fa09eb7148deef623a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x656252dfd066c252bc1a9c8b26fd3872596a192ce72b2fa09eb7148deef623a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x656252dfd066c252bc1a9c8b26fd3872596a192ce72b2fa09eb7148deef623a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x656252dfd066c252bc1a9c8b26fd3872596a192ce72b2fa09eb7148deef623a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cdf5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7ce0" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb388", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c6e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617cdf5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 31967 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb_singleByte-33.json b/GeneralStateTests/stMemoryTest/mem32kb_singleByte-33.json index c14a82319..58fff6e80 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb_singleByte-33.json +++ b/GeneralStateTests/stMemoryTest/mem32kb_singleByte-33.json @@ -2,81 +2,99 @@ "mem32kb_singleByte-33" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb_singleByte-33Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x176a30044205d80912efbb8c7ce308991823647e10a9bc68059ec54f086472f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cde5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7ce0" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb388", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c6e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x176a30044205d80912efbb8c7ce308991823647e10a9bc68059ec54f086472f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x176a30044205d80912efbb8c7ce308991823647e10a9bc68059ec54f086472f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x176a30044205d80912efbb8c7ce308991823647e10a9bc68059ec54f086472f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x176a30044205d80912efbb8c7ce308991823647e10a9bc68059ec54f086472f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cde5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7ce0" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb388", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c6e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617cde5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 31966 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem32kb_singleByte.json b/GeneralStateTests/stMemoryTest/mem32kb_singleByte.json index 312a5d34a..2bb24ab9b 100644 --- a/GeneralStateTests/stMemoryTest/mem32kb_singleByte.json +++ b/GeneralStateTests/stMemoryTest/mem32kb_singleByte.json @@ -2,81 +2,99 @@ "mem32kb_singleByte" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem32kb_singleByteFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x40285d734359495522cfab98a87348a90ecc13735492c974c58ffa9965e39b21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cff5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb38f", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c67", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x40285d734359495522cfab98a87348a90ecc13735492c974c58ffa9965e39b21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x40285d734359495522cfab98a87348a90ecc13735492c974c58ffa9965e39b21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x40285d734359495522cfab98a87348a90ecc13735492c974c58ffa9965e39b21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x40285d734359495522cfab98a87348a90ecc13735492c974c58ffa9965e39b21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a617cff5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7d00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xb38f", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff4c67", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a617cff5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 31999 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem33b_singleByte.json b/GeneralStateTests/stMemoryTest/mem33b_singleByte.json index d289fb691..898d6a275 100644 --- a/GeneralStateTests/stMemoryTest/mem33b_singleByte.json +++ b/GeneralStateTests/stMemoryTest/mem33b_singleByte.json @@ -2,81 +2,99 @@ "mem33b_singleByte" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem33b_singleByteFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8c85aa000727196f46d60276a9d5f7e5f1fa3c227564037d4e67f485acc28143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a60205359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x40" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa03c", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff5fba", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8c85aa000727196f46d60276a9d5f7e5f1fa3c227564037d4e67f485acc28143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8c85aa000727196f46d60276a9d5f7e5f1fa3c227564037d4e67f485acc28143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8c85aa000727196f46d60276a9d5f7e5f1fa3c227564037d4e67f485acc28143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8c85aa000727196f46d60276a9d5f7e5f1fa3c227564037d4e67f485acc28143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a60205359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x40" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa03c", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff5fba", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a60205359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 32 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb+1.json b/GeneralStateTests/stMemoryTest/mem64kb+1.json index 489202cc2..c6cb66482 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb+1.json +++ b/GeneralStateTests/stMemoryTest/mem64kb+1.json @@ -2,81 +2,101 @@ "mem64kb+1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb+1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3fd0c39dc30723b802d138155edd2d9799d1a5a9f099188e93a177fdaf230b9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9e15261f9e15160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa20", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x01245e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedb98", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x3fd0c39dc30723b802d138155edd2d9799d1a5a9f099188e93a177fdaf230b9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3fd0c39dc30723b802d138155edd2d9799d1a5a9f099188e93a177fdaf230b9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3fd0c39dc30723b802d138155edd2d9799d1a5a9f099188e93a177fdaf230b9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3fd0c39dc30723b802d138155edd2d9799d1a5a9f099188e93a177fdaf230b9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9e15261f9e15160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa20", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x01245e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedb98", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61f9e15261f9e15160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 63969 42) [[ 1 ]] (MLOAD 63969) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb+31.json b/GeneralStateTests/stMemoryTest/mem64kb+31.json index 5a1cbd9d8..41e3b62a5 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb+31.json +++ b/GeneralStateTests/stMemoryTest/mem64kb+31.json @@ -2,81 +2,101 @@ "mem64kb+31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb+31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4672c61dc31cdc14f6549392777b8e6be4290c41b4d49d76f9928843d8d6020b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9ff5261f9ff5160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa20", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x01245e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedb98", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4672c61dc31cdc14f6549392777b8e6be4290c41b4d49d76f9928843d8d6020b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4672c61dc31cdc14f6549392777b8e6be4290c41b4d49d76f9928843d8d6020b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4672c61dc31cdc14f6549392777b8e6be4290c41b4d49d76f9928843d8d6020b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4672c61dc31cdc14f6549392777b8e6be4290c41b4d49d76f9928843d8d6020b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9ff5261f9ff5160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa20", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x01245e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedb98", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61f9ff5261f9ff5160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 63999 42) [[ 1 ]] (MLOAD 63999) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb+32.json b/GeneralStateTests/stMemoryTest/mem64kb+32.json index 6eee3c452..7a95a9c02 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb+32.json +++ b/GeneralStateTests/stMemoryTest/mem64kb+32.json @@ -2,81 +2,101 @@ "mem64kb+32" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb+32Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x749757456f4bf99685777d121180aa1b8824cfe2096fed7fa98220e5f3043fda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61fa005261fa005160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa20", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x01245e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedb98", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x749757456f4bf99685777d121180aa1b8824cfe2096fed7fa98220e5f3043fda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x749757456f4bf99685777d121180aa1b8824cfe2096fed7fa98220e5f3043fda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x749757456f4bf99685777d121180aa1b8824cfe2096fed7fa98220e5f3043fda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x749757456f4bf99685777d121180aa1b8824cfe2096fed7fa98220e5f3043fda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61fa005261fa005160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa20", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x01245e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedb98", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61fa005261fa005160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 64000 42) [[ 1 ]] (MLOAD 64000) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb+33.json b/GeneralStateTests/stMemoryTest/mem64kb+33.json index 7e5709d23..5cb81c22d 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb+33.json +++ b/GeneralStateTests/stMemoryTest/mem64kb+33.json @@ -2,81 +2,101 @@ "mem64kb+33" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb+33Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2b3c2cfc0fe0a279d8198025a6b6e4d840a4e93308276e89a52ab4d047bbfd24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61fa015261fa015160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa40", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012469", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedb8d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2b3c2cfc0fe0a279d8198025a6b6e4d840a4e93308276e89a52ab4d047bbfd24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b3c2cfc0fe0a279d8198025a6b6e4d840a4e93308276e89a52ab4d047bbfd24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2b3c2cfc0fe0a279d8198025a6b6e4d840a4e93308276e89a52ab4d047bbfd24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2b3c2cfc0fe0a279d8198025a6b6e4d840a4e93308276e89a52ab4d047bbfd24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61fa015261fa015160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa40", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012469", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedb8d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61fa015261fa015160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 64001 42) [[ 1 ]] (MLOAD 64001) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb-1.json b/GeneralStateTests/stMemoryTest/mem64kb-1.json index e78565390..31888c593 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb-1.json +++ b/GeneralStateTests/stMemoryTest/mem64kb-1.json @@ -2,81 +2,101 @@ "mem64kb-1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb-1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9865c60dd34920cc8b049c244fbfbe6a5525290ba78b323680ee9e6ee44d302a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9df5261f9df5160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa00", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012453", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedba3", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9865c60dd34920cc8b049c244fbfbe6a5525290ba78b323680ee9e6ee44d302a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9865c60dd34920cc8b049c244fbfbe6a5525290ba78b323680ee9e6ee44d302a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9865c60dd34920cc8b049c244fbfbe6a5525290ba78b323680ee9e6ee44d302a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9865c60dd34920cc8b049c244fbfbe6a5525290ba78b323680ee9e6ee44d302a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9df5261f9df5160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa00", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012453", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedba3", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61f9df5261f9df5160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 63967 42) [[ 1 ]] (MLOAD 63967) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x500018d8" + "1342183640" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb-31.json b/GeneralStateTests/stMemoryTest/mem64kb-31.json index 411465a72..bbcaa071d 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb-31.json +++ b/GeneralStateTests/stMemoryTest/mem64kb-31.json @@ -2,81 +2,101 @@ "mem64kb-31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb-31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfd3557635cb0b3fc93f76329006b2358ed056c1d8e63ae95fd218e5d77a34c97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9c15261f9c15160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa00", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012453", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedba3", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfd3557635cb0b3fc93f76329006b2358ed056c1d8e63ae95fd218e5d77a34c97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfd3557635cb0b3fc93f76329006b2358ed056c1d8e63ae95fd218e5d77a34c97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfd3557635cb0b3fc93f76329006b2358ed056c1d8e63ae95fd218e5d77a34c97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfd3557635cb0b3fc93f76329006b2358ed056c1d8e63ae95fd218e5d77a34c97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9c15261f9c15160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa00", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012453", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedba3", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61f9c15261f9c15160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 63937 42) [[ 1 ]] (MLOAD 63937) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x500018d8" + "1342183640" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb-32.json b/GeneralStateTests/stMemoryTest/mem64kb-32.json index dfb1fbfea..3afc43de2 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb-32.json +++ b/GeneralStateTests/stMemoryTest/mem64kb-32.json @@ -2,81 +2,101 @@ "mem64kb-32" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb-32Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbb8997f7b498ae27647ba01f44e89446b901ccb9cc31167c2c980a420aaa7ff1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9c05261f9c05160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xf9e0", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012448", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedbae", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbb8997f7b498ae27647ba01f44e89446b901ccb9cc31167c2c980a420aaa7ff1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb8997f7b498ae27647ba01f44e89446b901ccb9cc31167c2c980a420aaa7ff1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbb8997f7b498ae27647ba01f44e89446b901ccb9cc31167c2c980a420aaa7ff1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbb8997f7b498ae27647ba01f44e89446b901ccb9cc31167c2c980a420aaa7ff1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9c05261f9c05160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xf9e0", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012448", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedbae", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61f9c05261f9c05160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 63936 42) [[ 1 ]] (MLOAD 63936) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x500018d8" + "1342183640" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb-33.json b/GeneralStateTests/stMemoryTest/mem64kb-33.json index 80fe02d28..7ee03c120 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb-33.json +++ b/GeneralStateTests/stMemoryTest/mem64kb-33.json @@ -2,81 +2,101 @@ "mem64kb-33" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb-33Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa631dedf42e2d3c1716243107eb5e916b9a24c36dae8943bf785bda6b9f07607", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9bf5261f9bf5160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xf9e0", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012448", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedbae", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xa631dedf42e2d3c1716243107eb5e916b9a24c36dae8943bf785bda6b9f07607", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa631dedf42e2d3c1716243107eb5e916b9a24c36dae8943bf785bda6b9f07607", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa631dedf42e2d3c1716243107eb5e916b9a24c36dae8943bf785bda6b9f07607", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa631dedf42e2d3c1716243107eb5e916b9a24c36dae8943bf785bda6b9f07607", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9bf5261f9bf5160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xf9e0", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012448", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedbae", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61f9bf5261f9bf5160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 63935 42) [[ 1 ]] (MLOAD 63935) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb.json b/GeneralStateTests/stMemoryTest/mem64kb.json index 927b20fb4..ee88d83db 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb.json +++ b/GeneralStateTests/stMemoryTest/mem64kb.json @@ -2,81 +2,101 @@ "mem64kb" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kbFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbae3c3d010418555a351cd124aa6260c2b97744a53c3f69239099e890e03183c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9e05261f9e05160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa00", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012453", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedba3", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbae3c3d010418555a351cd124aa6260c2b97744a53c3f69239099e890e03183c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbae3c3d010418555a351cd124aa6260c2b97744a53c3f69239099e890e03183c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbae3c3d010418555a351cd124aa6260c2b97744a53c3f69239099e890e03183c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbae3c3d010418555a351cd124aa6260c2b97744a53c3f69239099e890e03183c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9e05261f9e05160015559600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa00", + "0x01" : "0x2a" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012453", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffedba3", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61f9e05261f9e05160015559600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 63968 42) [[ 1 ]] (MLOAD 63968) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +106,14 @@ "" ], "gasLimit" : [ - "0x500018d8" + "1342183640" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb_singleByte+1.json b/GeneralStateTests/stMemoryTest/mem64kb_singleByte+1.json index 4f26c1e37..e832921e7 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb_singleByte+1.json +++ b/GeneralStateTests/stMemoryTest/mem64kb_singleByte+1.json @@ -2,81 +2,99 @@ "mem64kb_singleByte+1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb_singleByte+1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfc23dd420b833dbfcf772497eff7a70a6bc226629092097461cac9ce73cdc67a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61fa005359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd635", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29c1", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfc23dd420b833dbfcf772497eff7a70a6bc226629092097461cac9ce73cdc67a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfc23dd420b833dbfcf772497eff7a70a6bc226629092097461cac9ce73cdc67a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfc23dd420b833dbfcf772497eff7a70a6bc226629092097461cac9ce73cdc67a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfc23dd420b833dbfcf772497eff7a70a6bc226629092097461cac9ce73cdc67a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61fa005359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd635", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29c1", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61fa005359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 64000 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb_singleByte+31.json b/GeneralStateTests/stMemoryTest/mem64kb_singleByte+31.json index 764517f02..f339584e4 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb_singleByte+31.json +++ b/GeneralStateTests/stMemoryTest/mem64kb_singleByte+31.json @@ -2,81 +2,99 @@ "mem64kb_singleByte+31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb_singleByte+31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3c64f6daf9a82afa20b701121f233c206266672f7c31483c2d1c6b672dcce3a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61fa1e5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd635", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29c1", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x3c64f6daf9a82afa20b701121f233c206266672f7c31483c2d1c6b672dcce3a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3c64f6daf9a82afa20b701121f233c206266672f7c31483c2d1c6b672dcce3a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3c64f6daf9a82afa20b701121f233c206266672f7c31483c2d1c6b672dcce3a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3c64f6daf9a82afa20b701121f233c206266672f7c31483c2d1c6b672dcce3a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61fa1e5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd635", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29c1", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61fa1e5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 64030 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb_singleByte+32.json b/GeneralStateTests/stMemoryTest/mem64kb_singleByte+32.json index 6dc4607e6..c3a4447c1 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb_singleByte+32.json +++ b/GeneralStateTests/stMemoryTest/mem64kb_singleByte+32.json @@ -2,81 +2,99 @@ "mem64kb_singleByte+32" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb_singleByte+32Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdf6fea74bff863af3b7cad335c92752c62a8f98ca94608d9976d841fc4125978", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61fa1f5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd635", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29c1", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xdf6fea74bff863af3b7cad335c92752c62a8f98ca94608d9976d841fc4125978", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdf6fea74bff863af3b7cad335c92752c62a8f98ca94608d9976d841fc4125978", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdf6fea74bff863af3b7cad335c92752c62a8f98ca94608d9976d841fc4125978", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdf6fea74bff863af3b7cad335c92752c62a8f98ca94608d9976d841fc4125978", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61fa1f5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa20" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd635", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29c1", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61fa1f5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 64031 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb_singleByte+33.json b/GeneralStateTests/stMemoryTest/mem64kb_singleByte+33.json index e8ed1a67c..a79e8e8f2 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb_singleByte+33.json +++ b/GeneralStateTests/stMemoryTest/mem64kb_singleByte+33.json @@ -2,81 +2,99 @@ "mem64kb_singleByte+33" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb_singleByte+33Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdc9d2ddccb9a13e924b6792d42425ac4315003cc25d99ca08babfd650bb011c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61fa205359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa40" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd640", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29b6", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xdc9d2ddccb9a13e924b6792d42425ac4315003cc25d99ca08babfd650bb011c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc9d2ddccb9a13e924b6792d42425ac4315003cc25d99ca08babfd650bb011c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc9d2ddccb9a13e924b6792d42425ac4315003cc25d99ca08babfd650bb011c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdc9d2ddccb9a13e924b6792d42425ac4315003cc25d99ca08babfd650bb011c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61fa205359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa40" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd640", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29b6", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61fa205359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 64032 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb_singleByte-1.json b/GeneralStateTests/stMemoryTest/mem64kb_singleByte-1.json index 82ecbd98c..3e5201f04 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb_singleByte-1.json +++ b/GeneralStateTests/stMemoryTest/mem64kb_singleByte-1.json @@ -2,81 +2,99 @@ "mem64kb_singleByte-1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb_singleByte-1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3134bbc4d51a887ad390a20299609bc4ce33dce55ae5a93cb2f438c9574ee6ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9fe5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd62a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29cc", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x3134bbc4d51a887ad390a20299609bc4ce33dce55ae5a93cb2f438c9574ee6ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3134bbc4d51a887ad390a20299609bc4ce33dce55ae5a93cb2f438c9574ee6ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3134bbc4d51a887ad390a20299609bc4ce33dce55ae5a93cb2f438c9574ee6ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3134bbc4d51a887ad390a20299609bc4ce33dce55ae5a93cb2f438c9574ee6ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9fe5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd62a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29cc", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61f9fe5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 63998 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb_singleByte-31.json b/GeneralStateTests/stMemoryTest/mem64kb_singleByte-31.json index a2213c33a..92b506c23 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb_singleByte-31.json +++ b/GeneralStateTests/stMemoryTest/mem64kb_singleByte-31.json @@ -2,81 +2,99 @@ "mem64kb_singleByte-31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb_singleByte-31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x18f01239fc57124bb4ea01c93cc534a790b83e7a15dbb4a7e6b0e078e6c2e389", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9e05359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd62a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29cc", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x18f01239fc57124bb4ea01c93cc534a790b83e7a15dbb4a7e6b0e078e6c2e389", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x18f01239fc57124bb4ea01c93cc534a790b83e7a15dbb4a7e6b0e078e6c2e389", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x18f01239fc57124bb4ea01c93cc534a790b83e7a15dbb4a7e6b0e078e6c2e389", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x18f01239fc57124bb4ea01c93cc534a790b83e7a15dbb4a7e6b0e078e6c2e389", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9e05359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd62a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29cc", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61f9e05359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 63968 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb_singleByte-32.json b/GeneralStateTests/stMemoryTest/mem64kb_singleByte-32.json index 80f0e152e..b1a396d74 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb_singleByte-32.json +++ b/GeneralStateTests/stMemoryTest/mem64kb_singleByte-32.json @@ -2,81 +2,99 @@ "mem64kb_singleByte-32" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb_singleByte-32Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1642f55308622bc1a705dc5c3cc62816d433ad263ec5847b62dd51af677930a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9df5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xf9e0" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd61f", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29d7", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1642f55308622bc1a705dc5c3cc62816d433ad263ec5847b62dd51af677930a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1642f55308622bc1a705dc5c3cc62816d433ad263ec5847b62dd51af677930a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1642f55308622bc1a705dc5c3cc62816d433ad263ec5847b62dd51af677930a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1642f55308622bc1a705dc5c3cc62816d433ad263ec5847b62dd51af677930a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9df5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xf9e0" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd61f", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29d7", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61f9df5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 63967 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb_singleByte-33.json b/GeneralStateTests/stMemoryTest/mem64kb_singleByte-33.json index 08d0c6c1e..e2a3be61c 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb_singleByte-33.json +++ b/GeneralStateTests/stMemoryTest/mem64kb_singleByte-33.json @@ -2,81 +2,99 @@ "mem64kb_singleByte-33" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb_singleByte-33Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x01c97ed590df6f0773df08a1fd59b4bfd7771a755443d1c01f17d563b9999bdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9de5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xf9e0" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd61f", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29d7", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x01c97ed590df6f0773df08a1fd59b4bfd7771a755443d1c01f17d563b9999bdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x01c97ed590df6f0773df08a1fd59b4bfd7771a755443d1c01f17d563b9999bdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x01c97ed590df6f0773df08a1fd59b4bfd7771a755443d1c01f17d563b9999bdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x01c97ed590df6f0773df08a1fd59b4bfd7771a755443d1c01f17d563b9999bdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9de5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xf9e0" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd61f", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29d7", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61f9de5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 63966 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mem64kb_singleByte.json b/GeneralStateTests/stMemoryTest/mem64kb_singleByte.json index 602ab2819..514253424 100644 --- a/GeneralStateTests/stMemoryTest/mem64kb_singleByte.json +++ b/GeneralStateTests/stMemoryTest/mem64kb_singleByte.json @@ -2,81 +2,99 @@ "mem64kb_singleByte" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mem64kb_singleByteFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x59bf1a3821d2430a3d3104bc474eb8937c974be0f1d730dd31afcb6993572d50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9ff5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd62a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29cc", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x59bf1a3821d2430a3d3104bc474eb8937c974be0f1d730dd31afcb6993572d50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x59bf1a3821d2430a3d3104bc474eb8937c974be0f1d730dd31afcb6993572d50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x59bf1a3821d2430a3d3104bc474eb8937c974be0f1d730dd31afcb6993572d50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x59bf1a3821d2430a3d3104bc474eb8937c974be0f1d730dd31afcb6993572d50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x602a61f9ff5359600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfa00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xd62a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff29cc", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x602a61f9ff5359600055", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 63999 42) [[ 0 ]] (MSIZE) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/memReturn.json b/GeneralStateTests/stMemoryTest/memReturn.json index 4134cc6c1..a719de2be 100644 --- a/GeneralStateTests/stMemoryTest/memReturn.json +++ b/GeneralStateTests/stMemoryTest/memReturn.json @@ -2,81 +2,97 @@ "memReturn" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/memReturnFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4ac120a0f842cd106b0b5affaec87476b7e0f14376ecb87bbefc001a695f3582", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x366000600037596000f3", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x672a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff98cc", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4ac120a0f842cd106b0b5affaec87476b7e0f14376ecb87bbefc001a695f3582", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4ac120a0f842cd106b0b5affaec87476b7e0f14376ecb87bbefc001a695f3582", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4ac120a0f842cd106b0b5affaec87476b7e0f14376ecb87bbefc001a695f3582", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4ac120a0f842cd106b0b5affaec87476b7e0f14376ecb87bbefc001a695f3582", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x366000600037596000f3", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x672a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff98cc", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x366000600037596000f3", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLDATACOPY 0 0 (CALLDATASIZE)) (RETURN 0 (MSIZE)) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "0xff55883355001144bbccddffeeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ], "gasLimit" : [ - "0x50001798" + "1342183320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mload16bitBound.json b/GeneralStateTests/stMemoryTest/mload16bitBound.json index 03e08d66d..d5a7649b9 100644 --- a/GeneralStateTests/stMemoryTest/mload16bitBound.json +++ b/GeneralStateTests/stMemoryTest/mload16bitBound.json @@ -2,81 +2,97 @@ "mload16bitBound" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mload16bitBoundFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x10000804025c", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "17592320524892", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x753bf8da2d26f11acfc8e3865eb40093071187f028ca996632d60b0af47a27a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6201000051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x9da4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xa000502779ea", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x753bf8da2d26f11acfc8e3865eb40093071187f028ca996632d60b0af47a27a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x753bf8da2d26f11acfc8e3865eb40093071187f028ca996632d60b0af47a27a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x753bf8da2d26f11acfc8e3865eb40093071187f028ca996632d60b0af47a27a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x753bf8da2d26f11acfc8e3865eb40093071187f028ca996632d60b0af47a27a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6201000051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x9da4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xa000502779ea", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6201000051600155", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (MLOAD 65536) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xa00050281798", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "175923205248920", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x10000804025c" + "17592320524892" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mload8bitBound.json b/GeneralStateTests/stMemoryTest/mload8bitBound.json index 61e4f28d6..982a5e52d 100644 --- a/GeneralStateTests/stMemoryTest/mload8bitBound.json +++ b/GeneralStateTests/stMemoryTest/mload8bitBound.json @@ -2,81 +2,97 @@ "mload8bitBound" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mload8bitBoundFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x68d0d02b58a7f988070b0e7f1a256be642aaccfd8bd91e18996c35611cfa054d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x61010051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x65b4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff9a42", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x68d0d02b58a7f988070b0e7f1a256be642aaccfd8bd91e18996c35611cfa054d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x68d0d02b58a7f988070b0e7f1a256be642aaccfd8bd91e18996c35611cfa054d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x68d0d02b58a7f988070b0e7f1a256be642aaccfd8bd91e18996c35611cfa054d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x68d0d02b58a7f988070b0e7f1a256be642aaccfd8bd91e18996c35611cfa054d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x61010051600155", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x65b4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff9a42", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x61010051600155", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] (MLOAD 256) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x035b60" + "220000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mload_dejavu.json b/GeneralStateTests/stMemoryTest/mload_dejavu.json index c7eda2941..864f62216 100644 --- a/GeneralStateTests/stMemoryTest/mload_dejavu.json +++ b/GeneralStateTests/stMemoryTest/mload_dejavu.json @@ -2,81 +2,97 @@ "mload_dejavu" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mload_dejavuFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf1d720915cb0fba8d8688069483837e45cb53d4cfb2f0496db2ce3bde64bf12f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x630fffffff51", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf1d720915cb0fba8d8688069483837e45cb53d4cfb2f0496db2ce3bde64bf12f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf1d720915cb0fba8d8688069483837e45cb53d4cfb2f0496db2ce3bde64bf12f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf1d720915cb0fba8d8688069483837e45cb53d4cfb2f0496db2ce3bde64bf12f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf1d720915cb0fba8d8688069483837e45cb53d4cfb2f0496db2ce3bde64bf12f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x630fffffff51", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x630fffffff51", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "0x630FFFFFFF51", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mstore_dejavu.json b/GeneralStateTests/stMemoryTest/mstore_dejavu.json index a582746e7..1168dc6f9 100644 --- a/GeneralStateTests/stMemoryTest/mstore_dejavu.json +++ b/GeneralStateTests/stMemoryTest/mstore_dejavu.json @@ -2,81 +2,97 @@ "mstore_dejavu" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mstore_dejavuFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe2c1656a205e46816a957285a55655a1a039d5d65d3e02b6252f6e934573dae4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60f1630fffffff52", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe2c1656a205e46816a957285a55655a1a039d5d65d3e02b6252f6e934573dae4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe2c1656a205e46816a957285a55655a1a039d5d65d3e02b6252f6e934573dae4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe2c1656a205e46816a957285a55655a1a039d5d65d3e02b6252f6e934573dae4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe2c1656a205e46816a957285a55655a1a039d5d65d3e02b6252f6e934573dae4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60f1630fffffff52", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60f1630fffffff52", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "0x60F1630FFFFFFF52", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/mstroe8_dejavu.json b/GeneralStateTests/stMemoryTest/mstroe8_dejavu.json index 0b777ee3c..6c1329077 100644 --- a/GeneralStateTests/stMemoryTest/mstroe8_dejavu.json +++ b/GeneralStateTests/stMemoryTest/mstroe8_dejavu.json @@ -2,81 +2,97 @@ "mstroe8_dejavu" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/mstroe8_dejavuFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1dec281f3d5384490d22a942941948d3d5453bf19a0855c81e60a722803f0043", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60f1630fffffff53", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1dec281f3d5384490d22a942941948d3d5453bf19a0855c81e60a722803f0043", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1dec281f3d5384490d22a942941948d3d5453bf19a0855c81e60a722803f0043", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1dec281f3d5384490d22a942941948d3d5453bf19a0855c81e60a722803f0043", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1dec281f3d5384490d22a942941948d3d5453bf19a0855c81e60a722803f0043", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60f1630fffffff53", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60f1630fffffff53", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "0x60F1630FFFFFFF53", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/sha3_dejavu.json b/GeneralStateTests/stMemoryTest/sha3_dejavu.json index 975f94749..fd00f7aa0 100644 --- a/GeneralStateTests/stMemoryTest/sha3_dejavu.json +++ b/GeneralStateTests/stMemoryTest/sha3_dejavu.json @@ -2,81 +2,97 @@ "sha3_dejavu" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/sha3_dejavuFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x37302f4388dcbe3d2a8c109b8670bd595291270a170d76dea20460515d95909e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff630fffffff20", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x37302f4388dcbe3d2a8c109b8670bd595291270a170d76dea20460515d95909e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x37302f4388dcbe3d2a8c109b8670bd595291270a170d76dea20460515d95909e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x37302f4388dcbe3d2a8c109b8670bd595291270a170d76dea20460515d95909e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x37302f4388dcbe3d2a8c109b8670bd595291270a170d76dea20460515d95909e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60ff630fffffff20", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0a00000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x5a00000000", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff630fffffff20", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "0x60FF630FFFFFFF20", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0a00000000" + "42949672960" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/stackLimitGas_1023.json b/GeneralStateTests/stMemoryTest/stackLimitGas_1023.json index e99862aa3..744e5e960 100644 --- a/GeneralStateTests/stMemoryTest/stackLimitGas_1023.json +++ b/GeneralStateTests/stMemoryTest/stackLimitGas_1023.json @@ -2,81 +2,97 @@ "stackLimitGas_1023" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/stackLimitGas_1023Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2e0e076db6976344c9662b3f3226fda27aff53e348bd5609e4a7154a2b20fd01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6103fd6000525b5a60016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xf19c", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff0e5a", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2e0e076db6976344c9662b3f3226fda27aff53e348bd5609e4a7154a2b20fd01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2e0e076db6976344c9662b3f3226fda27aff53e348bd5609e4a7154a2b20fd01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2e0e076db6976344c9662b3f3226fda27aff53e348bd5609e4a7154a2b20fd01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2e0e076db6976344c9662b3f3226fda27aff53e348bd5609e4a7154a2b20fd01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6103fd6000525b5a60016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xf19c", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff0e5a", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6103fd6000525b5a60016000510360005260005160065700", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "(asm 1021 0x00 MSTORE JUMPDEST GAS 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/stackLimitGas_1024.json b/GeneralStateTests/stMemoryTest/stackLimitGas_1024.json index 642170e6e..06e1e85b8 100644 --- a/GeneralStateTests/stMemoryTest/stackLimitGas_1024.json +++ b/GeneralStateTests/stMemoryTest/stackLimitGas_1024.json @@ -2,81 +2,97 @@ "stackLimitGas_1024" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/stackLimitGas_1024Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa7c41770a298ad62de3c3216658fecaa16550b911fe62265c9cce6e3a55adad6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6103fe6000525b5a60016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xf1c4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff0e32", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xa7c41770a298ad62de3c3216658fecaa16550b911fe62265c9cce6e3a55adad6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa7c41770a298ad62de3c3216658fecaa16550b911fe62265c9cce6e3a55adad6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa7c41770a298ad62de3c3216658fecaa16550b911fe62265c9cce6e3a55adad6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa7c41770a298ad62de3c3216658fecaa16550b911fe62265c9cce6e3a55adad6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6103fe6000525b5a60016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xf1c4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff0e32", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6103fe6000525b5a60016000510360005260005160065700", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "(asm 1022 0x00 MSTORE JUMPDEST GAS 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/stackLimitGas_1025.json b/GeneralStateTests/stMemoryTest/stackLimitGas_1025.json index 3b63b09de..8b5b0b4f2 100644 --- a/GeneralStateTests/stMemoryTest/stackLimitGas_1025.json +++ b/GeneralStateTests/stMemoryTest/stackLimitGas_1025.json @@ -2,81 +2,97 @@ "stackLimitGas_1025" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/stackLimitGas_1025Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0bf698140781a243586d4b8a3b5af5e3d9196a961215295e15d4a21fb9405983", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6103ff6000525b5a60016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0186a0", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffe7960", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x0bf698140781a243586d4b8a3b5af5e3d9196a961215295e15d4a21fb9405983", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0bf698140781a243586d4b8a3b5af5e3d9196a961215295e15d4a21fb9405983", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0bf698140781a243586d4b8a3b5af5e3d9196a961215295e15d4a21fb9405983", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0bf698140781a243586d4b8a3b5af5e3d9196a961215295e15d4a21fb9405983", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6103ff6000525b5a60016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0186a0", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffe7960", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6103ff6000525b5a60016000510360005260005160065700", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "(asm 1023 0x00 MSTORE JUMPDEST GAS 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/stackLimitPush31_1023.json b/GeneralStateTests/stMemoryTest/stackLimitPush31_1023.json index 06a043e39..4c3a35a7a 100644 --- a/GeneralStateTests/stMemoryTest/stackLimitPush31_1023.json +++ b/GeneralStateTests/stMemoryTest/stackLimitPush31_1023.json @@ -2,81 +2,97 @@ "stackLimitPush31_1023" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/stackLimitPush31_1023Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x012034963f12ba01a075eaf2399fe9903fce7de6875eb5b4060e722850743041", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6103fd6000525b7e0102030405060708090a0102030405060708090a0102030405060708090a0160016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xf599", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff0a5d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x012034963f12ba01a075eaf2399fe9903fce7de6875eb5b4060e722850743041", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x012034963f12ba01a075eaf2399fe9903fce7de6875eb5b4060e722850743041", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x012034963f12ba01a075eaf2399fe9903fce7de6875eb5b4060e722850743041", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x012034963f12ba01a075eaf2399fe9903fce7de6875eb5b4060e722850743041", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6103fd6000525b7e0102030405060708090a0102030405060708090a0102030405060708090a0160016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xf599", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff0a5d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6103fd6000525b7e0102030405060708090a0102030405060708090a0102030405060708090a0160016000510360005260005160065700", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "(asm 1021 0x00 MSTORE JUMPDEST 0x0102030405060708090a0102030405060708090a0102030405060708090a01 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/stackLimitPush31_1024.json b/GeneralStateTests/stMemoryTest/stackLimitPush31_1024.json index fb00756e1..791f90990 100644 --- a/GeneralStateTests/stMemoryTest/stackLimitPush31_1024.json +++ b/GeneralStateTests/stMemoryTest/stackLimitPush31_1024.json @@ -2,81 +2,97 @@ "stackLimitPush31_1024" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/stackLimitPush31_1024Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9c9fd8f67a6af918d96deccd3a0e96fc0a4496af936ec9f542be019f985ea528", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6103fe6000525b7e0102030405060708090a0102030405060708090a0102030405060708090a0160016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xf5c2", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff0a34", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9c9fd8f67a6af918d96deccd3a0e96fc0a4496af936ec9f542be019f985ea528", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9c9fd8f67a6af918d96deccd3a0e96fc0a4496af936ec9f542be019f985ea528", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9c9fd8f67a6af918d96deccd3a0e96fc0a4496af936ec9f542be019f985ea528", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9c9fd8f67a6af918d96deccd3a0e96fc0a4496af936ec9f542be019f985ea528", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6103fe6000525b7e0102030405060708090a0102030405060708090a0102030405060708090a0160016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xf5c2", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff0a34", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6103fe6000525b7e0102030405060708090a0102030405060708090a0102030405060708090a0160016000510360005260005160065700", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "(asm 1022 0x00 MSTORE JUMPDEST 0x0102030405060708090a0102030405060708090a0102030405060708090a01 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/stackLimitPush31_1025.json b/GeneralStateTests/stMemoryTest/stackLimitPush31_1025.json index 66b968573..75dde400d 100644 --- a/GeneralStateTests/stMemoryTest/stackLimitPush31_1025.json +++ b/GeneralStateTests/stMemoryTest/stackLimitPush31_1025.json @@ -2,81 +2,97 @@ "stackLimitPush31_1025" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/stackLimitPush31_1025Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4aac593c435cf2fa2b0ff6596215af980e85c185a6d115884cf7e4d7d9d36321", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6103ff6000525b7e0102030405060708090a0102030405060708090a0102030405060708090a0160016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0186a0", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffe7960", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4aac593c435cf2fa2b0ff6596215af980e85c185a6d115884cf7e4d7d9d36321", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4aac593c435cf2fa2b0ff6596215af980e85c185a6d115884cf7e4d7d9d36321", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4aac593c435cf2fa2b0ff6596215af980e85c185a6d115884cf7e4d7d9d36321", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4aac593c435cf2fa2b0ff6596215af980e85c185a6d115884cf7e4d7d9d36321", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6103ff6000525b7e0102030405060708090a0102030405060708090a0102030405060708090a0160016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0186a0", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffe7960", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6103ff6000525b7e0102030405060708090a0102030405060708090a0102030405060708090a0160016000510360005260005160065700", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "(asm 1023 0x00 MSTORE JUMPDEST 0x0102030405060708090a0102030405060708090a0102030405060708090a01 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/stackLimitPush32_1023.json b/GeneralStateTests/stMemoryTest/stackLimitPush32_1023.json index 1e44a1e33..d060afd24 100644 --- a/GeneralStateTests/stMemoryTest/stackLimitPush32_1023.json +++ b/GeneralStateTests/stMemoryTest/stackLimitPush32_1023.json @@ -2,81 +2,97 @@ "stackLimitPush32_1023" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/stackLimitPush32_1023Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0538c5873643505fc0ceb8f55945729bfadd0dde4bcc0a30a544162236b1a90b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6103fd6000525b7f0102030405060708090a0102030405060708090a0102030405060708090a010260016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xf599", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff0a5d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x0538c5873643505fc0ceb8f55945729bfadd0dde4bcc0a30a544162236b1a90b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0538c5873643505fc0ceb8f55945729bfadd0dde4bcc0a30a544162236b1a90b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0538c5873643505fc0ceb8f55945729bfadd0dde4bcc0a30a544162236b1a90b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0538c5873643505fc0ceb8f55945729bfadd0dde4bcc0a30a544162236b1a90b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6103fd6000525b7f0102030405060708090a0102030405060708090a0102030405060708090a010260016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xf599", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff0a5d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6103fd6000525b7f0102030405060708090a0102030405060708090a0102030405060708090a010260016000510360005260005160065700", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "(asm 1021 0x00 MSTORE JUMPDEST 0x0102030405060708090a0102030405060708090a0102030405060708090a0102 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/stackLimitPush32_1024.json b/GeneralStateTests/stMemoryTest/stackLimitPush32_1024.json index fc2c5b1eb..37cdc2f40 100644 --- a/GeneralStateTests/stMemoryTest/stackLimitPush32_1024.json +++ b/GeneralStateTests/stMemoryTest/stackLimitPush32_1024.json @@ -2,81 +2,97 @@ "stackLimitPush32_1024" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/stackLimitPush32_1024Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8c09fdc294863a6a0d8c06bf3346ed48f1794a4513c74d79d6010eedfca91c5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6103fe6000525b7f0102030405060708090a0102030405060708090a0102030405060708090a010260016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xf5c2", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff0a34", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8c09fdc294863a6a0d8c06bf3346ed48f1794a4513c74d79d6010eedfca91c5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8c09fdc294863a6a0d8c06bf3346ed48f1794a4513c74d79d6010eedfca91c5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8c09fdc294863a6a0d8c06bf3346ed48f1794a4513c74d79d6010eedfca91c5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8c09fdc294863a6a0d8c06bf3346ed48f1794a4513c74d79d6010eedfca91c5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a764000a", + "code" : "0x6103fe6000525b7f0102030405060708090a0102030405060708090a0102030405060708090a010260016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xf5c2", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63ffff0a34", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6103fe6000525b7f0102030405060708090a0102030405060708090a0102030405060708090a010260016000510360005260005160065700", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "(asm 1022 0x00 MSTORE JUMPDEST 0x0102030405060708090a0102030405060708090a0102030405060708090a0102 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stMemoryTest/stackLimitPush32_1025.json b/GeneralStateTests/stMemoryTest/stackLimitPush32_1025.json index 9143d51ea..2e486bfe9 100644 --- a/GeneralStateTests/stMemoryTest/stackLimitPush32_1025.json +++ b/GeneralStateTests/stMemoryTest/stackLimitPush32_1025.json @@ -2,81 +2,97 @@ "stackLimitPush32_1025" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stMemoryTest/stackLimitPush32_1025Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2b2c33348aabc10de2654557fe330f3d0d20ecf113613e7e016c3fdefcc610ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6103ff6000525b7f0102030405060708090a0102030405060708090a0102030405060708090a010260016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0186a0", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffe7960", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2b2c33348aabc10de2654557fe330f3d0d20ecf113613e7e016c3fdefcc610ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b2c33348aabc10de2654557fe330f3d0d20ecf113613e7e016c3fdefcc610ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2b2c33348aabc10de2654557fe330f3d0d20ecf113613e7e016c3fdefcc610ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2b2c33348aabc10de2654557fe330f3d0d20ecf113613e7e016c3fdefcc610ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6103ff6000525b7f0102030405060708090a0102030405060708090a0102030405060708090a010260016000510360005260005160065700", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x0186a0", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63fffe7960", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6103ff6000525b7f0102030405060708090a0102030405060708090a0102030405060708090a010260016000510360005260005160065700", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "(asm 1023 0x00 MSTORE JUMPDEST 0x0102030405060708090a0102030405060708090a0102030405060708090a0102 0x01 0x00 MLOAD SUB 0x00 MSTORE 0x00 MLOAD 0x06 JUMPI STOP )", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x6400000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "429496729600", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +102,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL.json index adf5d418e..a57eb925f 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL.json @@ -2,81 +2,79 @@ "NonZeroValue_CALL" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_CALLFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9df178851e255b9eca0b8f56c64426c1aad2ab88fb32bc1ef272a472e67c52c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63", + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07bac9" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0x9df178851e255b9eca0b8f56c64426c1aad2ab88fb32bc1ef272a472e67c52c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x18fde033bb93d4edd7f65d0bf26b1ae113fae2abe0b6d9f51571b9bd41e8ba89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x18fde033bb93d4edd7f65d0bf26b1ae113fae2abe0b6d9f51571b9bd41e8ba89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9df178851e255b9eca0b8f56c64426c1aad2ab88fb32bc1ef272a472e67c52c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x63", + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07bd5d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", - "code" : "0x5a6000556000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f16001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "code" : "{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +84,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE.json index 18ac2478e..2d0238fcc 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE.json @@ -2,81 +2,77 @@ "NonZeroValue_CALLCODE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_CALLCODEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe034c4ab4e487e066337e27811b39dc4b3a63c127b1e8968e3d57d6dc7c2ac11", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081c71" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xe034c4ab4e487e066337e27811b39dc4b3a63c127b1e8968e3d57d6dc7c2ac11", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfc851b9f0ae9a9b21a39bd3567a405dde667c95ea642e2b2adf2a6e5cde10175", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfc851b9f0ae9a9b21a39bd3567a405dde667c95ea642e2b2adf2a6e5cde10175", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe034c4ab4e487e066337e27811b39dc4b3a63c127b1e8968e3d57d6dc7c2ac11", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081f05" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", - "code" : "0x5a6000556000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f26001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "code" : "{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +82,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToEmpty.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToEmpty.json index 85b96b6c7..e9ad56da2 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToEmpty.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToEmpty.json @@ -2,88 +2,92 @@ "NonZeroValue_CALLCODE_ToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x30e803dcb470910b21cbc5afe6f4e10c0255e41681c2798792a46c45aeab8b85", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081c71" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x30e803dcb470910b21cbc5afe6f4e10c0255e41681c2798792a46c45aeab8b85", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4323085a2521bdac4f581cd301feb82a04ca8f6715bffad04bf59bf41e34e13f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4323085a2521bdac4f581cd301feb82a04ca8f6715bffad04bf59bf41e34e13f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x30e803dcb470910b21cbc5afe6f4e10c0255e41681c2798792a46c45aeab8b85", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081f05" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", - "code" : "0x5a6000556000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f26001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "code" : "{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -93,14 +97,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToNonNonZeroBalance.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToNonNonZeroBalance.json index 53bc6f57e..dacc51040 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToNonNonZeroBalance.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToNonNonZeroBalance.json @@ -2,88 +2,82 @@ "NonZeroValue_CALLCODE_ToNonNonZeroBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToNonNonZeroBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x73c1b3d3ff93afd00bab54b6c2ba55cf832755ddb84300c1fe67f7a8c9adc9f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x085709" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0x73c1b3d3ff93afd00bab54b6c2ba55cf832755ddb84300c1fe67f7a8c9adc9f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x75e88dfadd9e54ba0f0655edc26b76b4c4d81f44f1c08463db104ffb99e5801f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x75e88dfadd9e54ba0f0655edc26b76b4c4d81f44f1c08463db104ffb99e5801f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x73c1b3d3ff93afd00bab54b6c2ba55cf832755ddb84300c1fe67f7a8c9adc9f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x08599d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f26001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +87,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToOneStorageKey.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToOneStorageKey.json index 8cf32bffe..fce782900 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToOneStorageKey.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToOneStorageKey.json @@ -2,88 +2,90 @@ "NonZeroValue_CALLCODE_ToOneStorageKey" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_CALLCODE_ToOneStorageKeyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6594ecae20668651e6810ff24736106050666ce43d3d194a424072aedb8ac36f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081c71" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6594ecae20668651e6810ff24736106050666ce43d3d194a424072aedb8ac36f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x810d61625df378cb6b11b70292d47ef172a8ba6b3ee2a980d0ced31543f4d8ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x810d61625df378cb6b11b70292d47ef172a8ba6b3ee2a980d0ced31543f4d8ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6594ecae20668651e6810ff24736106050666ce43d3d194a424072aedb8ac36f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081f05" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x03e8", - "code" : "0x5a6000556000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f26001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -94,14 +96,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL_ToEmpty.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL_ToEmpty.json index 2b20561f3..7ede1710d 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL_ToEmpty.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL_ToEmpty.json @@ -2,88 +2,105 @@ "NonZeroValue_CALL_ToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_CALL_ToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0475fdbe6f5d3b56c1a456bdf38b1af774714b49d972141014a773d341abff8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07bac9" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0xb28eed23e9dad726338ac265dcf79d8c4232a554477c3b7ce825904ec31a80c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9776a6d31fb2793d3cecca684189f597321414fade8fa4285f5f5591ea932bf0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9776a6d31fb2793d3cecca684189f597321414fade8fa4285f5f5591ea932bf0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081c71" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" } } - ], - "Metropolis" : [ - { - "hash" : "0xb28eed23e9dad726338ac265dcf79d8c4232a554477c3b7ce825904ec31a80c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081f05" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x03e8", - "code" : "0x5a6000556000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f16001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +110,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL_ToNonNonZeroBalance.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL_ToNonNonZeroBalance.json index 395ccdd9f..880262a96 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL_ToNonNonZeroBalance.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL_ToNonNonZeroBalance.json @@ -2,88 +2,82 @@ "NonZeroValue_CALL_ToNonNonZeroBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_CALL_ToNonNonZeroBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb56615545150230d234f9959803c1390853e12cf8c5c343b76b9869e3812f074", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x085709" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0xb56615545150230d234f9959803c1390853e12cf8c5c343b76b9869e3812f074", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8ee7323d74cc905937313476a96b647b1df86592aa403abcce0ca08928829aec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8ee7323d74cc905937313476a96b647b1df86592aa403abcce0ca08928829aec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb56615545150230d234f9959803c1390853e12cf8c5c343b76b9869e3812f074", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x08599d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f16001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +87,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL_ToOneStorageKey.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL_ToOneStorageKey.json index a8f4b53a0..ca5f10127 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL_ToOneStorageKey.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_CALL_ToOneStorageKey.json @@ -2,88 +2,114 @@ "NonZeroValue_CALL_ToOneStorageKey" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_CALL_ToOneStorageKeyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x58d12eb2afd9e732567022aac3eaaa0c5d5d5007551aef55ee02ef1b1b135dd7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07bac9" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc348bb0448946bdf5ba1c3e9c3751048bc78aa866d2c9de1e5fc82892f5eb099", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x059510b79136780b74bc8dc28c65f719826ab4702456b8c8d81c951cb4c05bcf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x059510b79136780b74bc8dc28c65f719826ab4702456b8c8d81c951cb4c05bcf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081c71" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "storage" : { + "0x00" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xc348bb0448946bdf5ba1c3e9c3751048bc78aa866d2c9de1e5fc82892f5eb099", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x081f05" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x03e8", - "code" : "0x5a6000556000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f16001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -94,14 +120,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL.json index ba13ce157..52e4b7734 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL.json @@ -2,81 +2,98 @@ "NonZeroValue_DELEGATECALL" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_DELEGATECALLFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe131f40988e218780d2e8b009da72c874f92a48b6ca844afb3ca7e529ebf257d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe131f40988e218780d2e8b009da72c874f92a48b6ca844afb3ca7e529ebf257d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0736a19073698ddc647cf82eed7589a7776bc227ca27788b12ca6bc5f94e39b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x45a8638184a3027700edeb6478c08dd19a400d1ddb864e23c7f5b7faa9aed22c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x64" : "0" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xe131f40988e218780d2e8b009da72c874f92a48b6ca844afb3ca7e529ebf257d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083934" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f46001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +103,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToEmpty.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToEmpty.json index 16ac2f9d1..7b1dd5d1a 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToEmpty.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToEmpty.json @@ -2,88 +2,117 @@ "NonZeroValue_DELEGATECALL_ToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x55b364749bffbe4de6de27bd1befab41b9afbe7513c559b376a03a27cb0af916", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x55b364749bffbe4de6de27bd1befab41b9afbe7513c559b376a03a27cb0af916", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2679e492e89edbb16b20be31663b8d783e92a85db08be2e2fcddfe0beb6ba088", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdd53adf5f25628ca817be7df8e5a57b5446689ed145a4ac46abf3a45013fe2af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x64" : "0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x55b364749bffbe4de6de27bd1befab41b9afbe7513c559b376a03a27cb0af916", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083934" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f46001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +122,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToNonNonZeroBalance.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToNonNonZeroBalance.json index 99e3a8e99..580fa0d6d 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToNonNonZeroBalance.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToNonNonZeroBalance.json @@ -2,88 +2,105 @@ "NonZeroValue_DELEGATECALL_ToNonNonZeroBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToNonNonZeroBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa0ffd8374aa4f0219c79796004e4d128297c960bee088d569ee4fd59303e5bb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0xa0ffd8374aa4f0219c79796004e4d128297c960bee088d569ee4fd59303e5bb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x490c7a4c7f7de525caa617975740e598c8b5d67fdf0b1299a85cbabd29b42d0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf5814da69510fc59eb19ff9a78e870ed05d7e529ac9ccbe17a7a46db4e4369a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x64" : "0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "Metropolis" : [ - { - "hash" : "0xa0ffd8374aa4f0219c79796004e4d128297c960bee088d569ee4fd59303e5bb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083934" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f46001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +110,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToOneStorageKey.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToOneStorageKey.json index 1190ee270..ad0eca77f 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToOneStorageKey.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToOneStorageKey.json @@ -2,88 +2,114 @@ "NonZeroValue_DELEGATECALL_ToOneStorageKey" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_DELEGATECALL_ToOneStorageKeyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf17cfda7d19e3648d3bd315a3e888f89f7002b6413cc8dd4de6e433612d6d0d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf17cfda7d19e3648d3bd315a3e888f89f7002b6413cc8dd4de6e433612d6d0d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb910ee1c13f68cb2c31ebf954a3682dacc4b2bc55eb576f6c42f44d9853d7e80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6baf84679c6338c00371b0e3246c4feaf08e07db41e1e0d191069ae5611645e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x64" : "0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x00" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xf17cfda7d19e3648d3bd315a3e888f89f7002b6413cc8dd4de6e433612d6d0d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083934" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f46001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -94,14 +120,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE.json index 632b1d4b0..fc3633c97 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE.json @@ -2,81 +2,72 @@ "NonZeroValue_SUICIDE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_SUICIDEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc019ad49d0173d2e02dbaba6f8309522fbe14d20f4d1b23ee79deccc2d4a74ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x697b" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xc019ad49d0173d2e02dbaba6f8309522fbe14d20f4d1b23ee79deccc2d4a74ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x80756cac9d08bad90d4111bd79b4dff1c6f1c0048822a7e1831b1152840c33cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x80756cac9d08bad90d4111bd79b4dff1c6f1c0048822a7e1831b1152840c33cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc019ad49d0173d2e02dbaba6f8309522fbe14d20f4d1b23ee79deccc2d4a74ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +77,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToEmpty.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToEmpty.json index 94a9f6c48..d0498246b 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToEmpty.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToEmpty.json @@ -2,88 +2,76 @@ "NonZeroValue_SUICIDE_ToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb31731ecc10e0cf52b8a47f22cb2c18bbf44d7548299432733efeec8c5e55608", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0xc019ad49d0173d2e02dbaba6f8309522fbe14d20f4d1b23ee79deccc2d4a74ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x80756cac9d08bad90d4111bd79b4dff1c6f1c0048822a7e1831b1152840c33cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x80756cac9d08bad90d4111bd79b4dff1c6f1c0048822a7e1831b1152840c33cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc019ad49d0173d2e02dbaba6f8309522fbe14d20f4d1b23ee79deccc2d4a74ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +81,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToNonNonZeroBalance.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToNonNonZeroBalance.json index 56727d423..bef14d814 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToNonNonZeroBalance.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToNonNonZeroBalance.json @@ -2,88 +2,76 @@ "NonZeroValue_SUICIDE_ToNonNonZeroBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToNonNonZeroBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x29639facdc2ec378b5f8b30d7031af440030906818c65e5ce501be46e7673a6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "101" } } - ], - "EIP158" : [ - { - "hash" : "0x29639facdc2ec378b5f8b30d7031af440030906818c65e5ce501be46e7673a6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xee399cdbb90811501e58caaca483d656e0624d7465fdac67292b777e31ded659", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xee399cdbb90811501e58caaca483d656e0624d7465fdac67292b777e31ded659", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x29639facdc2ec378b5f8b30d7031af440030906818c65e5ce501be46e7673a6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "101" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +81,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToOneStorageKey.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToOneStorageKey.json index 176538e01..a3d78b3b1 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToOneStorageKey.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToOneStorageKey.json @@ -2,89 +2,83 @@ "NonZeroValue_SUICIDE_ToOneStorageKey" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_SUICIDE_ToOneStorageKeyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4d5ad37c709dfa330027d407eec5cd81657cc985006ae08573a2bebe550f7413", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01", + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xeb8655c8a78e91811abc48ebc52669602d1e1e74cead359d88456dc60a293209", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x402b17e4f614ce2354257025fc55022b09dd55fc8de31637c8779c163d12600f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x402b17e4f614ce2354257025fc55022b09dd55fc8de31637c8779c163d12600f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xeb8655c8a78e91811abc48ebc52669602d1e1e74cead359d88456dc60a293209", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01", + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { "0x00" : "0x01" } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -95,14 +89,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL.json index f4a75086e..d586cf470 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL.json @@ -2,74 +2,72 @@ "NonZeroValue_TransactionCALL" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_TransactionCALLFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x93f113c0983199eebd1537d87938599f994dca74a08df794a0664370df1abf7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x5208" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xe8d4a4bdf7" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x93f113c0983199eebd1537d87938599f994dca74a08df794a0664370df1abf7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x93f113c0983199eebd1537d87938599f994dca74a08df794a0664370df1abf7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x93f113c0983199eebd1537d87938599f994dca74a08df794a0664370df1abf7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x5208" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xe8d4a4bdf7" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x93f113c0983199eebd1537d87938599f994dca74a08df794a0664370df1abf7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +77,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToEmpty.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToEmpty.json index f30797f3c..496db2d9b 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToEmpty.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToEmpty.json @@ -2,81 +2,63 @@ "NonZeroValue_TransactionCALL_ToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x93f113c0983199eebd1537d87938599f994dca74a08df794a0664370df1abf7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0x93f113c0983199eebd1537d87938599f994dca74a08df794a0664370df1abf7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x93f113c0983199eebd1537d87938599f994dca74a08df794a0664370df1abf7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x93f113c0983199eebd1537d87938599f994dca74a08df794a0664370df1abf7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x93f113c0983199eebd1537d87938599f994dca74a08df794a0664370df1abf7b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +68,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToNonNonZeroBalance.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToNonNonZeroBalance.json index 84af6063c..b5a486699 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToNonNonZeroBalance.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToNonNonZeroBalance.json @@ -2,81 +2,63 @@ "NonZeroValue_TransactionCALL_ToNonNonZeroBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToNonNonZeroBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1da2400dccfbef2a877eaa19db825342c26c14d8d11975367d53a82a94bce504", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "101" } } - ], - "EIP158" : [ - { - "hash" : "0x1da2400dccfbef2a877eaa19db825342c26c14d8d11975367d53a82a94bce504", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1da2400dccfbef2a877eaa19db825342c26c14d8d11975367d53a82a94bce504", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1da2400dccfbef2a877eaa19db825342c26c14d8d11975367d53a82a94bce504", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1da2400dccfbef2a877eaa19db825342c26c14d8d11975367d53a82a94bce504", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "101" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +68,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToOneStorageKey.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToOneStorageKey.json index 248eccbe4..108e4a851 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToOneStorageKey.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToOneStorageKey.json @@ -2,81 +2,69 @@ "NonZeroValue_TransactionCALL_ToOneStorageKey" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_TransactionCALL_ToOneStorageKeyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x35d700173a1cd693d0dfdbcf665501e33cd6d5c08e06d5a8d24acdd4bc631271", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01", + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x35d700173a1cd693d0dfdbcf665501e33cd6d5c08e06d5a8d24acdd4bc631271", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x35d700173a1cd693d0dfdbcf665501e33cd6d5c08e06d5a8d24acdd4bc631271", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x35d700173a1cd693d0dfdbcf665501e33cd6d5c08e06d5a8d24acdd4bc631271", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x35d700173a1cd693d0dfdbcf665501e33cd6d5c08e06d5a8d24acdd4bc631271", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01", + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -87,14 +75,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData.json index 95e8ac1ee..eb531560b 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData.json @@ -2,74 +2,72 @@ "NonZeroValue_TransactionCALLwithData" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithDataFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0908df20ad65e117e99311134f1f4d5ae361132699c8fb418ce1104b13b2aef1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x5758" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xe8d4a4b8a7" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x0908df20ad65e117e99311134f1f4d5ae361132699c8fb418ce1104b13b2aef1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0908df20ad65e117e99311134f1f4d5ae361132699c8fb418ce1104b13b2aef1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0908df20ad65e117e99311134f1f4d5ae361132699c8fb418ce1104b13b2aef1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x5758" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xe8d4a4b8a7" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x0908df20ad65e117e99311134f1f4d5ae361132699c8fb418ce1104b13b2aef1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +77,14 @@ "0x1122334455667788991011121314151617181920" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToEmpty.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToEmpty.json index 0a8fe0409..cc5c096e6 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToEmpty.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToEmpty.json @@ -2,81 +2,63 @@ "NonZeroValue_TransactionCALLwithData_ToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0908df20ad65e117e99311134f1f4d5ae361132699c8fb418ce1104b13b2aef1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0x0908df20ad65e117e99311134f1f4d5ae361132699c8fb418ce1104b13b2aef1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0908df20ad65e117e99311134f1f4d5ae361132699c8fb418ce1104b13b2aef1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0908df20ad65e117e99311134f1f4d5ae361132699c8fb418ce1104b13b2aef1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0908df20ad65e117e99311134f1f4d5ae361132699c8fb418ce1104b13b2aef1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +68,14 @@ "0x1122334455667788991011121314151617181920" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToNonNonZeroBalance.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToNonNonZeroBalance.json index 7fb43252b..31a36810f 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToNonNonZeroBalance.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToNonNonZeroBalance.json @@ -2,81 +2,63 @@ "NonZeroValue_TransactionCALLwithData_ToNonNonZeroBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToNonNonZeroBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x44932a33e4b8e8ee19556bc9e6d8f55276559d47643bf45f171dd0546ef662ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "101" } } - ], - "EIP158" : [ - { - "hash" : "0x44932a33e4b8e8ee19556bc9e6d8f55276559d47643bf45f171dd0546ef662ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x44932a33e4b8e8ee19556bc9e6d8f55276559d47643bf45f171dd0546ef662ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x44932a33e4b8e8ee19556bc9e6d8f55276559d47643bf45f171dd0546ef662ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x44932a33e4b8e8ee19556bc9e6d8f55276559d47643bf45f171dd0546ef662ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "101" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +68,14 @@ "0x1122334455667788991011121314151617181920" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToOneStorageKey.json b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToOneStorageKey.json index a26923650..05bc31fb6 100644 --- a/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToOneStorageKey.json +++ b/GeneralStateTests/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToOneStorageKey.json @@ -2,81 +2,69 @@ "NonZeroValue_TransactionCALLwithData_ToOneStorageKey" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stNonZeroCallsTest/NonZeroValue_TransactionCALLwithData_ToOneStorageKeyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x15e8cf2d5338ff06b25f36e70244bf5803b366d94c5bb9a7fa74d9834558b5a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01", + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x15e8cf2d5338ff06b25f36e70244bf5803b366d94c5bb9a7fa74d9834558b5a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x15e8cf2d5338ff06b25f36e70244bf5803b366d94c5bb9a7fa74d9834558b5a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x15e8cf2d5338ff06b25f36e70244bf5803b366d94c5bb9a7fa74d9834558b5a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x15e8cf2d5338ff06b25f36e70244bf5803b366d94c5bb9a7fa74d9834558b5a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x01", + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -87,14 +75,14 @@ "0x1122334455667788991011121314151617181920" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0.json index 41a90d597..e3946a4b5 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0.json @@ -2,81 +2,50 @@ "CALLCODEEcrecover0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecover0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9eac1b6a89d6b05265e9b04176c468a87c03d1ea45cf55b06efd0c9ab48d2301", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6596d735e854ec9815daff8a76980309a1830fb70a4d2e50cccfeacd4ef08ea7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf799a1ce0f751eb1229b63c7f8f88e8cee0b5aa0bb4533131706b570c4bddcca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf799a1ce0f751eb1229b63c7f8f88e8cee0b5aa0bb4533131706b570c4bddcca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6596d735e854ec9815daff8a76980309a1830fb70a4d2e50cccfeacd4ef08ea7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f260025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_0input.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_0input.json index 13a80b423..a76020170 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_0input.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_0input.json @@ -2,81 +2,48 @@ "CALLCODEEcrecover0_0input" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecover0_0inputFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0c8f940ac7ccc785ea3269c54e2163015371fe33503a1f8132b978038cd575e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x57d85a776f0ed60eb9f8addc94d51c6a4291bd377076fa0f472c3c3e36cf0faa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x94aa48e4c65f925e0720999909ae372c2a8d0a323188c7836c9acd9de8084d01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x94aa48e4c65f925e0720999909ae372c2a8d0a323188c7836c9acd9de8084d01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x57d85a776f0ed60eb9f8addc94d51c6a4291bd377076fa0f472c3c3e36cf0faa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x602060806080600060006001620493e0f260025560a060020a60805106600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_Gas2999.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_Gas2999.json index 70aa424ed..5280db599 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_Gas2999.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_Gas2999.json @@ -2,81 +2,48 @@ "CALLCODEEcrecover0_Gas2999" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecover0_Gas2999Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb883081d90f494799d270110223dadef0a39d8876bc0c14f4826c5d3e3ae0ebb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x897f996d27f67f93cf68f7a3dc8aaec646b713234c34a2c162a43841ac55dc90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc6d9353338911dcd8ade0686ffb48152ef6d6c3f5f352d954e66f10dfec29840", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc6d9353338911dcd8ade0686ffb48152ef6d6c3f5f352d954e66f10dfec29840", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x897f996d27f67f93cf68f7a3dc8aaec646b713234c34a2c162a43841ac55dc90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001610bb7f260025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 2999 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_NoGas.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_NoGas.json index 707f4ff3e..225885a16 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_NoGas.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_NoGas.json @@ -2,81 +2,89 @@ "CALLCODEEcrecover0_NoGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecover0_NoGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2be771c1f218681ff8b8a2c2af94605601c815cd7034c69891a7dd17c5c26313", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "45216" } } - ], - "EIP158" : [ - { - "hash" : "0x6ffab1a138206bf9486ae55c422414ef4a7d287370035c89b1b58f0eb3facc26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9bfb9c885eac441898a31454c65c65ff2ec84238221af48da2ac32500bb20f5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9bfb9c885eac441898a31454c65c65ff2ec84238221af48da2ac32500bb20f5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "46026" } } - ], - "Metropolis" : [ - { - "hash" : "0x6ffab1a138206bf9486ae55c422414ef4a7d287370035c89b1b58f0eb3facc26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "46066" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c45496060526020608060806000600160016000f260025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 0 1 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +94,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_completeReturnValue.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_completeReturnValue.json index d6696e8cd..d64fb03df 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_completeReturnValue.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_completeReturnValue.json @@ -2,81 +2,49 @@ "CALLCODEEcrecover0_completeReturnValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecover0_completeReturnValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x584bd8635ffc1fbba4dadff92094fec0a28de4ced2191b1b68d17eb2efe11bab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x584bd8635ffc1fbba4dadff92094fec0a28de4ced2191b1b68d17eb2efe11bab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb908853ebf24a2f1892e21ab87edfcdae6c242b9167b4c234de7aa9cb97b524", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbb908853ebf24a2f1892e21ab87edfcdae6c242b9167b4c234de7aa9cb97b524", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x584bd8635ffc1fbba4dadff92094fec0a28de4ced2191b1b68d17eb2efe11bab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001610bb8f2600255608051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 3000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_gas3000.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_gas3000.json index db5f24882..2bc3d66c5 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_gas3000.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_gas3000.json @@ -2,81 +2,50 @@ "CALLCODEEcrecover0_gas3000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecover0_gas3000Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x22f37948a081bbb85a340254a983ca835503113cfb6418143021fb89021e5bf5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfa8f83131d8d5f9322d2893e12342a8980948d1e734cfdbfa99aabefb9942b03", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x30162640b2bf57fa99f543a25f45882c8e41d1d3e1ceffded3b72daa6884c1e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x30162640b2bf57fa99f543a25f45882c8e41d1d3e1ceffded3b72daa6884c1e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfa8f83131d8d5f9322d2893e12342a8980948d1e734cfdbfa99aabefb9942b03", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001610bb8f260025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 3000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_overlappingInputOutput.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_overlappingInputOutput.json index e6578ea2d..29dc6d2c6 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_overlappingInputOutput.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover0_overlappingInputOutput.json @@ -2,81 +2,50 @@ "CALLCODEEcrecover0_overlappingInputOutput" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecover0_overlappingInputOutputFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe575a3b7d926bc4c6de7be26d68a1d094b0ec0841d2130493d23ab102051596a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x91656c11a9845fd85d0bd83befcd344906d4aa16edfd5fa4273d01b634476b3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xca1717450cce44ba42c7d5d190ba1b05105af965e211fba73460f390e8fd1be3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xca1717450cce44ba42c7d5d190ba1b05105af965e211fba73460f390e8fd1be3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x91656c11a9845fd85d0bd83befcd344906d4aa16edfd5fa4273d01b634476b3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060406080600060006001620493e0f260025560a060020a604051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 64 32) [[ 0 ]] (MOD (MLOAD 64) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover1.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover1.json index 88631181e..f98bfecac 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover1.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover1.json @@ -2,81 +2,48 @@ "CALLCODEEcrecover1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecover1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf262fe6a03bbc8679c4a82514702934627d13d6c7e76085eae0ef31de1cfbc73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x12c413ef17691f161eeb212121bbad4804d14a8ffc8ecf0bb740ab1229beebcc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5adfb4e75598f76d070edb5056d4360ae6eaac1e0c6776d82ef688bec4ca38ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5adfb4e75598f76d070edb5056d4360ae6eaac1e0c6776d82ef688bec4ca38ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x12c413ef17691f161eeb212121bbad4804d14a8ffc8ecf0bb740ab1229beebcc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c60005260016020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620186a0f260025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 1) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover2.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover2.json index 9a6da4bab..9d69dd193 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover2.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover2.json @@ -2,81 +2,48 @@ "CALLCODEEcrecover2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecover2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8be0de871f149dd9036ffea13ad9076a19b0a87f6d7828103907724e28f83b5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9b3d7d6eac73bb9f96ea5f8157c4993f0459a65ea5918cc5c2196238be22a0cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b063782ff9c42c18b0c440e41a1b2097c8f75389f698c7b69af9484e87b1394", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2b063782ff9c42c18b0c440e41a1b2097c8f75389f698c7b69af9484e87b1394", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9b3d7d6eac73bb9f96ea5f8157c4993f0459a65ea5918cc5c2196238be22a0cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6021527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549604152602060616061600060006001620186a0f260025560a060020a606151066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 33 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 65 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 100000 1 0 0 97 97 32) [[ 0 ]] (MOD (MLOAD 97) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover3.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover3.json index e6ccc88fc..0b42a1ef7 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover3.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover3.json @@ -2,81 +2,49 @@ "CALLCODEEcrecover3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecover3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfed1e9a3da583046162af6ed6171e7683d3a89100c474e7617931cbb23c9171e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe4319f4b631c6d0fcfc84045dbcb676865fe5e13", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x66a61576f892dd293458323d70df471ca61771c959203d1e174d64d557e53aca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xeb94655adec71a88e2615ac24a4fa697b7ac3a2d745873069ccf0232c494313c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xeb94655adec71a88e2615ac24a4fa697b7ac3a2d745873069ccf0232c494313c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x66a61576f892dd293458323d70df471ca61771c959203d1e174d64d557e53aca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9600052601b6020527f6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a6040527f37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4606052602060806080600060006001620186a0f260025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9) (MSTORE 32 27) (MSTORE 64 0x6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a) (MSTORE 96 0x37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4) [[ 2 ]] (CALLCODE 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover80.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover80.json index fd4a9c5f8..72c004c1f 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover80.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecover80.json @@ -2,81 +2,50 @@ "CALLCODEEcrecover80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecover80Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe216badd7d303a75a5ba7269f21c9e25353a4e0276757e55459ce0da5e2f5fc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x40b646526608d59b43f550e238f50a3bcfaf065b83fa186e877015fc93b6f738", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7a06a9b9029ed27905c979757d738d9172a2bdd83c14db8ed22582cb4852ab80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7a06a9b9029ed27905c979757d738d9172a2bdd83c14db8ed22582cb4852ab80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x40b646526608d59b43f550e238f50a3bcfaf065b83fa186e877015fc93b6f738", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7ec547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527eb1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527eb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f260025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverH_prefixed0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverH_prefixed0.json index bfa7fe5ed..da939976f 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverH_prefixed0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverH_prefixed0.json @@ -2,81 +2,50 @@ "CALLCODEEcrecoverH_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecoverH_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc7710f6a93d1f58657ea85ded47657ba849f076d133087388e6cb2bd5f674ba1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa0b29af6a56d6cfef6415cb195ccbe540e006d0a", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7897ca4676634b39cb65d8f06d58720262c5a17cebf696dbadd378550ff0cd1f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfd40abde077f5ddc8e6f9e0077117fc2c5f0a12039525ba83ad79d2519a2f1bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfd40abde077f5ddc8e6f9e0077117fc2c5f0a12039525ba83ad79d2519a2f1bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7897ca4676634b39cb65d8f06d58720262c5a17cebf696dbadd378550ff0cd1f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7ec547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f260025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverR_prefixed0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverR_prefixed0.json index c93d77725..12acd67b3 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverR_prefixed0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverR_prefixed0.json @@ -2,81 +2,50 @@ "CALLCODEEcrecoverR_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecoverR_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xef146e382f63cd5e0c0b19a2b982fa24d65b5e5816fd99b4852942bca11c1994", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe0fb6df8294c30d22dd68bb80917de61e7ca3fb5bd9e29cb29dab6432176be7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf6e3d4a6aa057bdd8a5a8b8648fdc1b2efd1146db5d6e003cf0c0d344d5901fd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf6e3d4a6aa057bdd8a5a8b8648fdc1b2efd1146db5d6e003cf0c0d344d5901fd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe0fb6df8294c30d22dd68bb80917de61e7ca3fb5bd9e29cb29dab6432176be7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527eb1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f260025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverS_prefixed0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverS_prefixed0.json index 1c985eb95..f30d41327 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverS_prefixed0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverS_prefixed0.json @@ -2,81 +2,50 @@ "CALLCODEEcrecoverS_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecoverS_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xea5900accbdb7ac4d5e3838d594a0a6be6996889c5926e781734788b4ef8350d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xb4950a7fad428434b11c357fa6d4b4bcd3096a5d", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9fc4b5d1e199ad0d51733ecc120706356d81ee5f0c49a2ae6494e8f23a86dde9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7a263a0b4ce8299dff23b911080cadab60bfec7ed41b171647e27074de3741af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7a263a0b4ce8299dff23b911080cadab60bfec7ed41b171647e27074de3741af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9fc4b5d1e199ad0d51733ecc120706356d81ee5f0c49a2ae6494e8f23a86dde9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527eb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f260025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverV_prefixed0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverV_prefixed0.json index 4e96b0311..768bff110 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverV_prefixed0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverV_prefixed0.json @@ -2,81 +2,50 @@ "CALLCODEEcrecoverV_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecoverV_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9eac1b6a89d6b05265e9b04176c468a87c03d1ea45cf55b06efd0c9ab48d2301", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6596d735e854ec9815daff8a76980309a1830fb70a4d2e50cccfeacd4ef08ea7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf799a1ce0f751eb1229b63c7f8f88e8cee0b5aa0bb4533131706b570c4bddcca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf799a1ce0f751eb1229b63c7f8f88e8cee0b5aa0bb4533131706b570c4bddcca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6596d735e854ec9815daff8a76980309a1830fb70a4d2e50cccfeacd4ef08ea7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f260025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 0x001c) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverV_prefixedf0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverV_prefixedf0.json index a59e8641f..f2c03730c 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverV_prefixedf0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEEcrecoverV_prefixedf0.json @@ -2,121 +2,50 @@ "CALLCODEEcrecoverV_prefixedf0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEEcrecoverV_prefixedf0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9eba53e9f11d7b45ebcff8d960ca6ee701d572b1533c0f7acbf6210373d1e34f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9eba53e9f11d7b45ebcff8d960ca6ee701d572b1533c0f7acbf6210373d1e34f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb2ee88dee876096e747b6879e06a263d98e4c3cb8d24ed173382259112e69226", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb2ee88dee876096e747b6879e06a263d98e4c3cb8d24ed173382259112e69226", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x15e6392b8f1990a2f59f6f0d8af5b00239dcdafe68bd4cab13f1e00ce783c533", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x15e6392b8f1990a2f59f6f0d8af5b00239dcdafe68bd4cab13f1e00ce783c533", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x15e6392b8f1990a2f59f6f0d8af5b00239dcdafe68bd4cab13f1e00ce783c533", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x15e6392b8f1990a2f59f6f0d8af5b00239dcdafe68bd4cab13f1e00ce783c533", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb2ee88dee876096e747b6879e06a263d98e4c3cb8d24ed173382259112e69226", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xb2ee88dee876096e747b6879e06a263d98e4c3cb8d24ed173382259112e69226", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c6000526000356020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f260025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 (CALLDATALOAD 0)) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALLCODE 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -127,14 +56,14 @@ "0x00000000000000000000000000000000f000000000000000000000000000001c" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentitiy_0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentitiy_0.json index 05185a4ff..51753a387 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentitiy_0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentitiy_0.json @@ -2,81 +2,48 @@ "CALLCODEIdentitiy_0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEIdentitiy_0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe03f1d6e66a44f43647704defdbe06e5535f1fecc57350344fdce2d6c500f0ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0000000000000000000000000000000000000000000000000000000000000001" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe03f1d6e66a44f43647704defdbe06e5535f1fecc57350344fdce2d6c500f0ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5d8b1ba285d79d0fbdc0f7ebe2276b1a61196f40252f31306ddb0da74dc67a08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5d8b1ba285d79d0fbdc0f7ebe2276b1a61196f40252f31306ddb0da74dc67a08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe03f1d6e66a44f43647704defdbe06e5535f1fecc57350344fdce2d6c500f0ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", "code" : "0x600160005260206000602060006000600460fff2600051600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentitiy_1.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentitiy_1.json index 21f57b019..d42c45519 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentitiy_1.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentitiy_1.json @@ -2,81 +2,49 @@ "CALLCODEIdentitiy_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEIdentitiy_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4e4c71d51978ca6ee442b08705a89c415ea71e5bf00b0963e923465b4bc2062f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4e4c71d51978ca6ee442b08705a89c415ea71e5bf00b0963e923465b4bc2062f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1ef50261df0bf5ee5a0d9abc28d8695bbd0bb6bb5ff4b1775419942a2cb5dd38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1ef50261df0bf5ee5a0d9abc28d8695bbd0bb6bb5ff4b1775419942a2cb5dd38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4e4c71d51978ca6ee442b08705a89c415ea71e5bf00b0963e923465b4bc2062f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6020600060006000600060046101f4f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (CALLCODE 500 4 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_1_nonzeroValue.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_1_nonzeroValue.json index 829c13d12..30fac5e77 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_1_nonzeroValue.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_1_nonzeroValue.json @@ -2,81 +2,49 @@ "CALLCODEIdentity_1_nonzeroValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEIdentity_1_nonzeroValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0a425ed069c15a06c4c043803e98ed613c7fda0c01c911816f581ad75695712b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0a425ed069c15a06c4c043803e98ed613c7fda0c01c911816f581ad75695712b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x52afe51d1eee169b025f53bcba971e6ebd51c0b60a8b201caa6c4a2f3e1d29bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x52afe51d1eee169b025f53bcba971e6ebd51c0b60a8b201caa6c4a2f3e1d29bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0a425ed069c15a06c4c043803e98ed613c7fda0c01c911816f581ad75695712b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0bebc200", - "code" : "0x60206000600060006013600462030d40f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "200000000", + "code" : "{ [[ 2 ]] (CALLCODE 200000 4 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_2.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_2.json index c5656d81c..19403ea45 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_2.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_2.json @@ -2,81 +2,49 @@ "CALLCODEIdentity_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEIdentity_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x339317f131bd9e9ae6d70e13aa53267646fe98231c7694a8666041110eb17eed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x000000000000000000000000000000000000000000000000000000f34578907f", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x339317f131bd9e9ae6d70e13aa53267646fe98231c7694a8666041110eb17eed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe6918c4262f559d6a44c6c555da8635ff01f9fbf2f4ce808c310d37052a8705d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe6918c4262f559d6a44c6c555da8635ff01f9fbf2f4ce808c310d37052a8705d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x339317f131bd9e9ae6d70e13aa53267646fe98231c7694a8666041110eb17eed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f6000526020600060256000600060046101f4f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALLCODE 500 4 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_3.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_3.json index 6414fe01f..7f0a02245 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_3.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_3.json @@ -2,81 +2,49 @@ "CALLCODEIdentity_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEIdentity_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x339317f131bd9e9ae6d70e13aa53267646fe98231c7694a8666041110eb17eed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x000000000000000000000000000000000000000000000000000000f34578907f", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x339317f131bd9e9ae6d70e13aa53267646fe98231c7694a8666041110eb17eed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe6918c4262f559d6a44c6c555da8635ff01f9fbf2f4ce808c310d37052a8705d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe6918c4262f559d6a44c6c555da8635ff01f9fbf2f4ce808c310d37052a8705d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x339317f131bd9e9ae6d70e13aa53267646fe98231c7694a8666041110eb17eed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f6000526020600060256000600060046101f4f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALLCODE 500 4 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_4.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_4.json index c58da1000..196bed844 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_4.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_4.json @@ -2,81 +2,49 @@ "CALLCODEIdentity_4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEIdentity_4Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4640953e96ae83c81900b74f3f2f666b24ecded241aa3c6e17c1925a78646229", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4640953e96ae83c81900b74f3f2f666b24ecded241aa3c6e17c1925a78646229", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf7f1cfffee70125d101b1097c15f86ddbd67f9efc1a790f7f5a7c081cc82475f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf7f1cfffee70125d101b1097c15f86ddbd67f9efc1a790f7f5a7c081cc82475f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4640953e96ae83c81900b74f3f2f666b24ecded241aa3c6e17c1925a78646229", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060046064f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 100 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_4_gas17.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_4_gas17.json index 6618d546f..976eef929 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_4_gas17.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_4_gas17.json @@ -2,81 +2,49 @@ "CALLCODEIdentity_4_gas17" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEIdentity_4_gas17Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6b6d3209c5ee4053386231d2c7fd643ceaddeea8648258673607e13ef4f337c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6b6d3209c5ee4053386231d2c7fd643ceaddeea8648258673607e13ef4f337c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x75b157a2a3ed65dc4b929e3bae97d19a3d5698f2d343e9627f3e3fc99d5fa312", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x75b157a2a3ed65dc4b929e3bae97d19a3d5698f2d343e9627f3e3fc99d5fa312", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6b6d3209c5ee4053386231d2c7fd643ceaddeea8648258673607e13ef4f337c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060046011f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 17 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_4_gas18.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_4_gas18.json index 68692e672..c90ad30d9 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_4_gas18.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_4_gas18.json @@ -2,81 +2,49 @@ "CALLCODEIdentity_4_gas18" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEIdentity_4_gas18Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe998a0359b9b6ee50bcd2e8cddca4c429768b9f7fff2531a761cfc7999a77cc9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe998a0359b9b6ee50bcd2e8cddca4c429768b9f7fff2531a761cfc7999a77cc9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8affab955d17a66d86c006b3eec16173434624792581690f5e86ca070dc63eec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8affab955d17a66d86c006b3eec16173434624792581690f5e86ca070dc63eec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe998a0359b9b6ee50bcd2e8cddca4c429768b9f7fff2531a761cfc7999a77cc9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060046012f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 18 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_5.json b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_5.json index 93bd75533..fd9f84ddf 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_5.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODEIdentity_5.json @@ -2,81 +2,48 @@ "CALLCODEIdentity_5" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODEIdentity_5Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe1b1bf135aa55e24a591e8f8a3e092e2263868c6bbc6ef8a01e5ecab5a5d894a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe1b1bf135aa55e24a591e8f8a3e092e2263868c6bbc6ef8a01e5ecab5a5d894a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9b33939f10d802dd786623ed008ff320701d5dbef5001560d376ef88164cfbec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9b33939f10d802dd786623ed008ff320701d5dbef5001560d376ef88164cfbec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe1b1bf135aa55e24a591e8f8a3e092e2263868c6bbc6ef8a01e5ecab5a5d894a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000620f4240600060006004610258f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 600 4 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_0.json index 86383ad09..44a5d57ba 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_0.json @@ -2,81 +2,48 @@ "CALLCODERipemd160_0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODERipemd160_0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc26e661d6843db12e0d0d896e1838ecd63b9a347756da99a0f19b3f62d54e24b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc26e661d6843db12e0d0d896e1838ecd63b9a347756da99a0f19b3f62d54e24b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x30b40f8fc4c5d4e9fb62f24ab4d2f158c406fb8a5e9f6443bbc30ad5a07bb651", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x30b40f8fc4c5d4e9fb62f24ab4d2f158c406fb8a5e9f6443bbc30ad5a07bb651", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc26e661d6843db12e0d0d896e1838ecd63b9a347756da99a0f19b3f62d54e24b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", "code" : "0x600160005260206000602060006000600360fff2600051600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_1.json b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_1.json index c3c9e8900..ccb3d9a67 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_1.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_1.json @@ -2,81 +2,49 @@ "CALLCODERipemd160_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODERipemd160_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfa285a579fce99e3bf712a8538dc24ad17d9dedebc78623af4050a7cd31e5347", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x9c1185a5c5e9fc54612808977ee8f548b2258d31", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfa285a579fce99e3bf712a8538dc24ad17d9dedebc78623af4050a7cd31e5347", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x132251be75567abbc7ef39c5832f8ace12d118ecaa1c8db9e1c8a75a3d166cbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x132251be75567abbc7ef39c5832f8ace12d118ecaa1c8db9e1c8a75a3d166cbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfa285a579fce99e3bf712a8538dc24ad17d9dedebc78623af4050a7cd31e5347", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x602060006000600060006003610258f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (CALLCODE 600 3 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_2.json b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_2.json index c045cf23c..d4a96812f 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_2.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_2.json @@ -2,81 +2,49 @@ "CALLCODERipemd160_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODERipemd160_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x536140a0df4cf715599a2b8a377e48323cad0e3d3f5eb1e61893f5111a8c94b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0xdbc100f916bfbc53535573d98cf0cbb3a5b36124", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x536140a0df4cf715599a2b8a377e48323cad0e3d3f5eb1e61893f5111a8c94b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8fadc16e1e04e9d81960894ff8851904cf517e9bbe9c5689688b18a34d03478d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8fadc16e1e04e9d81960894ff8851904cf517e9bbe9c5689688b18a34d03478d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x536140a0df4cf715599a2b8a377e48323cad0e3d3f5eb1e61893f5111a8c94b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f600552602060006025600060006003611770f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (CALLCODE 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_3.json b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_3.json index e62f8b7a4..b2d9ed868 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_3.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_3.json @@ -2,81 +2,49 @@ "CALLCODERipemd160_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODERipemd160_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x78faadcd29814e3d689e510cd49c457985be48aa12500d08281b894275ff38c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x316750573f9be26bc17727b47cacedbd0ab3e6ca", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x78faadcd29814e3d689e510cd49c457985be48aa12500d08281b894275ff38c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8b6c209afa88718c1e50103fa97c18ef27c5279e113257df57eea141b8a83f24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8b6c209afa88718c1e50103fa97c18ef27c5279e113257df57eea141b8a83f24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x78faadcd29814e3d689e510cd49c457985be48aa12500d08281b894275ff38c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f600052602060006025600060006003611770f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALLCODE 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_3_postfixed0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_3_postfixed0.json index ee1bf6bc2..ece983c2d 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_3_postfixed0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_3_postfixed0.json @@ -2,81 +2,49 @@ "CALLCODERipemd160_3_postfixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODERipemd160_3_postfixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x72a652921c45cdc85a3d0172a4643ebc320b8ba58745ac667ccbddfb432b4e77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x7730b4642169b0f16752696da8da830a4b429c9d", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x72a652921c45cdc85a3d0172a4643ebc320b8ba58745ac667ccbddfb432b4e77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x58130be64bb95d387e167974a2c2831a1c51c6013e7450f522d9167f9057446e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x58130be64bb95d387e167974a2c2831a1c51c6013e7450f522d9167f9057446e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x72a652921c45cdc85a3d0172a4643ebc320b8ba58745ac667ccbddfb432b4e77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x65f34578907f00600052602060006025600060006003611770f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (CALLCODE 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_3_prefixed0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_3_prefixed0.json index f4e1f72ed..73653dd44 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_3_prefixed0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_3_prefixed0.json @@ -2,81 +2,49 @@ "CALLCODERipemd160_3_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODERipemd160_3_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x78faadcd29814e3d689e510cd49c457985be48aa12500d08281b894275ff38c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x316750573f9be26bc17727b47cacedbd0ab3e6ca", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x78faadcd29814e3d689e510cd49c457985be48aa12500d08281b894275ff38c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8b6c209afa88718c1e50103fa97c18ef27c5279e113257df57eea141b8a83f24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8b6c209afa88718c1e50103fa97c18ef27c5279e113257df57eea141b8a83f24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x78faadcd29814e3d689e510cd49c457985be48aa12500d08281b894275ff38c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f600052602060006025600060006003611770f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (CALLCODE 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_4.json b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_4.json index 232a7ad07..16a3c2336 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_4.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_4.json @@ -2,81 +2,49 @@ "CALLCODERipemd160_4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODERipemd160_4Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd7a415ec40003a2e8e485cedc1929fd9f9d5c4f7eb050a5038d4ffeca96d5a5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x1cf4e77f5966e13e109703cd8a0df7ceda7f3dc3", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd7a415ec40003a2e8e485cedc1929fd9f9d5c4f7eb050a5038d4ffeca96d5a5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x90161da4f4947bbe433f2ad3954b8a205f58c3800c2fe87ef4f7ee20f45cd5be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x90161da4f4947bbe433f2ad3954b8a205f58c3800c2fe87ef4f7ee20f45cd5be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd7a415ec40003a2e8e485cedc1929fd9f9d5c4f7eb050a5038d4ffeca96d5a5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060036102d0f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 720 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_4_gas719.json b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_4_gas719.json index 793b64f12..5ee3ad25b 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_4_gas719.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_4_gas719.json @@ -2,81 +2,48 @@ "CALLCODERipemd160_4_gas719" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODERipemd160_4_gas719Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3858948e61be1d2756e10a9ab2b447a4c7581608ad4b00a35da8bd19fd130cf0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0x3858948e61be1d2756e10a9ab2b447a4c7581608ad4b00a35da8bd19fd130cf0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe47a0f907843569aa87c33888216418a431f0f32dd72fd58685263a387819d68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe47a0f907843569aa87c33888216418a431f0f32dd72fd58685263a387819d68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3858948e61be1d2756e10a9ab2b447a4c7581608ad4b00a35da8bd19fd130cf0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060036102cff2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 719 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_5.json b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_5.json index 0356d5865..7ba54982b 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_5.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODERipemd160_5.json @@ -2,81 +2,48 @@ "CALLCODERipemd160_5" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODERipemd160_5Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x92f03b4d3e050ab726a2791fe0a178e79664d1bed0b08675cc728fc16554595c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0x92f03b4d3e050ab726a2791fe0a178e79664d1bed0b08675cc728fc16554595c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbc4678907c6b5edf23b8168d033e41eff624ca154c9bba9d50a40d7501f4b7ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbc4678907c6b5edf23b8168d033e41eff624ca154c9bba9d50a40d7501f4b7ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x92f03b4d3e050ab726a2791fe0a178e79664d1bed0b08675cc728fc16554595c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000620f4240600060006003611770f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 6000 3 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_0.json index 083655f91..049aecb03 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_0.json @@ -2,81 +2,48 @@ "CALLCODESha256_0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODESha256_0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x670a98631f06ae54db67f0cd501879d06ed88c14f5452a8ea1f9134c899c80d3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xec4916dd28fc4c10d78e287ca5d9cc51ee1ae73cbfde08c6b37324cbfaac8bc5" + } } } - ], - "EIP158" : [ - { - "hash" : "0x670a98631f06ae54db67f0cd501879d06ed88c14f5452a8ea1f9134c899c80d3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1529c257c369c7802b4a9814d6fa4006f0be11238fe35cd9c8d8c1b8391c12be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1529c257c369c7802b4a9814d6fa4006f0be11238fe35cd9c8d8c1b8391c12be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x670a98631f06ae54db67f0cd501879d06ed88c14f5452a8ea1f9134c899c80d3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", "code" : "0x600160005260206000602060006000600260fff2600051600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_1.json b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_1.json index 2344d7687..caa3bdaa3 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_1.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_1.json @@ -2,81 +2,49 @@ "CALLCODESha256_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODESha256_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7d542c7d4109350d7cd0d349c12ce05e8681403b1bd186b56cdeb09e729bb19c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7d542c7d4109350d7cd0d349c12ce05e8681403b1bd186b56cdeb09e729bb19c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4833302bd51ace328a4e36d14916842f10f430b1e7a4a91ae17ade32eac8909c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4833302bd51ace328a4e36d14916842f10f430b1e7a4a91ae17ade32eac8909c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7d542c7d4109350d7cd0d349c12ce05e8681403b1bd186b56cdeb09e729bb19c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6020600060006000600060026101f4f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (CALLCODE 500 2 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_1_nonzeroValue.json b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_1_nonzeroValue.json index 2c3092afc..4325e11e6 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_1_nonzeroValue.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_1_nonzeroValue.json @@ -2,81 +2,49 @@ "CALLCODESha256_1_nonzeroValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODESha256_1_nonzeroValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x48798a6d4c74a787608c14bf589ac6306ef5af3d4cb793a68e36c9880c209b15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x48798a6d4c74a787608c14bf589ac6306ef5af3d4cb793a68e36c9880c209b15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb4ca0a701ef2f893c70b499b66afc2e02e2f1224d2237ff908a4ce1c90133408", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb4ca0a701ef2f893c70b499b66afc2e02e2f1224d2237ff908a4ce1c90133408", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x48798a6d4c74a787608c14bf589ac6306ef5af3d4cb793a68e36c9880c209b15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0bebc200", - "code" : "0x60206000600060006013600262030d40f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "200000000", + "code" : "{ [[ 2 ]] (CALLCODE 200000 2 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_2.json b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_2.json index 359b0cab2..f1eeaeb6a 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_2.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_2.json @@ -2,81 +2,49 @@ "CALLCODESha256_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODESha256_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xaf396401acd11bb73faec4d3c830639b29026198dc0ca537eb200e65b0143dbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xcb39b3bde22925b2f931111130c774761d8895e0e08437c9b396c1e97d10f34d", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xaf396401acd11bb73faec4d3c830639b29026198dc0ca537eb200e65b0143dbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x96abcf46fdb7e2d89de59fa41cffb7cb7e99234232b67fa672a87065fb1ce4b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x96abcf46fdb7e2d89de59fa41cffb7cb7e99234232b67fa672a87065fb1ce4b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaf396401acd11bb73faec4d3c830639b29026198dc0ca537eb200e65b0143dbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f6005526020600060256000600060026101f4f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (CALLCODE 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_3.json b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_3.json index aedeb73cc..b803ecaef 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_3.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_3.json @@ -2,81 +2,49 @@ "CALLCODESha256_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODESha256_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa79606bbb30cf8de0ab7b06067977d7bbad98b7c548553d218900cac28848e0b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa79606bbb30cf8de0ab7b06067977d7bbad98b7c548553d218900cac28848e0b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4b62d72a804ebb03621302972172df1f34ac8224be07cf3168484eab1ceb46f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4b62d72a804ebb03621302972172df1f34ac8224be07cf3168484eab1ceb46f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa79606bbb30cf8de0ab7b06067977d7bbad98b7c548553d218900cac28848e0b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f6000526020600060256000600060026101f4f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALLCODE 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_3_postfix0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_3_postfix0.json index 243cedf96..81fffaae5 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_3_postfix0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_3_postfix0.json @@ -2,81 +2,49 @@ "CALLCODESha256_3_postfix0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODESha256_3_postfix0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3fa7da42d456cdfe4dbd5fd254c7135cec918e0737d540fc8561454d16f9ebb8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x3b745a1c00d035c334f358d007a430e4cf0ae63aa0556fb05529706de546464d", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x3fa7da42d456cdfe4dbd5fd254c7135cec918e0737d540fc8561454d16f9ebb8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfbe78e64e11b2f5801bfc346bdc25aaf600a8cceeb1ee62e9512e9768eb0e610", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfbe78e64e11b2f5801bfc346bdc25aaf600a8cceeb1ee62e9512e9768eb0e610", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3fa7da42d456cdfe4dbd5fd254c7135cec918e0737d540fc8561454d16f9ebb8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x65f34578907f006000526020600060256000600060026101f4f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (CALLCODE 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_3_prefix0.json b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_3_prefix0.json index ef2c6afaa..b3e08dcdd 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_3_prefix0.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_3_prefix0.json @@ -2,81 +2,49 @@ "CALLCODESha256_3_prefix0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODESha256_3_prefix0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa79606bbb30cf8de0ab7b06067977d7bbad98b7c548553d218900cac28848e0b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa79606bbb30cf8de0ab7b06067977d7bbad98b7c548553d218900cac28848e0b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4b62d72a804ebb03621302972172df1f34ac8224be07cf3168484eab1ceb46f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4b62d72a804ebb03621302972172df1f34ac8224be07cf3168484eab1ceb46f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa79606bbb30cf8de0ab7b06067977d7bbad98b7c548553d218900cac28848e0b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f6000526020600060256000600060026101f4f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (CALLCODE 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_4.json b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_4.json index f08f5db76..6e92e82b0 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_4.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_4.json @@ -2,81 +2,49 @@ "CALLCODESha256_4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODESha256_4Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x843bc24a3eda2be4ed12e2e67c84e40dc21e2eb00a3fb5b9ff1fa06342f8ffb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x843bc24a3eda2be4ed12e2e67c84e40dc21e2eb00a3fb5b9ff1fa06342f8ffb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x812fe546750edec69755b9f7b672bed74dd7d641953da0660e0e877a372ff523", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x812fe546750edec69755b9f7b672bed74dd7d641953da0660e0e877a372ff523", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x843bc24a3eda2be4ed12e2e67c84e40dc21e2eb00a3fb5b9ff1fa06342f8ffb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060026064f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 100 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_4_gas99.json b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_4_gas99.json index 4f6663797..966c33151 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_4_gas99.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_4_gas99.json @@ -2,81 +2,49 @@ "CALLCODESha256_4_gas99" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODESha256_4_gas99Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x419cd054c0d12261f5bdf4ca1ae5bb0254e9d15ea57b39d7bdc91ccab11588c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x419cd054c0d12261f5bdf4ca1ae5bb0254e9d15ea57b39d7bdc91ccab11588c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf74c8ae615146b95b9889857962c998575a3985ff7ce541f3c952e6233cfdde5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf74c8ae615146b95b9889857962c998575a3985ff7ce541f3c952e6233cfdde5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x419cd054c0d12261f5bdf4ca1ae5bb0254e9d15ea57b39d7bdc91ccab11588c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060026063f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 99 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_5.json b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_5.json index 425255475..bc2694731 100644 --- a/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_5.json +++ b/GeneralStateTests/stPreCompiledContracts/CALLCODESha256_5.json @@ -2,81 +2,48 @@ "CALLCODESha256_5" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CALLCODESha256_5Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x80e50e6029b1eedab60c117faca3a26bd41006eaedf35ec7542b4a4f8430c143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0x80e50e6029b1eedab60c117faca3a26bd41006eaedf35ec7542b4a4f8430c143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x18774dbef5f50715a33f58ee46efc8067ee81c7ab9511246c8e8a709cdd9596a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x18774dbef5f50715a33f58ee46efc8067ee81c7ab9511246c8e8a709cdd9596a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x80e50e6029b1eedab60c117faca3a26bd41006eaedf35ec7542b4a4f8430c143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000620f4240600060006002610258f2600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALLCODE 600 2 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0.json index 162b47fed..e00b397d5 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0.json @@ -2,81 +2,50 @@ "CallEcrecover0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecover0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8505dbcf94b936e26c353b02f74fb7a63c8944a99e3ecb290d57e4eff2fabdab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x370f1d0efbf7a605382c003a69c11ff6594f71c08e5d2786a261935c2d226813", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe59ad00cf0b8f137057e235e8923da16bece8e3813402cabebbcecd21b2989f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe59ad00cf0b8f137057e235e8923da16bece8e3813402cabebbcecd21b2989f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x370f1d0efbf7a605382c003a69c11ff6594f71c08e5d2786a261935c2d226813", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f160025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_0input.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_0input.json index e3d5b009d..7d4d631dc 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_0input.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_0input.json @@ -2,81 +2,48 @@ "CallEcrecover0_0input" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecover0_0inputFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x58840eda5f0456e479cbc88fb36a3d726aa00cc749f7f9d6781b3040fbfde0e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xceda0216a6e3075a9d97660ac8cd73ebe8a404de2e4c598fa1e7bbe4a3ac39a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x90dbbb8ef30716e81ed29f7dd1134fc8c2cc63030859dada095bd6e6d5fab570", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x90dbbb8ef30716e81ed29f7dd1134fc8c2cc63030859dada095bd6e6d5fab570", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xceda0216a6e3075a9d97660ac8cd73ebe8a404de2e4c598fa1e7bbe4a3ac39a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x602060806080600060006001620493e0f160025560a060020a60805106600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_Gas2999.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_Gas2999.json index dacdf0edc..44711ac46 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_Gas2999.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_Gas2999.json @@ -2,81 +2,48 @@ "CallEcrecover0_Gas2999" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecover0_Gas2999Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x866186ae9d33b5b2a581f5df2565e64e8c61c662c4005766735edb716201da8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x911822f4a79d685d5f3a342b18c8236d9bd5dcc1c95df59097976be55c8425b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x93529a5670f3deec10566bdd9b9d0c64d507104276cb45bb89ff9e58a2fb8bdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x93529a5670f3deec10566bdd9b9d0c64d507104276cb45bb89ff9e58a2fb8bdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x911822f4a79d685d5f3a342b18c8236d9bd5dcc1c95df59097976be55c8425b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001610bb7f160025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 2999 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_NoGas.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_NoGas.json index 81efa96cf..1e466f892 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_NoGas.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_NoGas.json @@ -2,81 +2,77 @@ "CallEcrecover0_NoGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecover0_NoGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x588ae61bf355d95355831237f9c194249fea4ee07ba336e50df603abfd97d88a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "70216" } } - ], - "EIP158" : [ - { - "hash" : "0xb6bf32d8dd390c9d512edd4cc09e4ecfafecec80a1268865255a18b20c6ecf27", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x032a12ab38d985948b46af030fb1bf3f91639309061fc5c5f987ae7514c8f210", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x032a12ab38d985948b46af030fb1bf3f91639309061fc5c5f987ae7514c8f210", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "71026" } } - ], - "Metropolis" : [ - { - "hash" : "0xb6bf32d8dd390c9d512edd4cc09e4ecfafecec80a1268865255a18b20c6ecf27", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "71066" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c45496060526020608060806000600160016000f160025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 0 1 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +82,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_completeReturnValue.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_completeReturnValue.json index f25acf04e..7155ae361 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_completeReturnValue.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_completeReturnValue.json @@ -2,81 +2,49 @@ "CallEcrecover0_completeReturnValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecover0_completeReturnValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x13906f096f838797d95679a558b847bf344c320d1f8317cfdafd620a73c4c66b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x10f2c5ac2871f3e34193847a66433d23c7d4e64b359f8a006cf25b51f5f9e7ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcf3a03c8130bc0c6e37631c6dcc902da0b3dbfd543daa109c643629699aaf3e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcf3a03c8130bc0c6e37631c6dcc902da0b3dbfd543daa109c643629699aaf3e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x10f2c5ac2871f3e34193847a66433d23c7d4e64b359f8a006cf25b51f5f9e7ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001610bb8f1600255608051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 3000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_gas3000.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_gas3000.json index 39f902be3..61246e22f 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_gas3000.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_gas3000.json @@ -2,81 +2,50 @@ "CallEcrecover0_gas3000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecover0_gas3000Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3d5b0141e864305619c2ab5a2e0d234aed6500593e67d4670d9274d37125b046", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb190f9b2ca19fc3608cdc6a8996f7922f43802a11d2c9ef4f8096bea4bd87283", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf88554801a796b492c18990052e6c5c2d59f2d64d451cbb679e23f6d5f0ca116", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf88554801a796b492c18990052e6c5c2d59f2d64d451cbb679e23f6d5f0ca116", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb190f9b2ca19fc3608cdc6a8996f7922f43802a11d2c9ef4f8096bea4bd87283", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001610bb8f160025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 3000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_overlappingInputOutput.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_overlappingInputOutput.json index d0c4d4cf2..bea89cb7a 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_overlappingInputOutput.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecover0_overlappingInputOutput.json @@ -2,81 +2,50 @@ "CallEcrecover0_overlappingInputOutput" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecover0_overlappingInputOutputFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x124609657b6e6c9d599efde65a05ab2c46a92e775fbe862f7e7a28754531d87d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd7836cf325c2b6d378a0b2494d37ab333137634eb8dd98cddf6f99bc61ed1040", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc2e15ae32e22ada58a279d127eb0f3f09436b81b258599e54e087de4427a7b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc2e15ae32e22ada58a279d127eb0f3f09436b81b258599e54e087de4427a7b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd7836cf325c2b6d378a0b2494d37ab333137634eb8dd98cddf6f99bc61ed1040", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060406080600060006001620493e0f160025560a060020a604051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 64 32) [[ 0 ]] (MOD (MLOAD 64) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecover1.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecover1.json index ff1238802..cfa43f09a 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecover1.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecover1.json @@ -2,81 +2,48 @@ "CallEcrecover1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecover1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x598525c77ae0e6c1f9521c791a79dd72adb2028c78be1e6851b6b445106e7e90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x49b38376404c99af28367fbeb75af86fa492b58060f85f38104e04fa709444e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x76ff072677ae740627ca68045f5a48976592e806ca44291895c83e3d7baa7f77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x76ff072677ae740627ca68045f5a48976592e806ca44291895c83e3d7baa7f77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x49b38376404c99af28367fbeb75af86fa492b58060f85f38104e04fa709444e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c60005260016020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620186a0f160025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 1) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecover2.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecover2.json index 0378e82f0..3744f9dcb 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecover2.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecover2.json @@ -2,81 +2,48 @@ "CallEcrecover2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecover2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x14a386a5c799c6bf2171ead5376c4d167810e8faf64085d8f1d683bcc880c5df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2d79c0271766fdbd306ec02697e7f12efab038a4e1423b128a8c0977df1670e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa2c6e104fd37a7a1fbd6244d98a9019669f65509f1e1775a00b3982d7ae9bf95", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa2c6e104fd37a7a1fbd6244d98a9019669f65509f1e1775a00b3982d7ae9bf95", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2d79c0271766fdbd306ec02697e7f12efab038a4e1423b128a8c0977df1670e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6021527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549604152602060616061600060006001620186a0f160025560a060020a606151066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 33 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 65 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 100000 1 0 0 97 97 32) [[ 0 ]] (MOD (MLOAD 97) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecover3.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecover3.json index d93a18fa7..a9c878d57 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecover3.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecover3.json @@ -2,81 +2,49 @@ "CallEcrecover3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecover3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4b068eda7ef6d2485f037a5da86d987352aedf658e043556fab5eb53ff12d32b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe4319f4b631c6d0fcfc84045dbcb676865fe5e13", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x251bb0ce027876b20cde52e1df43ee1c89b359ea531fd61ec13a6e255a924a8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x98a5fc6cc3755b02eb073d723f0248f2ed541b216c718ffdb7ce45fe4d279afe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x98a5fc6cc3755b02eb073d723f0248f2ed541b216c718ffdb7ce45fe4d279afe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x251bb0ce027876b20cde52e1df43ee1c89b359ea531fd61ec13a6e255a924a8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9600052601b6020527f6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a6040527f37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4606052602060806080600060006001620186a0f160025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9) (MSTORE 32 27) (MSTORE 64 0x6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a) (MSTORE 96 0x37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4) [[ 2 ]] (CALL 100000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecover80.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecover80.json index 1a4a89280..125783399 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecover80.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecover80.json @@ -2,81 +2,50 @@ "CallEcrecover80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecover80Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8294f78f70d24b3c5229b7f74a48164b06c2017cf8d6d5d0e6b80d4c11622e45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa03c4faaf1c664028b3fb54c9438eb4b087af266d9e096ca21262085ae26a61b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xffb96a92a31182d6315ce1be5e6ecf0edb08439beeee76f00754ebef78184de2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xffb96a92a31182d6315ce1be5e6ecf0edb08439beeee76f00754ebef78184de2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa03c4faaf1c664028b3fb54c9438eb4b087af266d9e096ca21262085ae26a61b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7ec547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527eb1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527eb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f160025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecoverCheckLength.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecoverCheckLength.json index 4fd8679b8..760d6ca03 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecoverCheckLength.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecoverCheckLength.json @@ -2,81 +2,50 @@ "CallEcrecoverCheckLength" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecoverCheckLengthFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x638e4110cba967f52d8f95485362b38bb194d4391e05d0aef00e5dfd6a5a82a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0xa0", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x64c2d838b0cacb5932e2f2a7f7b5d08db2ef73491dbbc607dcbaef412d057da5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x39a3e642f9dae481af1cf868fdf45c9e7a969198ce5e28992ba13f2245414753", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x39a3e642f9dae481af1cf868fdf45c9e7a969198ce5e28992ba13f2245414753", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x64c2d838b0cacb5932e2f2a7f7b5d08db2ef73491dbbc607dcbaef412d057da5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f11223344556677889900112233445566778899001122334455667788990011226080527f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f160025560805160005559600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecoverCheckLengthWrongV.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecoverCheckLengthWrongV.json index 06f14684e..819393e8d 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecoverCheckLengthWrongV.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecoverCheckLengthWrongV.json @@ -2,81 +2,50 @@ "CallEcrecoverCheckLengthWrongV" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecoverCheckLengthWrongVFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x04d25dda2e050f8dd39e03aab9e6b2d2ce018d5e1df87f6b2f19ed982baace27", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x1122334455667788990011223344556677889900112233445566778899001122", + "0x01" : "0xa0", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8f8558ab35c3f053d7e065850a39becadadd83f84b4a9286e2026e5fc6a8f51c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x65a33fe0392e3358f07118cbeb290cc4ff26b0b8521a16279fdbd01172fe532c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x65a33fe0392e3358f07118cbeb290cc4ff26b0b8521a16279fdbd01172fe532c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8f8558ab35c3f053d7e065850a39becadadd83f84b4a9286e2026e5fc6a8f51c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f11223344556677889900112233445566778899001122334455667788990011226080527f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601d6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f160025560805160005559600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 29) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecoverH_prefixed0.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecoverH_prefixed0.json index 916314e87..fb77d7eb9 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecoverH_prefixed0.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecoverH_prefixed0.json @@ -2,81 +2,50 @@ "CallEcrecoverH_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecoverH_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa6c5db01005f66672af63de8f23bb41c1d94adee8d6808698eba96989d762a80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa0b29af6a56d6cfef6415cb195ccbe540e006d0a", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xde3ccf17a0d898e0f32dbeb683d931a001ed51095fddbf6718a3189811519199", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdf4759b5abd497561010bbb5e32ce3a05ae566914b439aafe1974d34c79505dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdf4759b5abd497561010bbb5e32ce3a05ae566914b439aafe1974d34c79505dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xde3ccf17a0d898e0f32dbeb683d931a001ed51095fddbf6718a3189811519199", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7ec547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f160025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecoverR_prefixed0.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecoverR_prefixed0.json index b8689428c..2dcc4392c 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecoverR_prefixed0.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecoverR_prefixed0.json @@ -2,81 +2,50 @@ "CallEcrecoverR_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecoverR_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6b66f574dedab09f4ec85ad6f09a73784b475eb2b5c1c19497d8c4de66b4f6a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6442eb30120caf880ddf9d8e449b3b94043a1b1cd518df156504d7f700b86dc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe1849dd8b142d9789bbb0ae5cfeb43bae4e89a356ef4067593aeee62e5a7512a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe1849dd8b142d9789bbb0ae5cfeb43bae4e89a356ef4067593aeee62e5a7512a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6442eb30120caf880ddf9d8e449b3b94043a1b1cd518df156504d7f700b86dc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527eb1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f160025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecoverS_prefixed0.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecoverS_prefixed0.json index c9cee0000..c3a6e80b3 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecoverS_prefixed0.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecoverS_prefixed0.json @@ -2,81 +2,50 @@ "CallEcrecoverS_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecoverS_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfb856755b7081da6b2524530d15a140672838a64b1502a12664dd31f6feb2450", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xb4950a7fad428434b11c357fa6d4b4bcd3096a5d", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9ec7d7d82d95eb381826e68acded80fc3e53465e8b8b355f0157659771168df5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x173de6b545ca3ba8844c40322b8820013df8e35de86aeeb7f41c7cfb3b718c7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x173de6b545ca3ba8844c40322b8820013df8e35de86aeeb7f41c7cfb3b718c7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9ec7d7d82d95eb381826e68acded80fc3e53465e8b8b355f0157659771168df5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527eb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f160025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallEcrecoverV_prefixed0.json b/GeneralStateTests/stPreCompiledContracts/CallEcrecoverV_prefixed0.json index 3033d56ff..afd548b53 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallEcrecoverV_prefixed0.json +++ b/GeneralStateTests/stPreCompiledContracts/CallEcrecoverV_prefixed0.json @@ -2,81 +2,50 @@ "CallEcrecoverV_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallEcrecoverV_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8505dbcf94b936e26c353b02f74fb7a63c8944a99e3ecb290d57e4eff2fabdab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x370f1d0efbf7a605382c003a69c11ff6594f71c08e5d2786a261935c2d226813", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe59ad00cf0b8f137057e235e8923da16bece8e3813402cabebbcecd21b2989f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe59ad00cf0b8f137057e235e8923da16bece8e3813402cabebbcecd21b2989f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x370f1d0efbf7a605382c003a69c11ff6594f71c08e5d2786a261935c2d226813", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060006001620493e0f160025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 0x001c) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 300000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallIdentitiy_0.json b/GeneralStateTests/stPreCompiledContracts/CallIdentitiy_0.json index 8e1e27498..c44b56901 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallIdentitiy_0.json +++ b/GeneralStateTests/stPreCompiledContracts/CallIdentitiy_0.json @@ -2,81 +2,48 @@ "CallIdentitiy_0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallIdentitiy_0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2a2fe3cbecb8a0a5dcb6b1eec781f2c5bd4afbea81f5b77f97519c7218a7322b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0000000000000000000000000000000000000000000000000000000000000001" + } } } - ], - "EIP158" : [ - { - "hash" : "0x15b122e1f8eff78043fb6fb23c5d011026cea7741586cb2bd0e9a2af074ce180", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc0597a2a5a4719ac83e0ef87fe6ecc2cff6542f240815b94178d66501319befc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc0597a2a5a4719ac83e0ef87fe6ecc2cff6542f240815b94178d66501319befc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x15b122e1f8eff78043fb6fb23c5d011026cea7741586cb2bd0e9a2af074ce180", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", "code" : "0x600160005260206000602060006000600460fff1600051600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallIdentitiy_1.json b/GeneralStateTests/stPreCompiledContracts/CallIdentitiy_1.json index 2cc9dc924..b72ad6df7 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallIdentitiy_1.json +++ b/GeneralStateTests/stPreCompiledContracts/CallIdentitiy_1.json @@ -2,81 +2,49 @@ "CallIdentitiy_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallIdentitiy_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x12941dbdbb5e71f565c3edb1abb5202ee31054a23497085e8331ee9d73df94f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xab6b59df16a6036de5cbe6a121af7c01a6851d91ec2f04ecc227c33218af6171", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc3421551fe70fd96f23787dccbad42678560a10d563eed5798a4a4072ef0a84d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc3421551fe70fd96f23787dccbad42678560a10d563eed5798a4a4072ef0a84d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xab6b59df16a6036de5cbe6a121af7c01a6851d91ec2f04ecc227c33218af6171", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6020600060006000600060046101f4f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (CALL 500 4 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallIdentity_1_nonzeroValue.json b/GeneralStateTests/stPreCompiledContracts/CallIdentity_1_nonzeroValue.json index 53c8fc883..54abe3518 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallIdentity_1_nonzeroValue.json +++ b/GeneralStateTests/stPreCompiledContracts/CallIdentity_1_nonzeroValue.json @@ -2,81 +2,52 @@ "CallIdentity_1_nonzeroValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallIdentity_1_nonzeroValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbaa02d57dbced7b424a3e924caf5b973cc5bc8b8196de9c5d1fd08e1d4f88c84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0000000000000000000000000000000000000004" : { + "balance" : "19" + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbaa02d57dbced7b424a3e924caf5b973cc5bc8b8196de9c5d1fd08e1d4f88c84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa03eaa07a46ad382fe5827f9ea3d97b367e0fc5f05e4bf3101b4749966a506da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa03eaa07a46ad382fe5827f9ea3d97b367e0fc5f05e4bf3101b4749966a506da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbaa02d57dbced7b424a3e924caf5b973cc5bc8b8196de9c5d1fd08e1d4f88c84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0bebc200", - "code" : "0x60206000600060006013600462030d40f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "200000000", + "code" : "{ [[ 2 ]] (CALL 200000 4 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +57,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallIdentity_2.json b/GeneralStateTests/stPreCompiledContracts/CallIdentity_2.json index 6d6dc87a6..f6ca3cb3e 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallIdentity_2.json +++ b/GeneralStateTests/stPreCompiledContracts/CallIdentity_2.json @@ -2,81 +2,49 @@ "CallIdentity_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallIdentity_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x31fcdb740b5116808148c57d8fa50b88e3b74346ec747dd93f32da7f70e5443b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x000000000000000000000000000000000000000000000000000000f34578907f", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa86c7bc16888d22117df157633b66a0661573856c7b8390a148dcbeaededdb08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x38ea48c5d3c1e38baf62235a6052525a4183f6c496af843b82ac99d505b99b54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x38ea48c5d3c1e38baf62235a6052525a4183f6c496af843b82ac99d505b99b54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa86c7bc16888d22117df157633b66a0661573856c7b8390a148dcbeaededdb08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f6000526020600060256000600060046101f4f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALL 500 4 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallIdentity_3.json b/GeneralStateTests/stPreCompiledContracts/CallIdentity_3.json index 107a50861..9139ecac6 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallIdentity_3.json +++ b/GeneralStateTests/stPreCompiledContracts/CallIdentity_3.json @@ -2,81 +2,49 @@ "CallIdentity_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallIdentity_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x31fcdb740b5116808148c57d8fa50b88e3b74346ec747dd93f32da7f70e5443b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x000000000000000000000000000000000000000000000000000000f34578907f", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa86c7bc16888d22117df157633b66a0661573856c7b8390a148dcbeaededdb08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x38ea48c5d3c1e38baf62235a6052525a4183f6c496af843b82ac99d505b99b54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x38ea48c5d3c1e38baf62235a6052525a4183f6c496af843b82ac99d505b99b54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa86c7bc16888d22117df157633b66a0661573856c7b8390a148dcbeaededdb08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f6000526020600060256000600060046101f4f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALL 500 4 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallIdentity_4.json b/GeneralStateTests/stPreCompiledContracts/CallIdentity_4.json index 0efc4d650..d9891087b 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallIdentity_4.json +++ b/GeneralStateTests/stPreCompiledContracts/CallIdentity_4.json @@ -2,81 +2,49 @@ "CallIdentity_4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallIdentity_4Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0291a60c427c75552a5becdc9679e24592d87e319334b629d40f4d48b56da233", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb96c0a52a392b5c70e3f1f5745a652aabae535641283bad2eb7cf56e13023e54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc83ec4cbf38f314848a1eb20262fa8d78fa9708cc99058e1205112a4f7534f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc83ec4cbf38f314848a1eb20262fa8d78fa9708cc99058e1205112a4f7534f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb96c0a52a392b5c70e3f1f5745a652aabae535641283bad2eb7cf56e13023e54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060046064f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 100 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallIdentity_4_gas17.json b/GeneralStateTests/stPreCompiledContracts/CallIdentity_4_gas17.json index 7141cbed9..3d4efc29e 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallIdentity_4_gas17.json +++ b/GeneralStateTests/stPreCompiledContracts/CallIdentity_4_gas17.json @@ -2,81 +2,49 @@ "CallIdentity_4_gas17" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallIdentity_4_gas17Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe2dcb5cc0942d7be3d0ecb21e173c5abd86b755aa3b1cf7bfe6bf7f4296754b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbf192444e0d0b5076efbf4fa8bd7e8141f2749fc273537ccd20c68b5acaf0f76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3492519d71098ebaa3d5838c55708698215b8e711ed71359dc8d62be949b76e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3492519d71098ebaa3d5838c55708698215b8e711ed71359dc8d62be949b76e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbf192444e0d0b5076efbf4fa8bd7e8141f2749fc273537ccd20c68b5acaf0f76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060046011f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 17 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallIdentity_4_gas18.json b/GeneralStateTests/stPreCompiledContracts/CallIdentity_4_gas18.json index 3027274f5..3a883f97b 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallIdentity_4_gas18.json +++ b/GeneralStateTests/stPreCompiledContracts/CallIdentity_4_gas18.json @@ -2,81 +2,49 @@ "CallIdentity_4_gas18" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallIdentity_4_gas18Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd75ad45243788aa28b8d3d7b801d9825414bce24a629d07cd6f966c5f89f243b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9775eb229187458c166832ace1cd972a410d903029be855c6ccf880aee39738f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe96de5a841c51dd3eafc83e2e48b62895f47af3c23ca3d13f954b8ded4d84dab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe96de5a841c51dd3eafc83e2e48b62895f47af3c23ca3d13f954b8ded4d84dab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9775eb229187458c166832ace1cd972a410d903029be855c6ccf880aee39738f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060046012f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 18 4 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallIdentity_5.json b/GeneralStateTests/stPreCompiledContracts/CallIdentity_5.json index 5eb60c10c..f60e60b41 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallIdentity_5.json +++ b/GeneralStateTests/stPreCompiledContracts/CallIdentity_5.json @@ -2,81 +2,48 @@ "CallIdentity_5" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallIdentity_5Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4f0f966de47b3c5f33eed5309cb538d3c9b027fc1deca750d34600854ed258d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1f91d1b116ec8c728da65c0fd5b12d9a081092cdf6f454161fad580f16ef2e89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0edafad0e4913deab8b13bcde66c69f1aed4372f3245c0772eca7452e74791b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0edafad0e4913deab8b13bcde66c69f1aed4372f3245c0772eca7452e74791b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1f91d1b116ec8c728da65c0fd5b12d9a081092cdf6f454161fad580f16ef2e89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000620f4240600060006004610258f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 600 4 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_0.json b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_0.json index 37e7ef35e..2880b87e7 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_0.json +++ b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_0.json @@ -2,81 +2,48 @@ "CallRipemd160_0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallRipemd160_0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x686c6f0235678010e68839c7ba72cd39ed5b7de6475ebf2f1a42ed3056c445d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x435aedb8d3ae05243d181c5eb50880e30ac527b87163a86ee7cfd255ce79b94c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb418cef120df01a9cef80804c2f883527c0b550df6664166857a7c998a869b65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb418cef120df01a9cef80804c2f883527c0b550df6664166857a7c998a869b65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x435aedb8d3ae05243d181c5eb50880e30ac527b87163a86ee7cfd255ce79b94c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", "code" : "0x600160005260206000602060006000600360fff1600051600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_1.json b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_1.json index dc28f3696..206747b1a 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_1.json +++ b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_1.json @@ -2,81 +2,49 @@ "CallRipemd160_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallRipemd160_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x34f4f4a52d69fed606412853b95650be8dc1a3f35ef8da8b3a81a6da1c8b7135", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x9c1185a5c5e9fc54612808977ee8f548b2258d31", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x37bf4936518d1bdbd00c4d6085a1dda0c8c17d80fea19ac7c7a7212e40ca41db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1d22c83f58f74145b7afad4f5a57244540f901969d5d2a7ec4aa519ed0787930", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1d22c83f58f74145b7afad4f5a57244540f901969d5d2a7ec4aa519ed0787930", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x37bf4936518d1bdbd00c4d6085a1dda0c8c17d80fea19ac7c7a7212e40ca41db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x602060006000600060006003610258f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (CALL 600 3 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_2.json b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_2.json index a3f07f043..e8bbf6de8 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_2.json +++ b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_2.json @@ -2,81 +2,49 @@ "CallRipemd160_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallRipemd160_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xefa421c033dd0a7ff037166340c068e5560b9da80cbe4626e5ea3860e7c5f82f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0xdbc100f916bfbc53535573d98cf0cbb3a5b36124", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdb19dd8002a75f71875397e59eee22a2e7a0165cc2a928373d09855dccc6bbd0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbc4584ac2f7c4700e762bfd62eb415fac4f9613a8d8c40b9f9fa69746f3c647c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbc4584ac2f7c4700e762bfd62eb415fac4f9613a8d8c40b9f9fa69746f3c647c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdb19dd8002a75f71875397e59eee22a2e7a0165cc2a928373d09855dccc6bbd0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f600552602060006025600060006003611770f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (CALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_3.json b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_3.json index 7cfc2a620..bf085471f 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_3.json +++ b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_3.json @@ -2,81 +2,49 @@ "CallRipemd160_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallRipemd160_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1c9d805e8510689af75f8235017a930f3128f4ebc7beb07be48c709696efcf26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x316750573f9be26bc17727b47cacedbd0ab3e6ca", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x61d43f9c89fb798e915650738d94660050b92e8f3c5b01047b17d68a04d43a32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4190628cd7645611fdd0bfecc72dbe756897fb08f92ff8a24ece746c656240b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4190628cd7645611fdd0bfecc72dbe756897fb08f92ff8a24ece746c656240b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x61d43f9c89fb798e915650738d94660050b92e8f3c5b01047b17d68a04d43a32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f600052602060006025600060006003611770f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_3_postfixed0.json b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_3_postfixed0.json index 589238d01..a0fdab05c 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_3_postfixed0.json +++ b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_3_postfixed0.json @@ -2,81 +2,49 @@ "CallRipemd160_3_postfixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallRipemd160_3_postfixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe6a95c717a096d670ab2a1ddd4288430982baabaa52e89936c0a8da192219ad4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x7730b4642169b0f16752696da8da830a4b429c9d", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x39a6d621e41ca9d266a684313899a078c43219a657377abebf38b2a988c5b782", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa2af8618f7758923dd3dab7ef54cb26f42ab11c316172aba26f1b84483f7a166", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa2af8618f7758923dd3dab7ef54cb26f42ab11c316172aba26f1b84483f7a166", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x39a6d621e41ca9d266a684313899a078c43219a657377abebf38b2a988c5b782", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x65f34578907f00600052602060006025600060006003611770f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (CALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_3_prefixed0.json b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_3_prefixed0.json index 97c8e798d..9e3993353 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_3_prefixed0.json +++ b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_3_prefixed0.json @@ -2,81 +2,49 @@ "CallRipemd160_3_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallRipemd160_3_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1c9d805e8510689af75f8235017a930f3128f4ebc7beb07be48c709696efcf26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x316750573f9be26bc17727b47cacedbd0ab3e6ca", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x61d43f9c89fb798e915650738d94660050b92e8f3c5b01047b17d68a04d43a32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4190628cd7645611fdd0bfecc72dbe756897fb08f92ff8a24ece746c656240b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4190628cd7645611fdd0bfecc72dbe756897fb08f92ff8a24ece746c656240b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x61d43f9c89fb798e915650738d94660050b92e8f3c5b01047b17d68a04d43a32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f600052602060006025600060006003611770f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (CALL 6000 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_4.json b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_4.json index d122a26f6..c2fec7579 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_4.json +++ b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_4.json @@ -2,81 +2,49 @@ "CallRipemd160_4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallRipemd160_4Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4689dc4aaa314cd049ea40e2b2d064393875e67e8dc0cd9dee8dadad2bd3ce6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x1cf4e77f5966e13e109703cd8a0df7ceda7f3dc3", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xead04023e5b0f010c226767bcc44c1f9140c0b2499dcc93a64d977b578304556", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5f262f6a170033a4882dd89eb94ebfe8a8046a0f6442c62a852ca916ee210d53", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5f262f6a170033a4882dd89eb94ebfe8a8046a0f6442c62a852ca916ee210d53", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xead04023e5b0f010c226767bcc44c1f9140c0b2499dcc93a64d977b578304556", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060036102d0f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 720 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_4_gas719.json b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_4_gas719.json index f17472207..c1d7f6276 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_4_gas719.json +++ b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_4_gas719.json @@ -2,81 +2,48 @@ "CallRipemd160_4_gas719" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallRipemd160_4_gas719Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x231af4ae84d086a74ccea9af42af14de47f48fe18ec565de095f5987b85ce933", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0ce883cdc8e7b4acf14d7d28d7446b4dfe132b5c5239be9c8bf23a2c3a37765a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1e83dde333b6e3f50223781c584bdc334145e3e58b0cea77c76e6247f2b58fa0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1e83dde333b6e3f50223781c584bdc334145e3e58b0cea77c76e6247f2b58fa0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0ce883cdc8e7b4acf14d7d28d7446b4dfe132b5c5239be9c8bf23a2c3a37765a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060036102cff1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 719 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_5.json b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_5.json index 48b7b3f50..855ca85f7 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallRipemd160_5.json +++ b/GeneralStateTests/stPreCompiledContracts/CallRipemd160_5.json @@ -2,81 +2,48 @@ "CallRipemd160_5" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallRipemd160_5Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb9f2484fa66f67ec3abb57c35024cb90c67237c7a800a083d6dedba49d4393aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc004a3a22e5ed22297ab6555c85391446361245e7f4811b7dc91ccc7b8db916e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd2973c4abfcc5775a79c48621f1bcd0ebd72471853ba1d1c5116a423301db265", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd2973c4abfcc5775a79c48621f1bcd0ebd72471853ba1d1c5116a423301db265", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc004a3a22e5ed22297ab6555c85391446361245e7f4811b7dc91ccc7b8db916e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000620f4240600060006003611770f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 6000 3 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallSha256_0.json b/GeneralStateTests/stPreCompiledContracts/CallSha256_0.json index fe522dff9..0758bfffd 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallSha256_0.json +++ b/GeneralStateTests/stPreCompiledContracts/CallSha256_0.json @@ -2,81 +2,48 @@ "CallSha256_0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallSha256_0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe5d6c470d46618ad3d1298c9575d622ff01035ab4e2717df0cb37ebb18b53b86", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xec4916dd28fc4c10d78e287ca5d9cc51ee1ae73cbfde08c6b37324cbfaac8bc5" + } } } - ], - "EIP158" : [ - { - "hash" : "0xaf78af682890ed52f547478bf1a105a5c8e2627f5eff5f951f38140fd8745152", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x86b9a816d69dc08083a5266bcf788491fabc3986bfb4cbcef78bd9e9d5f30e50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x86b9a816d69dc08083a5266bcf788491fabc3986bfb4cbcef78bd9e9d5f30e50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaf78af682890ed52f547478bf1a105a5c8e2627f5eff5f951f38140fd8745152", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", "code" : "0x600160005260206000602060006000600260fff1600051600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallSha256_1.json b/GeneralStateTests/stPreCompiledContracts/CallSha256_1.json index 24f716b01..231c73aed 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallSha256_1.json +++ b/GeneralStateTests/stPreCompiledContracts/CallSha256_1.json @@ -2,81 +2,49 @@ "CallSha256_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallSha256_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6de5c8f3f170953bc212092db9030852c7b36ea9c4a804b9cd5e967b5fdfb484", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1bab374f8e446a5ba07b8e46f51211c46ef9688e93b5970c28eb971511ff5de9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x308d9368ff3343b3dfe257199d9ff3ae8fbec5810c63e74e669a343fa658f4a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x308d9368ff3343b3dfe257199d9ff3ae8fbec5810c63e74e669a343fa658f4a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1bab374f8e446a5ba07b8e46f51211c46ef9688e93b5970c28eb971511ff5de9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6020600060006000600060026101f4f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (CALL 500 2 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallSha256_1_nonzeroValue.json b/GeneralStateTests/stPreCompiledContracts/CallSha256_1_nonzeroValue.json index 5a5fd6b44..362ea491a 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallSha256_1_nonzeroValue.json +++ b/GeneralStateTests/stPreCompiledContracts/CallSha256_1_nonzeroValue.json @@ -2,81 +2,52 @@ "CallSha256_1_nonzeroValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallSha256_1_nonzeroValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa2b35883e68dc45cfb7eaf35c36fdda84a1aea77c416693388725973d44f0a58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0000000000000000000000000000000000000002" : { + "balance" : "19" + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa2b35883e68dc45cfb7eaf35c36fdda84a1aea77c416693388725973d44f0a58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5f16000ab7b60629613874726ca6b564fa81c5242f2e304d41fd08de087085f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5f16000ab7b60629613874726ca6b564fa81c5242f2e304d41fd08de087085f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa2b35883e68dc45cfb7eaf35c36fdda84a1aea77c416693388725973d44f0a58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0bebc200", - "code" : "0x60206000600060006013600262030d40f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "200000000", + "code" : "{ [[ 2 ]] (CALL 200000 2 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +57,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallSha256_2.json b/GeneralStateTests/stPreCompiledContracts/CallSha256_2.json index 5a3c81141..75b716cf9 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallSha256_2.json +++ b/GeneralStateTests/stPreCompiledContracts/CallSha256_2.json @@ -2,81 +2,49 @@ "CallSha256_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallSha256_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5f16214512791aa2ff58ed1dfb91dd03abf992eaa2459bd93eede7475dccfbe0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xcb39b3bde22925b2f931111130c774761d8895e0e08437c9b396c1e97d10f34d", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa8cca12173a969472c8e27402ac36b2089680e8d4926a2f8cce4a4a2769e60b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4486c2ed72e7eb999134286eb0cdd193cd5a25fcf74b2f0ec41743fc2b0a993a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4486c2ed72e7eb999134286eb0cdd193cd5a25fcf74b2f0ec41743fc2b0a993a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa8cca12173a969472c8e27402ac36b2089680e8d4926a2f8cce4a4a2769e60b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f6005526020600060256000600060026101f4f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallSha256_3.json b/GeneralStateTests/stPreCompiledContracts/CallSha256_3.json index b28dae0c6..3c20fc8c4 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallSha256_3.json +++ b/GeneralStateTests/stPreCompiledContracts/CallSha256_3.json @@ -2,81 +2,49 @@ "CallSha256_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallSha256_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x629bd433840e4cf0ff15d9f156c89b64b7db3d834ea2583694195997978fbe41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x52e69963b10d07e1181b4666ee8eb8c8a674b04a2d181ef63980711afe2fb451", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b4bd681b739a73b8c2c150718789783ed83a01bc9e6aece404755418b5c18a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2b4bd681b739a73b8c2c150718789783ed83a01bc9e6aece404755418b5c18a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x52e69963b10d07e1181b4666ee8eb8c8a674b04a2d181ef63980711afe2fb451", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f6000526020600060256000600060026101f4f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallSha256_3_postfix0.json b/GeneralStateTests/stPreCompiledContracts/CallSha256_3_postfix0.json index a7416f5e3..0a55fbad9 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallSha256_3_postfix0.json +++ b/GeneralStateTests/stPreCompiledContracts/CallSha256_3_postfix0.json @@ -2,81 +2,49 @@ "CallSha256_3_postfix0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallSha256_3_postfix0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x90791e9d5dccb0c20fba4b193e275d4f83e4c9d57f6b4930511df4793146600e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x3b745a1c00d035c334f358d007a430e4cf0ae63aa0556fb05529706de546464d", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x81e879df5e979305af1f79c7740bd1754ff11e6d8d129795e586b735c92187f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x13cc9b72cee9a44291cc26fda71bf8cdeca31a454786e0e70dc6aae7ab507cba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x13cc9b72cee9a44291cc26fda71bf8cdeca31a454786e0e70dc6aae7ab507cba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x81e879df5e979305af1f79c7740bd1754ff11e6d8d129795e586b735c92187f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x65f34578907f006000526020600060256000600060026101f4f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallSha256_3_prefix0.json b/GeneralStateTests/stPreCompiledContracts/CallSha256_3_prefix0.json index 3f2d97a0b..c901c3629 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallSha256_3_prefix0.json +++ b/GeneralStateTests/stPreCompiledContracts/CallSha256_3_prefix0.json @@ -2,81 +2,49 @@ "CallSha256_3_prefix0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallSha256_3_prefix0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x629bd433840e4cf0ff15d9f156c89b64b7db3d834ea2583694195997978fbe41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x52e69963b10d07e1181b4666ee8eb8c8a674b04a2d181ef63980711afe2fb451", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b4bd681b739a73b8c2c150718789783ed83a01bc9e6aece404755418b5c18a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2b4bd681b739a73b8c2c150718789783ed83a01bc9e6aece404755418b5c18a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x52e69963b10d07e1181b4666ee8eb8c8a674b04a2d181ef63980711afe2fb451", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f6000526020600060256000600060026101f4f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallSha256_4.json b/GeneralStateTests/stPreCompiledContracts/CallSha256_4.json index fea92fd53..5ab083a4c 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallSha256_4.json +++ b/GeneralStateTests/stPreCompiledContracts/CallSha256_4.json @@ -2,81 +2,49 @@ "CallSha256_4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallSha256_4Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x20270d37d265f700ba4860f612411a4092621a329b0a2a378228764e2d23ac7f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe7591befc32140f54eb732d50574f89bec399b0b3b402af4ef4d9272d21fc0aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xebf6e4a83fcafea74db774fa81650afcf661cb5d1eb6fb04158a3369bc0a0c81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xebf6e4a83fcafea74db774fa81650afcf661cb5d1eb6fb04158a3369bc0a0c81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe7591befc32140f54eb732d50574f89bec399b0b3b402af4ef4d9272d21fc0aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060026064f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 100 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallSha256_4_gas99.json b/GeneralStateTests/stPreCompiledContracts/CallSha256_4_gas99.json index e1879e5c9..5a4cefdde 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallSha256_4_gas99.json +++ b/GeneralStateTests/stPreCompiledContracts/CallSha256_4_gas99.json @@ -2,81 +2,49 @@ "CallSha256_4_gas99" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallSha256_4_gas99Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x95d63944bcbeb03fa4afc9d935a8fbdd3bc76a37b30207e40f9de7ae7a0331cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc9b775e18b516ae69d8d106d2754056629a68ec3be4d967804e4e2e768e9f316", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8efab944f5c2525aff1db05bf947281046ed8737b7d81bf3b58ff01e367263d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8efab944f5c2525aff1db05bf947281046ed8737b7d81bf3b58ff01e367263d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc9b775e18b516ae69d8d106d2754056629a68ec3be4d967804e4e2e768e9f316", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526020600060206000600060026063f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 99 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/CallSha256_5.json b/GeneralStateTests/stPreCompiledContracts/CallSha256_5.json index 07e7f7edd..47441fb54 100644 --- a/GeneralStateTests/stPreCompiledContracts/CallSha256_5.json +++ b/GeneralStateTests/stPreCompiledContracts/CallSha256_5.json @@ -2,81 +2,48 @@ "CallSha256_5" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/CallSha256_5Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xffb1bb4f635f0ea33d5b41632626ba9922d0ed84badfcc2c99256cb7563532b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9ddd87380d77cdab2089800cd67e53c56f3e989a05ec9f78d9b1f03ae3ba2c06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x158ae4f43576851b9ebba515ba108fded9df16956b249d9bfe9169be5f837402", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x158ae4f43576851b9ebba515ba108fded9df16956b249d9bfe9169be5f837402", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9ddd87380d77cdab2089800cd67e53c56f3e989a05ec9f78d9b1f03ae3ba2c06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000620f4240600060006002610258f1600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 600 2 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp.json b/GeneralStateTests/stPreCompiledContracts/modexp.json index 34d2b9411..9c930d23f 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp.json @@ -2,1281 +2,233 @@ "modexp" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.b08c7b41.Linux.clang", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexpFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf344f27b4bbe9ff93695b2217359d4a244b866c108907dc9d62e70b8c24b3fab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xedadefce96b8e5bc0b47ab27f15d0d4485b48bd2310d025297f1e8a81d218f8a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x30ea2865862628ecdfb1b8e05a93924e0724fd3cb2ddb58a81f12115aa35d8e6", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0750d2c5ea18000c751a7cd6c2d80181e2b3b652697080d0630318d1133c5d80", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7ab9c5c6fa99244ac4be6eb1616a07cae2a86f1bc3edf1806d7e571c3d1fddec", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1b6eb5326be2812301439769d4c1ee96cd1f7caada80dfa4cedfe8631c28770f", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf94ed059b9cf9c906e19620368914a7896fc500d5142ddaedef0289368b15857", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x01c03446197c1b6ae586f3e36da100c6b8db81a71c8e789fc3e8d4591a400e3d", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4d121d2b73e06febfd827e5fbe96f0f07053de8a67db87de342a8fae79f2439d", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x548b75e6b85f994ec0f6dc3e7c5f5b96981c5d9d5559f9528ce55aa27fa59488", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ca8c0c717997cb343a2c40361aee089948bf81f5b54b6a70c0142ce47dbdd3b", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ca8c0c717997cb343a2c40361aee089948bf81f5b54b6a70c0142ce47dbdd3b", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ca8c0c717997cb343a2c40361aee089948bf81f5b54b6a70c0142ce47dbdd3b", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x548b75e6b85f994ec0f6dc3e7c5f5b96981c5d9d5559f9528ce55aa27fa59488", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x548b75e6b85f994ec0f6dc3e7c5f5b96981c5d9d5559f9528ce55aa27fa59488", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x548b75e6b85f994ec0f6dc3e7c5f5b96981c5d9d5559f9528ce55aa27fa59488", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x15c59e0509961d406f6938d9f81755c3ce716f7b29b0222f705704eb72e5d0a4", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2645e04375986d954b5a519729a0185493e8c742ade1a47c209518f39bf7b34a", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ca8c0c717997cb343a2c40361aee089948bf81f5b54b6a70c0142ce47dbdd3b", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x983bc042119afb8ab9ca087eab378e8f7ac7fe0010c1e8f4b17907141ce67c22", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdc9371c778ad15b02e9575e305fde0645b15642d0dd8878bc41da9fb88252722", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2645e04375986d954b5a519729a0185493e8c742ade1a47c209518f39bf7b34a", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdc9371c778ad15b02e9575e305fde0645b15642d0dd8878bc41da9fb88252722", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1b6eb5326be2812301439769d4c1ee96cd1f7caada80dfa4cedfe8631c28770f", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbeb3a72a05bec1ad4c3c7f0d5c761676093c5859aa2052b30d5f89a09c56c418", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5dfae05cec5a88a6786f37288d099e08764ab1d8989caa7215bd44cdc19964ec", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x01c03446197c1b6ae586f3e36da100c6b8db81a71c8e789fc3e8d4591a400e3d", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6105198fe46b16679fce14df3ac906734c6c371f0f4b2876aba7303b30868a75", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x04c1a9eddf133cae0729735fa6251863e2ea8e0760d4205a75bc87803555a1f3", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x04c1a9eddf133cae0729735fa6251863e2ea8e0760d4205a75bc87803555a1f3", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd841e6f32bacdeef36dc820063af8b30b3ecf37ab6a3b76e60ac1449faa8ed5d", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf344f27b4bbe9ff93695b2217359d4a244b866c108907dc9d62e70b8c24b3fab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xedadefce96b8e5bc0b47ab27f15d0d4485b48bd2310d025297f1e8a81d218f8a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x30ea2865862628ecdfb1b8e05a93924e0724fd3cb2ddb58a81f12115aa35d8e6", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0750d2c5ea18000c751a7cd6c2d80181e2b3b652697080d0630318d1133c5d80", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7ab9c5c6fa99244ac4be6eb1616a07cae2a86f1bc3edf1806d7e571c3d1fddec", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1b6eb5326be2812301439769d4c1ee96cd1f7caada80dfa4cedfe8631c28770f", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf94ed059b9cf9c906e19620368914a7896fc500d5142ddaedef0289368b15857", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x01c03446197c1b6ae586f3e36da100c6b8db81a71c8e789fc3e8d4591a400e3d", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4d121d2b73e06febfd827e5fbe96f0f07053de8a67db87de342a8fae79f2439d", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x548b75e6b85f994ec0f6dc3e7c5f5b96981c5d9d5559f9528ce55aa27fa59488", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ca8c0c717997cb343a2c40361aee089948bf81f5b54b6a70c0142ce47dbdd3b", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ca8c0c717997cb343a2c40361aee089948bf81f5b54b6a70c0142ce47dbdd3b", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ca8c0c717997cb343a2c40361aee089948bf81f5b54b6a70c0142ce47dbdd3b", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x548b75e6b85f994ec0f6dc3e7c5f5b96981c5d9d5559f9528ce55aa27fa59488", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x548b75e6b85f994ec0f6dc3e7c5f5b96981c5d9d5559f9528ce55aa27fa59488", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x548b75e6b85f994ec0f6dc3e7c5f5b96981c5d9d5559f9528ce55aa27fa59488", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x15c59e0509961d406f6938d9f81755c3ce716f7b29b0222f705704eb72e5d0a4", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2645e04375986d954b5a519729a0185493e8c742ade1a47c209518f39bf7b34a", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ca8c0c717997cb343a2c40361aee089948bf81f5b54b6a70c0142ce47dbdd3b", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x983bc042119afb8ab9ca087eab378e8f7ac7fe0010c1e8f4b17907141ce67c22", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdc9371c778ad15b02e9575e305fde0645b15642d0dd8878bc41da9fb88252722", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2645e04375986d954b5a519729a0185493e8c742ade1a47c209518f39bf7b34a", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdc9371c778ad15b02e9575e305fde0645b15642d0dd8878bc41da9fb88252722", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1b6eb5326be2812301439769d4c1ee96cd1f7caada80dfa4cedfe8631c28770f", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbeb3a72a05bec1ad4c3c7f0d5c761676093c5859aa2052b30d5f89a09c56c418", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5dfae05cec5a88a6786f37288d099e08764ab1d8989caa7215bd44cdc19964ec", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x01c03446197c1b6ae586f3e36da100c6b8db81a71c8e789fc3e8d4591a400e3d", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6105198fe46b16679fce14df3ac906734c6c371f0f4b2876aba7303b30868a75", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x04c1a9eddf133cae0729735fa6251863e2ea8e0760d4205a75bc87803555a1f3", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x04c1a9eddf133cae0729735fa6251863e2ea8e0760d4205a75bc87803555a1f3", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd841e6f32bacdeef36dc820063af8b30b3ecf37ab6a3b76e60ac1449faa8ed5d", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 0, + 6, + 7 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "Frontier" : [ - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 29 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 1, + 5, + 8, + 9, + 10, + 12, + 13, + 15, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 30 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x8ab635aeb122bb5038eaa8ffb4f81d6bbf4913eb6f91600dab45f6a8e6d4f19d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x055ce8a173a7a583a3884e7dc80d649ac44c55bf660864c7bc59e4b3ed122b04", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe3a7ddada48220c8592f6bd514430285b58b3383623a93710feab1c651651a18", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc5016c244e1875b3336ffcdf3431128575deca48f7002ab782ce76b6f59c6828", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x12e68b7e133d09e64222d8f6aa38d96cbced82273da06ddfb90bd1d9d7a3936b", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf1a18f9f7c7b169d33c416a7924c246bc43f6fddcca6cf829fa10c7968d0c7ef", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfb0524c49998353f408b775428128ded71bf81c790a5382aedc956fb1fa310a8", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3701b34d1b21837e9bd5c63f2655408a153c70264abbbba7e87ed0963f21cc02", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8ab2f4a84d94d2824e035ab697083d9f5f5145632956d2445d9372443a0ad0d7", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x548b75e6b85f994ec0f6dc3e7c5f5b96981c5d9d5559f9528ce55aa27fa59488", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ca8c0c717997cb343a2c40361aee089948bf81f5b54b6a70c0142ce47dbdd3b", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xad6357cbdf0bec96c717c466205b4e4d1701b8e509ea7a4c309e6d19767e3d2c", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ca8c0c717997cb343a2c40361aee089948bf81f5b54b6a70c0142ce47dbdd3b", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x548b75e6b85f994ec0f6dc3e7c5f5b96981c5d9d5559f9528ce55aa27fa59488", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe931892583db8a3be87fdc79c961f0ac3c8e3dcce8ac423dd7c5f1b8198d2f29", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x548b75e6b85f994ec0f6dc3e7c5f5b96981c5d9d5559f9528ce55aa27fa59488", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb38b07f4f1d4401d64e4796e79aebaa339faba8ff438ee1fd37e7058e3079a0e", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x700712ea25c4d123021b690c8b5457404ff1c7263663a523dc83b6c523c348a3", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ca8c0c717997cb343a2c40361aee089948bf81f5b54b6a70c0142ce47dbdd3b", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x983bc042119afb8ab9ca087eab378e8f7ac7fe0010c1e8f4b17907141ce67c22", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdc9371c778ad15b02e9575e305fde0645b15642d0dd8878bc41da9fb88252722", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2645e04375986d954b5a519729a0185493e8c742ade1a47c209518f39bf7b34a", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdc9371c778ad15b02e9575e305fde0645b15642d0dd8878bc41da9fb88252722", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1b6eb5326be2812301439769d4c1ee96cd1f7caada80dfa4cedfe8631c28770f", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbeb3a72a05bec1ad4c3c7f0d5c761676093c5859aa2052b30d5f89a09c56c418", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1493609bc7a1f2d93fce7b6686dc9924ce992a3d628ff2f611b1b3d9dcb98c04", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf86c34793b0787f853d6dc878eac0db3289d2fae018951da94930d1f688ff811", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 2, + 28 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } - }, - { - "hash" : "0x54f7ac3ec3555bd7fbf119a986b26aa0ace72058b8126ac5479f22adef152c50", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 3, + 4 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x3b01b01ac41f2d6e917c6d6a221ce793802469026d9ab7578fa2e79e4da6aaab" + } } - }, - { - "hash" : "0x8b0936c7732c47d392f0985635df5cbf80b287c306abb56f667a932933921275", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 11, + 14, + 25, + 26 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x0100000000000000000000000000000000000000000000000000000000000000" + } } - }, - { - "hash" : "0x04c1a9eddf133cae0729735fa6251863e2ea8e0760d4205a75bc87803555a1f3", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 16, + 27 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x02000000000000000000000000000000000000000000000000000000000000" + } } - }, - { - "hash" : "0xd841e6f32bacdeef36dc820063af8b30b3ecf37ab6a3b76e60ac1449faa8ed5d", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 17 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x0200000000000000000000000000000000000000000000000000000000000000" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x36600060003760206103e8366000600060055af26001556103e851600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ (CALLDATACOPY 0 0 (CALLDATASIZE)) [[1]] (CALLCODE (GAS) 5 0 0 (CALLDATASIZE) 1000 32) [[2]](MLOAD 1000) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x3635c9adc5dea00000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -1316,14 +268,14 @@ "0x000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x05f5e100" + "100000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_1000000.json index b3026680a..2527c129b 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_1000000.json @@ -2,7 +2,7 @@ "modexp_0_0_0_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_1000000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175484", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824516", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4c3825454feab2d6b0da8514726edc73460ba022716f8aadf7610988def5449b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4c3825454feab2d6b0da8514726edc73460ba022716f8aadf7610988def5449b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_155000.json index 9469dd47d..587d3aff4 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_155000.json @@ -2,7 +2,7 @@ "modexp_0_0_0_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_155000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175484", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824516", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc45f45ae070efb966cb524c03d20097525377219b3ba24c1d73a1905491d4c66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc45f45ae070efb966cb524c03d20097525377219b3ba24c1d73a1905491d4c66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_20500.json index e0c205652..61740c777 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_20500.json @@ -2,7 +2,7 @@ "modexp_0_0_0_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x4cb81bc296b7700b2ea0e4cd94a5f4e2f4c67df0e6232d66254e6370ce055be3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "174106", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825894", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4cb81bc296b7700b2ea0e4cd94a5f4e2f4c67df0e6232d66254e6370ce055be3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4cb81bc296b7700b2ea0e4cd94a5f4e2f4c67df0e6232d66254e6370ce055be3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4cb81bc296b7700b2ea0e4cd94a5f4e2f4c67df0e6232d66254e6370ce055be3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4cb81bc296b7700b2ea0e4cd94a5f4e2f4c67df0e6232d66254e6370ce055be3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_22000.json index 511199b05..ea1a2d7ff 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_22000.json @@ -2,7 +2,7 @@ "modexp_0_0_0_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_22000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175484", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824516", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3eb47ef1222fdf484852d249cf453602253b8ec77ae3324c0b93a096bf5ce5d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3eb47ef1222fdf484852d249cf453602253b8ec77ae3324c0b93a096bf5ce5d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_25000.json index 7bb6e5630..f009db4cb 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_25000.json @@ -2,7 +2,7 @@ "modexp_0_0_0_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_25000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175484", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824516", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x93afda1fc15e0a061dcf1fb996f09107a2489a06164f2f00c2e7711ea8b9a7a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x93afda1fc15e0a061dcf1fb996f09107a2489a06164f2f00c2e7711ea8b9a7a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_35000.json index d92b562ae..c734ef8a9 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_0_0_35000.json @@ -2,7 +2,7 @@ "modexp_0_0_0_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_0_0_35000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175484", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824516", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x93f18729e40efc9a67066b12285e686204e77169a4584a09cd7e8dc74c98a098", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x93f18729e40efc9a67066b12285e686204e77169a4584a09cd7e8dc74c98a098", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa23fba7b3b1924e71de309a0b1ff583fd6f6911c003ae17e9653df5bbd5a2694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760846004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_1000000.json index 8ac2b6452..14ddce373 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_1000000.json @@ -2,7 +2,7 @@ "modexp_0_1_0_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_1000000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175743", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824257", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa0e93870cf059bad4fe1b0db6fd0914a4dc294b27474a26e4581d8c697fd835f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa0e93870cf059bad4fe1b0db6fd0914a4dc294b27474a26e4581d8c697fd835f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_155000.json index c0d020459..2f6ec483b 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_155000.json @@ -2,7 +2,7 @@ "modexp_0_1_0_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_155000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175743", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824257", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7b22739b6ffd93e673aee9a517a03ebb9d6a68e7d69ca98abda84a08c36fbec7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7b22739b6ffd93e673aee9a517a03ebb9d6a68e7d69ca98abda84a08c36fbec7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_20500.json index 4d820bc79..63519f8b8 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_20500.json @@ -2,7 +2,7 @@ "modexp_0_1_0_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "174362", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825638", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_22000.json index fc4fce47f..a66ab5fcb 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_22000.json @@ -2,7 +2,7 @@ "modexp_0_1_0_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_22000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175743", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824257", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9eb7c45f7fb8889481a1c18e21575bb4a035cd588eabd57553d147dae0d8f9c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9eb7c45f7fb8889481a1c18e21575bb4a035cd588eabd57553d147dae0d8f9c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_25000.json index d0749cab8..ba9bbe78c 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_25000.json @@ -2,7 +2,7 @@ "modexp_0_1_0_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_25000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175743", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824257", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa07951092cdeecec2857342282f5e461fce73670808cf9b2db90c023247362ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa07951092cdeecec2857342282f5e461fce73670808cf9b2db90c023247362ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_35000.json index 6bbb2715a..312a334b3 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_1_0_35000.json @@ -2,7 +2,7 @@ "modexp_0_1_0_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_1_0_35000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175743", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824257", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1c18fc303b0ca8c35dc2e026d4cff5555afeed33d68509fc816df18be5a94423", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1c18fc303b0ca8c35dc2e026d4cff5555afeed33d68509fc816df18be5a94423", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 1 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_1000000.json index b9c8d9486..d96df8f7a 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_1000000.json @@ -2,7 +2,7 @@ "modexp_0_3_100_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_1000000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175871", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824129", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x007e3a7b8f2352e0de39679b9c52d5c2b0f7b91e80a5425cd350e7556759b156", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x007e3a7b8f2352e0de39679b9c52d5c2b0f7b91e80a5425cd350e7556759b156", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_155000.json index 65bbdd634..8df4ab220 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_155000.json @@ -2,7 +2,7 @@ "modexp_0_3_100_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_155000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175871", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824129", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9661fd692d26c7f8762d4416e577c60dba838799e4a0d51584f1370f3d5c6076", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9661fd692d26c7f8762d4416e577c60dba838799e4a0d51584f1370f3d5c6076", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_20500.json index 16baf9a0d..95cd9d14d 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_20500.json @@ -2,7 +2,7 @@ "modexp_0_3_100_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "174490", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825510", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_22000.json index e957ca5a6..e05a9b091 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_22000.json @@ -2,7 +2,7 @@ "modexp_0_3_100_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_22000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175871", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824129", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3a86b9de7d6c7156712983497ba939a75bbd2dce10e9a82b2227066b4ceac0bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3a86b9de7d6c7156712983497ba939a75bbd2dce10e9a82b2227066b4ceac0bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_25000.json index d58b9c603..8b9f514da 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_25000.json @@ -2,7 +2,7 @@ "modexp_0_3_100_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_25000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175871", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824129", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdb6070a37265043480daad1f3820a9c1d6086c12809f61c3a1c7b45f7b72dcc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdb6070a37265043480daad1f3820a9c1d6086c12809f61c3a1c7b45f7b72dcc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_35000.json index 2e2526067..0c7b64099 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_0_3_100_35000.json @@ -2,7 +2,7 @@ "modexp_0_3_100_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_0_3_100_35000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175871", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824129", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb1b6ffcf4816d38c2477f1e4d334ed56aa20f1c4a95d93b33e1a75bfdbb48404", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb1b6ffcf4816d38c2477f1e4d334ed56aa20f1c4a95d93b33e1a75bfdbb48404", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 0, exponent 3 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_1000000.json index 09ffd6df9..e5c7064af 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_1000000.json @@ -2,7 +2,7 @@ "modexp_1_0_0_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_1000000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175743", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824257", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa0e93870cf059bad4fe1b0db6fd0914a4dc294b27474a26e4581d8c697fd835f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa0e93870cf059bad4fe1b0db6fd0914a4dc294b27474a26e4581d8c697fd835f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_155000.json index 8fb41cae2..e347bbc6b 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_155000.json @@ -2,7 +2,7 @@ "modexp_1_0_0_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_155000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175743", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824257", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7b22739b6ffd93e673aee9a517a03ebb9d6a68e7d69ca98abda84a08c36fbec7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7b22739b6ffd93e673aee9a517a03ebb9d6a68e7d69ca98abda84a08c36fbec7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_20500.json index 8f9521fab..2b1e3cab7 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_20500.json @@ -2,7 +2,7 @@ "modexp_1_0_0_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "174362", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825638", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbb43e24b4c20d1136460e54a8acde649023744c1f692fd8b9315d7a042c89f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_22000.json index 5ea447cc8..b0a966fc0 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_22000.json @@ -2,7 +2,7 @@ "modexp_1_0_0_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_22000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175743", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824257", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9eb7c45f7fb8889481a1c18e21575bb4a035cd588eabd57553d147dae0d8f9c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9eb7c45f7fb8889481a1c18e21575bb4a035cd588eabd57553d147dae0d8f9c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_25000.json index c60e25984..d630af5b3 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_25000.json @@ -2,7 +2,7 @@ "modexp_1_0_0_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_25000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175743", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824257", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa07951092cdeecec2857342282f5e461fce73670808cf9b2db90c023247362ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa07951092cdeecec2857342282f5e461fce73670808cf9b2db90c023247362ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_35000.json index b6a225731..72a2a96aa 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_0_35000.json @@ -2,7 +2,7 @@ "modexp_1_0_0_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_0_35000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175743", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824257", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1c18fc303b0ca8c35dc2e026d4cff5555afeed33d68509fc816df18be5a94423", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1c18fc303b0ca8c35dc2e026d4cff5555afeed33d68509fc816df18be5a94423", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6c2b9fcad463cde231b39b79bf1da3c33d3ff5ab903c4da9b2c5773dd5787ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 0 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760856004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_1000000.json index 255bacaee..3c42b63a1 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_1000000.json @@ -2,7 +2,7 @@ "modexp_1_0_1_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_1000000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175871", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824129", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x007e3a7b8f2352e0de39679b9c52d5c2b0f7b91e80a5425cd350e7556759b156", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x007e3a7b8f2352e0de39679b9c52d5c2b0f7b91e80a5425cd350e7556759b156", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_155000.json index 3e15ed79f..ead1c7206 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_155000.json @@ -2,7 +2,7 @@ "modexp_1_0_1_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_155000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175871", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824129", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9661fd692d26c7f8762d4416e577c60dba838799e4a0d51584f1370f3d5c6076", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9661fd692d26c7f8762d4416e577c60dba838799e4a0d51584f1370f3d5c6076", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_20500.json index 5a4a3297d..cb6f8b5c4 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_20500.json @@ -2,7 +2,7 @@ "modexp_1_0_1_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "174490", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825510", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2b8da6677e55d94476680c71022ea73c269c9a47550b6f3ea1a227e8b73b84ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_22000.json index a2dae52ce..e85e6bbc7 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_22000.json @@ -2,7 +2,7 @@ "modexp_1_0_1_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_22000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175871", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824129", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3a86b9de7d6c7156712983497ba939a75bbd2dce10e9a82b2227066b4ceac0bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3a86b9de7d6c7156712983497ba939a75bbd2dce10e9a82b2227066b4ceac0bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_25000.json index 73d4c4a7f..c7bd3a0c3 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_25000.json @@ -2,7 +2,7 @@ "modexp_1_0_1_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_25000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175871", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824129", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdb6070a37265043480daad1f3820a9c1d6086c12809f61c3a1c7b45f7b72dcc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdb6070a37265043480daad1f3820a9c1d6086c12809f61c3a1c7b45f7b72dcc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_35000.json index c3ce88e91..8a9681970 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_0_1_35000.json @@ -2,7 +2,7 @@ "modexp_1_0_1_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_0_1_35000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175871", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824129", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb1b6ffcf4816d38c2477f1e4d334ed56aa20f1c4a95d93b33e1a75bfdbb48404", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb1b6ffcf4816d38c2477f1e4d334ed56aa20f1c4a95d93b33e1a75bfdbb48404", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdacade500da9d396a3311376858dac04e8c9c820a3ee9d8b87a18a7acabb66c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 0 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760866004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_1000000.json index fe2dd06a9..078714ccd 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_1000000.json @@ -2,7 +2,7 @@ "modexp_1_1_1_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_1000000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175999", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824001", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3664e864e10a81a12bd2793b83ab71cb27832742a848c467c129f49a3bfeb21c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3664e864e10a81a12bd2793b83ab71cb27832742a848c467c129f49a3bfeb21c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_155000.json index 4df8c27cd..bb209ae1e 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_155000.json @@ -2,7 +2,7 @@ "modexp_1_1_1_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_155000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175999", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824001", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2a433c99d44882387ed86d759e02a260171828d4425b19c3f0b57392dfe65156", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2a433c99d44882387ed86d759e02a260171828d4425b19c3f0b57392dfe65156", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_20500.json index a60b7f0b9..eeddc2f02 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_20500.json @@ -2,7 +2,7 @@ "modexp_1_1_1_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "174618", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825382", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_22000.json index ae1839cbf..930205cb8 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_22000.json @@ -2,7 +2,7 @@ "modexp_1_1_1_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_22000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175999", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824001", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x384ac2b53fbe640f387287a2003a692315bcc82bb52834e63ad41306d38b3a6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x384ac2b53fbe640f387287a2003a692315bcc82bb52834e63ad41306d38b3a6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_25000.json index 79304b1f7..30454ea01 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_25000.json @@ -2,7 +2,7 @@ "modexp_1_1_1_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_25000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175999", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824001", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x25bfcccff0916b282b8d6892c0b9829b45a41e06144720a2066ed542cc3b778a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x25bfcccff0916b282b8d6892c0b9829b45a41e06144720a2066ed542cc3b778a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_35000.json index b44b4365a..0b51d4e33 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_1_1_1_35000.json @@ -2,7 +2,7 @@ "modexp_1_1_1_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_1_1_1_35000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175999", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824001", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa711cfe2614927965c0f7e84e11cf6c96978548d692ae2cab096161efe009fc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa711cfe2614927965c0f7e84e11cf6c96978548d692ae2cab096161efe009fc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 1, exponent 1 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_22411_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_22411_22000.json index 6631d855f..2390e35e9 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_22411_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_22411_22000.json @@ -2,7 +2,7 @@ "modexp_37120_22411_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_22411_22000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "193730", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999806270", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe7a86c639ff5f1a861600ce354cf278a5416ff529726dff5c36e72b9c34b557e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe7a86c639ff5f1a861600ce354cf278a5416ff529726dff5c36e72b9c34b557e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe7a86c639ff5f1a861600ce354cf278a5416ff529726dff5c36e72b9c34b557e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_1000000.json index c1f56cfe2..0438dc125 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_1000000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_0_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.b352d835.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_1000000Filler.json" }, "env" : { @@ -10,147 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "EIP158" : [ - { - "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Frontier" : [ - { - "hash" : "0x4d440e0a27495c893e3b9063d75ad8eb62b345898fefec7b1d1427604d904ced", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Homestead" : [ - { - "hash" : "0x4d440e0a27495c893e3b9063d75ad8eb62b345898fefec7b1d1427604d904ced", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Metropolis" : [ - { - "hash" : "0xb987a09a9cfe708d69a1c2a41d76d123a9e77a79d81e4b97c4c12d0ad5ae4aa0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "329582", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999670418", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } + } } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_155000.json index 85ae8aafd..93da86eed 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_155000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_0_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_155000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "326474", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999673526", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x47e7100b12093da81a343618941605c265ae15b4df6f13bb7fe0c6fce59a38b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x47e7100b12093da81a343618941605c265ae15b4df6f13bb7fe0c6fce59a38b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x47e7100b12093da81a343618941605c265ae15b4df6f13bb7fe0c6fce59a38b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_20500.json index 6577d7ac7..75347571d 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_20500.json @@ -2,7 +2,7 @@ "modexp_37120_37111_0_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x93b73788b166855152cda77a36402c0c28961149e5b1ae3594ec663150c29d12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "191974", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999808026", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x93b73788b166855152cda77a36402c0c28961149e5b1ae3594ec663150c29d12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x93b73788b166855152cda77a36402c0c28961149e5b1ae3594ec663150c29d12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x93b73788b166855152cda77a36402c0c28961149e5b1ae3594ec663150c29d12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x93b73788b166855152cda77a36402c0c28961149e5b1ae3594ec663150c29d12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_22000.json index c8c40e740..8690a53ce 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_22000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_0_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_22000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "193474", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999806526", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xecf14d481f871dd6b0234af0eff89cd3cc6eca52e910770e3d409c733a225288", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xecf14d481f871dd6b0234af0eff89cd3cc6eca52e910770e3d409c733a225288", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xecf14d481f871dd6b0234af0eff89cd3cc6eca52e910770e3d409c733a225288", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_25000.json index b7d2fd846..b32289c54 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_25000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_0_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_25000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "196474", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999803526", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc1fce9909fb92c01134cb00e80f0cb502b9dacd836d955c3398012db3e16d2c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc1fce9909fb92c01134cb00e80f0cb502b9dacd836d955c3398012db3e16d2c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc1fce9909fb92c01134cb00e80f0cb502b9dacd836d955c3398012db3e16d2c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_35000.json index 4d8cdaf1a..9905be91b 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_0_35000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_0_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_0_35000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "206474", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999793526", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4a9f3c02264be23434edf1f0346e525828b0e575617d6fcc32bd5a8882c64b38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9813e1a8a0e547953cc40ac606b5dbea795bbadda164585cf6c6db5648ca4bc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9813e1a8a0e547953cc40ac606b5dbea795bbadda164585cf6c6db5648ca4bc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9813e1a8a0e547953cc40ac606b5dbea795bbadda164585cf6c6db5648ca4bc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 0 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101846004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_1000000.json index 478143f96..b2524f046 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_1000000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_1_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.b352d835.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_1000000Filler.json" }, "env" : { @@ -10,147 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "EIP158" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Frontier" : [ - { - "hash" : "0x7989f47b9a8495b8bebf3810a035b1e8e803862cb80930831979f6194e6b8970", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Homestead" : [ - { - "hash" : "0x7989f47b9a8495b8bebf3810a035b1e8e803862cb80930831979f6194e6b8970", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Metropolis" : [ - { - "hash" : "0xf0ae90f0c97de213edf08a1ccd0e8d818bd9881765c2c12647f3a38e145d329d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "329841", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999670159", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + } + } } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_155000.json index 6f0056b9b..6cbc241d6 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_155000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_1_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_155000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "326730", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999673270", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x92bbae2524afad51b019969112dc2f4170636e77a483abde9243152b65f69f0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x92bbae2524afad51b019969112dc2f4170636e77a483abde9243152b65f69f0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x92bbae2524afad51b019969112dc2f4170636e77a483abde9243152b65f69f0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_20500.json index 40f2639d4..d2ae034d2 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_20500.json @@ -2,7 +2,7 @@ "modexp_37120_37111_1_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "192230", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999807770", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_25000.json index 5452434b1..6b2c0f1bb 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_25000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_1_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_25000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "196730", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999803270", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe6ebd711890fa34f87072875706e43ce304f9fca9e27756112c4897e71b0ff43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe6ebd711890fa34f87072875706e43ce304f9fca9e27756112c4897e71b0ff43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe6ebd711890fa34f87072875706e43ce304f9fca9e27756112c4897e71b0ff43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_35000.json index 6b66f2ac8..079557d05 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_1_35000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_1_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_1_35000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "206730", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999793270", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x388b9d76c6f6045ae01c93741d9fb41dbb486d2e69ff800d6901e5a409fd6ae2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x388b9d76c6f6045ae01c93741d9fb41dbb486d2e69ff800d6901e5a409fd6ae2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x388b9d76c6f6045ae01c93741d9fb41dbb486d2e69ff800d6901e5a409fd6ae2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 1 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_1000000.json index fa0217768..7f73e98fa 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_1000000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_37111_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.b352d835.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_1000000Filler.json" }, "env" : { @@ -10,147 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "EIP158" : [ - { - "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Frontier" : [ - { - "hash" : "0xe1ad81867242795a4e40ff6a8baa644a48fdddedf627b5cb6fee2d6ebf8b5fe7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Homestead" : [ - { - "hash" : "0xe1ad81867242795a4e40ff6a8baa644a48fdddedf627b5cb6fee2d6ebf8b5fe7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Metropolis" : [ - { - "hash" : "0x8ee3006700d539a3dcc5e109b825866ab8f707dd764d33c0d461e7da1a70b68b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "338421", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999661579", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x3961ec903a448e057fbc76e10170d02f15b9b65c2f7fc8215f611ec6dc74cf91" + } + } } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_155000.json index 6e1ed62c3..f922dc279 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_155000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_37111_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_155000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "335242", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999664758", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x26452b5230b198654a03c73c6a8589a6d6e5907becde6845f679b9131f41f951", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x26452b5230b198654a03c73c6a8589a6d6e5907becde6845f679b9131f41f951", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x26452b5230b198654a03c73c6a8589a6d6e5907becde6845f679b9131f41f951", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_20500.json index 16a9d967d..ebc3b1dc8 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_20500.json @@ -2,7 +2,7 @@ "modexp_37120_37111_37111_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x0a955fccb8b4f105308acbe4e06db82a4625b26d15c5e463d17d1f3e667504e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "200742", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999799258", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x0a955fccb8b4f105308acbe4e06db82a4625b26d15c5e463d17d1f3e667504e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0a955fccb8b4f105308acbe4e06db82a4625b26d15c5e463d17d1f3e667504e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0a955fccb8b4f105308acbe4e06db82a4625b26d15c5e463d17d1f3e667504e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0a955fccb8b4f105308acbe4e06db82a4625b26d15c5e463d17d1f3e667504e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_22000.json index 18a98b866..1bbe19086 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_22000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_37111_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_22000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "202242", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999797758", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2459bf359ac33292153bca5caeb9fef4465db441b5365fc2419f7499718aa732", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2459bf359ac33292153bca5caeb9fef4465db441b5365fc2419f7499718aa732", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2459bf359ac33292153bca5caeb9fef4465db441b5365fc2419f7499718aa732", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_25000.json index bfb89e706..eef691341 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_25000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_37111_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_25000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "205242", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999794758", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3589ad89e447ab9a7f1197873b0883b9d1bd25f21d35390a20829fc609ea1331", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3589ad89e447ab9a7f1197873b0883b9d1bd25f21d35390a20829fc609ea1331", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3589ad89e447ab9a7f1197873b0883b9d1bd25f21d35390a20829fc609ea1331", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_35000.json index 234ace9a2..47646bedf 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_37111_35000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_37111_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_37111_35000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "215242", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999784758", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4ab705fcfab9c598afe5604b45e73efc33f001154a4490670a7fa90038706cc4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x653685e1f6de537a689bb13fe33b04b58444b65a12064ad6fec1e3ed488aa05d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x653685e1f6de537a689bb13fe33b04b58444b65a12064ad6fec1e3ed488aa05d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x653685e1f6de537a689bb13fe33b04b58444b65a12064ad6fec1e3ed488aa05d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c57610204600435600401351115155857600435600401356020016004356004016101403760806103c061014051610160600060056305f5e0fff115585760806103a0526103a060a0806104608284600060046022f150505061046080516020820120905060005561046060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_1000000.json index dbf5bdca2..8d22de5c5 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_1000000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_97_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.b352d835.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_1000000Filler.json" }, "env" : { @@ -10,147 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "EIP158" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Frontier" : [ - { - "hash" : "0x7989f47b9a8495b8bebf3810a035b1e8e803862cb80930831979f6194e6b8970", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Homestead" : [ - { - "hash" : "0x7989f47b9a8495b8bebf3810a035b1e8e803862cb80930831979f6194e6b8970", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Metropolis" : [ - { - "hash" : "0x84b61f38f2e4b69c8f06e3f913aa3767089b7e3e5d0f077f304061c1f59c827b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "329841", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999670159", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xeff31f7855752a3582db9a0d965d5063f23d94003e66f8c5a8f8e8fe2ab24753" + } + } } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_155000.json index 126eeb8cf..6a732dcbe 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_155000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_97_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_155000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "326730", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999673270", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x92bbae2524afad51b019969112dc2f4170636e77a483abde9243152b65f69f0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x92bbae2524afad51b019969112dc2f4170636e77a483abde9243152b65f69f0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x92bbae2524afad51b019969112dc2f4170636e77a483abde9243152b65f69f0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_20500.json index c3c0c8da9..59a90465d 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_20500.json @@ -2,7 +2,7 @@ "modexp_37120_37111_97_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "192230", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999807770", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x52671cca402f6ea20c1f17b4854d7bc9deb29b7f38a2ae3528685f903eabc35d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_22000.json index 6bad49bfa..51b793091 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_22000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_97_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_22000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "193730", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999806270", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe7a86c639ff5f1a861600ce354cf278a5416ff529726dff5c36e72b9c34b557e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe7a86c639ff5f1a861600ce354cf278a5416ff529726dff5c36e72b9c34b557e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe7a86c639ff5f1a861600ce354cf278a5416ff529726dff5c36e72b9c34b557e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_25000.json index 923d27c7a..190a5df4f 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_25000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_97_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_25000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "196730", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999803270", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe6ebd711890fa34f87072875706e43ce304f9fca9e27756112c4897e71b0ff43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe6ebd711890fa34f87072875706e43ce304f9fca9e27756112c4897e71b0ff43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe6ebd711890fa34f87072875706e43ce304f9fca9e27756112c4897e71b0ff43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_35000.json index 7a5589895..057bb447b 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_37120_37111_97_35000.json @@ -2,7 +2,7 @@ "modexp_37120_37111_97_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_37120_37111_97_35000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "206730", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999793270", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc8fc3bad240d964fda1961988805ca4c903b1399b7d2eb4abbe9b9640b7d3956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x388b9d76c6f6045ae01c93741d9fb41dbb486d2e69ff800d6901e5a409fd6ae2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x388b9d76c6f6045ae01c93741d9fb41dbb486d2e69ff800d6901e5a409fd6ae2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x388b9d76c6f6045ae01c93741d9fb41dbb486d2e69ff800d6901e5a409fd6ae2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137120, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 97 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037600161034061014051610160600060056305f5e0fff11558576001610320526103206021806103808284600060046015f150505061038080516020820120905060005561038060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_1000000.json index 89b605836..35697df38 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_1000000.json @@ -2,7 +2,7 @@ "modexp_39936_1_55201_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_1000000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "178262", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999821738", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x038ce2d0d81afd6f9db7e4b21a65a2763091c1068647b921ca1e6ff8f640acfe" + } } } - ], - "EIP158" : [ - { - "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x51dd1fbe2130a40b7026d0e779fd4a6209f2433872899ea1a7bb3ff86a9f25c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x51dd1fbe2130a40b7026d0e779fd4a6209f2433872899ea1a7bb3ff86a9f25c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x717fe2475b80f8ee48136c3e7051158fdb400525450890bd2a00fe937657567d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_155000.json index 4fd364587..8893830c2 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_155000.json @@ -2,7 +2,7 @@ "modexp_39936_1_55201_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_155000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "178262", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999821738", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x038ce2d0d81afd6f9db7e4b21a65a2763091c1068647b921ca1e6ff8f640acfe" + } } } - ], - "EIP158" : [ - { - "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf19522362da9bf03874defd6d035a7a3a9b2f91ee0fb11d9334f83ebc0380330", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf19522362da9bf03874defd6d035a7a3a9b2f91ee0fb11d9334f83ebc0380330", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x717fe2475b80f8ee48136c3e7051158fdb400525450890bd2a00fe937657567d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_20500.json index 1d8dbe1c2..868ed070a 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_20500.json @@ -2,7 +2,7 @@ "modexp_39936_1_55201_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x71ce57bd3cb60f3f13680781c7332eebe1cd567dfbb8da6eb8d64fc04a155bf0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "176858", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999823142", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x71ce57bd3cb60f3f13680781c7332eebe1cd567dfbb8da6eb8d64fc04a155bf0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x71ce57bd3cb60f3f13680781c7332eebe1cd567dfbb8da6eb8d64fc04a155bf0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x71ce57bd3cb60f3f13680781c7332eebe1cd567dfbb8da6eb8d64fc04a155bf0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x71ce57bd3cb60f3f13680781c7332eebe1cd567dfbb8da6eb8d64fc04a155bf0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_22000.json index 696eece6c..57448fe95 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_22000.json @@ -2,7 +2,7 @@ "modexp_39936_1_55201_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_22000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "178262", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999821738", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x038ce2d0d81afd6f9db7e4b21a65a2763091c1068647b921ca1e6ff8f640acfe" + } } } - ], - "EIP158" : [ - { - "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3511d77d8bc66c502aeb153df540a7b86c4357dead7eabc876c515c6d793e674", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3511d77d8bc66c502aeb153df540a7b86c4357dead7eabc876c515c6d793e674", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x717fe2475b80f8ee48136c3e7051158fdb400525450890bd2a00fe937657567d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_25000.json index 5886a1047..df52fe91a 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_25000.json @@ -2,7 +2,7 @@ "modexp_39936_1_55201_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_25000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "178262", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999821738", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x038ce2d0d81afd6f9db7e4b21a65a2763091c1068647b921ca1e6ff8f640acfe" + } } } - ], - "EIP158" : [ - { - "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6e78c3a7a71aeb7edf950d3e61c3177497fe888a7bf0d1e123b0278c84ba5689", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6e78c3a7a71aeb7edf950d3e61c3177497fe888a7bf0d1e123b0278c84ba5689", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x717fe2475b80f8ee48136c3e7051158fdb400525450890bd2a00fe937657567d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_35000.json index 198d879aa..e20e4dc96 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_39936_1_55201_35000.json @@ -2,7 +2,7 @@ "modexp_39936_1_55201_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_39936_1_55201_35000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "178262", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999821738", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x038ce2d0d81afd6f9db7e4b21a65a2763091c1068647b921ca1e6ff8f640acfe" + } } } - ], - "EIP158" : [ - { - "hash" : "0x84a1eda4b3b6051597f6098cd9cf7995469edf286f5602c41849511718aa533f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa6b7805c00480fcde648e22e0d0418f1078d65634251f99fc202c531fa4dfc4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa6b7805c00480fcde648e22e0d0418f1078d65634251f99fc202c531fa4dfc4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x717fe2475b80f8ee48136c3e7051158fdb400525450890bd2a00fe937657567d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 115792089237316195423570985008687907853269984665640564039457584007913129639936, exponent 1 and modulus 21847450052839212624230656502990235142567050104912751880812823948662932355201 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602061028061014051610160600060056305f5e0fff11558576020610260526102606040806102c08284600060046018f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_1000000.json index e9fd9a95b..c9f37fbc7 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_1000000.json @@ -2,7 +2,7 @@ "modexp_3_09984_39936_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_1000000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "179049", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999820951", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xc13ad76448cbefd1ee83b801bcd8f33061f2577d6118395e7b44ea21c7ef62e0" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbaefd266cb2fdbc435196c47e6c66d608fc6b8ca94be2662ce956be6c07fc638", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbaefd266cb2fdbc435196c47e6c66d608fc6b8ca94be2662ce956be6c07fc638", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb1d2c591ff29720cf615412d9227e03072aa06af4814680f85e607714643a16e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_155000.json index d97305c28..534f04e92 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_155000.json @@ -2,7 +2,7 @@ "modexp_3_09984_39936_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_155000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "179049", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999820951", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xc13ad76448cbefd1ee83b801bcd8f33061f2577d6118395e7b44ea21c7ef62e0" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x88b83735835f9d1efcf3bfb9861f5b153d981da6b0108ee882fd771b7ac7f618", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x88b83735835f9d1efcf3bfb9861f5b153d981da6b0108ee882fd771b7ac7f618", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb1d2c591ff29720cf615412d9227e03072aa06af4814680f85e607714643a16e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_22000.json index 01d2f09e2..5804b9fd2 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_22000.json @@ -2,7 +2,7 @@ "modexp_3_09984_39936_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_22000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "176374", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999823626", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x70240d70b3a3bc6b69e9e0442519e5233506203cb341d794af639d2d1508417d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x70240d70b3a3bc6b69e9e0442519e5233506203cb341d794af639d2d1508417d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x70240d70b3a3bc6b69e9e0442519e5233506203cb341d794af639d2d1508417d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_25000.json index 6d11a21c4..988d46506 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_25000.json @@ -2,7 +2,7 @@ "modexp_3_09984_39936_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_25000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "179049", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999820951", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xc13ad76448cbefd1ee83b801bcd8f33061f2577d6118395e7b44ea21c7ef62e0" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5906361a887d190ba04ed942970e835f9dd1532c2128ba0ffbb3c28fc7d952ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5906361a887d190ba04ed942970e835f9dd1532c2128ba0ffbb3c28fc7d952ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb1d2c591ff29720cf615412d9227e03072aa06af4814680f85e607714643a16e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_35000.json index 3c3da73ea..3f2ee4de1 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_09984_39936_35000.json @@ -2,7 +2,7 @@ "modexp_3_09984_39936_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_09984_39936_35000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "179049", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999820951", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xc13ad76448cbefd1ee83b801bcd8f33061f2577d6118395e7b44ea21c7ef62e0" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc5d18908d269b9b508c9471220b127ef55d6cd4fa98543c1ae6b4547e0bf45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x72fea5b5f49d22a532afe8d7044076bb3d18a6ec5eda34f426f0192369baf593", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x72fea5b5f49d22a532afe8d7044076bb3d18a6ec5eda34f426f0192369baf593", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb1d2c591ff29720cf615412d9227e03072aa06af4814680f85e607714643a16e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_28948_11579_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_28948_11579_20500.json index a6c3f38c0..40f3c2952 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_3_28948_11579_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_28948_11579_20500.json @@ -2,7 +2,7 @@ "modexp_3_28948_11579_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_28948_11579_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x4d64a4cdca827144c4cda65b7049697ffecc07fb165ba3c188cfea288d2cfe8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "174874", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825126", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4d64a4cdca827144c4cda65b7049697ffecc07fb165ba3c188cfea288d2cfe8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4d64a4cdca827144c4cda65b7049697ffecc07fb165ba3c188cfea288d2cfe8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4d64a4cdca827144c4cda65b7049697ffecc07fb165ba3c188cfea288d2cfe8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4d64a4cdca827144c4cda65b7049697ffecc07fb165ba3c188cfea288d2cfe8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 3, exponent 28948022309329048855892746252171976963317496166410141009864396001978282409984 and modulus 115792089237316195423570985008687907853269984665640564039457584007913129639936 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c66004356004013511151558576004356004013560200160043560040161014037602161028061014051610160600060056305f5e0fff11558576021610260526102606041806102e08284600060046018f15050506102e08051602082012090506000556102e060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_1000000.json index f9621bbfd..cc8c9e6ae 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_1000000.json @@ -2,7 +2,7 @@ "modexp_3_5_100_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_1000000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175999", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824001", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8" + } } } - ], - "EIP158" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3664e864e10a81a12bd2793b83ab71cb27832742a848c467c129f49a3bfeb21c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3664e864e10a81a12bd2793b83ab71cb27832742a848c467c129f49a3bfeb21c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6e4ac1910b666f49a10026acad50b424b233b7851fc851c6d9b125ad3eafcbb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_155000.json index 719701846..5220bcb04 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_155000.json @@ -2,7 +2,7 @@ "modexp_3_5_100_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_155000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175999", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824001", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8" + } } } - ], - "EIP158" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2a433c99d44882387ed86d759e02a260171828d4425b19c3f0b57392dfe65156", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2a433c99d44882387ed86d759e02a260171828d4425b19c3f0b57392dfe65156", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6e4ac1910b666f49a10026acad50b424b233b7851fc851c6d9b125ad3eafcbb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_20500.json index 41903731a..cd04d6432 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_20500.json @@ -2,7 +2,7 @@ "modexp_3_5_100_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "174618", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825382", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe8153407b3136310cdc0eec08c213622c7092f5cef1bdd7fb100ed4ecd096652", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_22000.json index e2f4cbc3f..c30a1497c 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_22000.json @@ -2,7 +2,7 @@ "modexp_3_5_100_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_22000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175999", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824001", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8" + } } } - ], - "EIP158" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x384ac2b53fbe640f387287a2003a692315bcc82bb52834e63ad41306d38b3a6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x384ac2b53fbe640f387287a2003a692315bcc82bb52834e63ad41306d38b3a6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6e4ac1910b666f49a10026acad50b424b233b7851fc851c6d9b125ad3eafcbb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_25000.json index 045804f5f..06c723289 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_25000.json @@ -2,7 +2,7 @@ "modexp_3_5_100_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_25000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175999", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824001", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8" + } } } - ], - "EIP158" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x25bfcccff0916b282b8d6892c0b9829b45a41e06144720a2066ed542cc3b778a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x25bfcccff0916b282b8d6892c0b9829b45a41e06144720a2066ed542cc3b778a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6e4ac1910b666f49a10026acad50b424b233b7851fc851c6d9b125ad3eafcbb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_35000.json index f1a5ed10c..5e49795a8 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_3_5_100_35000.json @@ -2,7 +2,7 @@ "modexp_3_5_100_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_3_5_100_35000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "175999", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999824001", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8" + } } } - ], - "EIP158" : [ - { - "hash" : "0x28984fd862291b29c481d50eb7e2d25c65da464f47f46759295bb874b590f29a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa711cfe2614927965c0f7e84e11cf6c96978548d692ae2cab096161efe009fc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa711cfe2614927965c0f7e84e11cf6c96978548d692ae2cab096161efe009fc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6e4ac1910b666f49a10026acad50b424b233b7851fc851c6d9b125ad3eafcbb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 3, exponent 5 and modulus 100 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760876004356004013511151558576004356004013560200160043560040161014037600161024061014051610160600060056305f5e0fff11558576001610220526102206021806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_1000000.json index ab2a8c13a..3a586a278 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_1000000.json @@ -2,7 +2,7 @@ "modexp_49_2401_2401_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_1000000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "176127", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999823873", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x54a8c0ab653c15bfb48b47fd011ba2b9617af01cb45cab344acd57c924d56798" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8c3e32f1b4bcf3576dc6b888f5834b9113c2e5529f37a180dd4e14372ea06a68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8c3e32f1b4bcf3576dc6b888f5834b9113c2e5529f37a180dd4e14372ea06a68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_155000.json index 8ede6878f..829ddb34e 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_155000.json @@ -2,7 +2,7 @@ "modexp_49_2401_2401_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_155000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "176127", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999823873", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x54a8c0ab653c15bfb48b47fd011ba2b9617af01cb45cab344acd57c924d56798" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc478d53ebb92e3f68b24ddd526524e010e1792f33a0ccbbd775a210ef753340c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc478d53ebb92e3f68b24ddd526524e010e1792f33a0ccbbd775a210ef753340c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_20500.json index d87d4ffcd..8426a587e 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_20500.json @@ -2,7 +2,7 @@ "modexp_49_2401_2401_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xb08c4e072c117459fcaa6feb5b0e4d5402963d911c82286574fbdaa17ce236cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "174746", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825254", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xb08c4e072c117459fcaa6feb5b0e4d5402963d911c82286574fbdaa17ce236cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb08c4e072c117459fcaa6feb5b0e4d5402963d911c82286574fbdaa17ce236cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb08c4e072c117459fcaa6feb5b0e4d5402963d911c82286574fbdaa17ce236cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb08c4e072c117459fcaa6feb5b0e4d5402963d911c82286574fbdaa17ce236cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_22000.json index 7040b0cf5..11c040925 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_22000.json @@ -2,7 +2,7 @@ "modexp_49_2401_2401_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_22000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "176127", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999823873", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x54a8c0ab653c15bfb48b47fd011ba2b9617af01cb45cab344acd57c924d56798" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x15c4201598ce69aa4022a9801384cb75998b3b53dd73a6019a356f4e8552afb8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x15c4201598ce69aa4022a9801384cb75998b3b53dd73a6019a356f4e8552afb8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_25000.json index fd2b47285..64e115d68 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_25000.json @@ -2,7 +2,7 @@ "modexp_49_2401_2401_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_25000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "176127", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999823873", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x54a8c0ab653c15bfb48b47fd011ba2b9617af01cb45cab344acd57c924d56798" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd778884b158c93775316d9a34fa3d27e3f235fbbc3abc127798ee21e92c21d01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd778884b158c93775316d9a34fa3d27e3f235fbbc3abc127798ee21e92c21d01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_35000.json index 0216b4f79..cd7c40bb4 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_49_2401_2401_35000.json @@ -2,7 +2,7 @@ "modexp_49_2401_2401_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_49_2401_2401_35000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "176127", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999823873", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x54a8c0ab653c15bfb48b47fd011ba2b9617af01cb45cab344acd57c924d56798" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x26b54f04e8cb2d53ad0dde9959d148fb0553cb7764b700aa85be792ab137a242", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x26b54f04e8cb2d53ad0dde9959d148fb0553cb7764b700aa85be792ab137a242", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5ed22d476cbd50da5d14a61f4972dfe1f8f0f1bf2ee4af9eabb15c60796ce854", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 49, exponent 2401 and modulus 2401 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760896004356004013511151558576004356004013560200160043560040161014037600261024061014051610160600060056305f5e0fff11558576002610220526102206022806102808284600060046015f150505061028080516020820120905060005561028060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_1000000.json index b92bf683d..58b2fe798 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_1000000.json @@ -2,7 +2,7 @@ "modexp_55190_55190_42965_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_1000000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "184042", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999815958", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xc180ec8d162fccdd700a086100d56543bccabfc357ba4c070df23a92790537bb" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x204d61a853440aa3674a6167de390d4f9c5d76dd35ca07e7bb988521d1766b15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x204d61a853440aa3674a6167de390d4f9c5d76dd35ca07e7bb988521d1766b15", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x906f94445ac7753feaf4a6eb0a072766dcce766b2eed6f62b2b76af178131c5b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_155000.json index 23ba2ed60..aa58ad450 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_155000.json @@ -2,7 +2,7 @@ "modexp_55190_55190_42965_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_155000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "184042", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999815958", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xc180ec8d162fccdd700a086100d56543bccabfc357ba4c070df23a92790537bb" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe96c2dd7dfb518095fd8d6d0266543283ff42b48feec463b7371345b4a024a2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe96c2dd7dfb518095fd8d6d0266543283ff42b48feec463b7371345b4a024a2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x906f94445ac7753feaf4a6eb0a072766dcce766b2eed6f62b2b76af178131c5b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_20500.json index 94d27f2e4..ce4127123 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_20500.json @@ -2,7 +2,7 @@ "modexp_55190_55190_42965_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0xfeb15b093ba01a540cdbb1d46961237855625e41aca31875231817de90298373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "180058", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999819942", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfeb15b093ba01a540cdbb1d46961237855625e41aca31875231817de90298373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfeb15b093ba01a540cdbb1d46961237855625e41aca31875231817de90298373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfeb15b093ba01a540cdbb1d46961237855625e41aca31875231817de90298373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfeb15b093ba01a540cdbb1d46961237855625e41aca31875231817de90298373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_22000.json index a05201e73..3072e6a5d 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_22000.json @@ -2,7 +2,7 @@ "modexp_55190_55190_42965_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_22000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "181558", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999818442", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbe005e7a45c02170b75a56d95e55e875016d5b8d1b563998ece4a605acfb8e04", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbe005e7a45c02170b75a56d95e55e875016d5b8d1b563998ece4a605acfb8e04", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbe005e7a45c02170b75a56d95e55e875016d5b8d1b563998ece4a605acfb8e04", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_25000.json index dcc6ec39e..12a112226 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_25000.json @@ -2,7 +2,7 @@ "modexp_55190_55190_42965_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_25000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "184042", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999815958", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xc180ec8d162fccdd700a086100d56543bccabfc357ba4c070df23a92790537bb" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x78cded0d21e6a338a5cbd4a9a2679a8e90475f0c9ea10602b963888da61c274e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x78cded0d21e6a338a5cbd4a9a2679a8e90475f0c9ea10602b963888da61c274e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x906f94445ac7753feaf4a6eb0a072766dcce766b2eed6f62b2b76af178131c5b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_35000.json index d91388d34..a7508533a 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_55190_55190_42965_35000.json @@ -2,7 +2,7 @@ "modexp_55190_55190_42965_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_55190_55190_42965_35000Filler.json" }, "env" : { @@ -10,137 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "184042", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999815958", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xc180ec8d162fccdd700a086100d56543bccabfc357ba4c070df23a92790537bb" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5f0fdee4137486a0a1ec376a6c8115f5aaf96577a62bf351069562eb9c34ffc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8a72f51d494591810d22a33f8dcb8d539ff83b3ef19191627d8ab2c74b3de5bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8a72f51d494591810d22a33f8dcb8d539ff83b3ef19191627d8ab2c74b3de5bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x906f94445ac7753feaf4a6eb0a072766dcce766b2eed6f62b2b76af178131c5b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 21847450052839212624230656502990235142567050104912751880812823948662932355190, exponent 21847450052839212624230656502990235142567050104912751880812823948662932355190 and modulus 1461501637330902918203684832716283019655932542965 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760d86004356004013511151558576004356004013560200160043560040161014037601461028061014051610160600060056305f5e0fff11558576014610260526102606034806102c08284600060046017f15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_1000000.json b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_1000000.json index c08186409..e523ced10 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_1000000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_1000000.json @@ -2,7 +2,7 @@ "modexp_9_37111_37111_1000000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.b352d835.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_1000000Filler.json" }, "env" : { @@ -10,147 +10,177 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "EIP158" : [ - { - "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Frontier" : [ - { - "hash" : "0x933a3d1303443b63d389b19b1614a8826aab2f945899a8c9fbc7d101d16e066d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Homestead" : [ - { - "hash" : "0x933a3d1303443b63d389b19b1614a8826aab2f945899a8c9fbc7d101d16e066d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] - } - ], - "Metropolis" : [ - { - "hash" : "0x437ba5a6e16c7e88f7e21640e213c08af07d073f902c25060994eb79043c970c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } }, - "logs" : [ - ] + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "329887", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999670113", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x3961ec903a448e057fbc76e10170d02f15b9b65c2f7fc8215f611ec6dc74cf91" + } + } } - ] - }, + } + ], + "explanation" : "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 1000000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_155000.json b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_155000.json index 995793b1b..1fc7c1bfe 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_155000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_155000.json @@ -2,7 +2,7 @@ "modexp_9_37111_37111_155000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_155000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "326730", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999673270", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe9695b10d5a72846382fba0293e877097bf8b14fc916029625b58e6ffb3a91b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe9695b10d5a72846382fba0293e877097bf8b14fc916029625b58e6ffb3a91b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe9695b10d5a72846382fba0293e877097bf8b14fc916029625b58e6ffb3a91b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 155000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_20500.json b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_20500.json index a63654e7c..f49d4827c 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_20500.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_20500.json @@ -2,7 +2,7 @@ "modexp_9_37111_37111_20500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_20500Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x60ac2b6aa114748d27229da002f8f6f23773fdebf6016970ce40eb50298c4807", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "192230", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999807770", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x60ac2b6aa114748d27229da002f8f6f23773fdebf6016970ce40eb50298c4807", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x60ac2b6aa114748d27229da002f8f6f23773fdebf6016970ce40eb50298c4807", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x60ac2b6aa114748d27229da002f8f6f23773fdebf6016970ce40eb50298c4807", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x60ac2b6aa114748d27229da002f8f6f23773fdebf6016970ce40eb50298c4807", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 20500 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_22000.json b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_22000.json index b96cc7386..e07ae8d0a 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_22000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_22000.json @@ -2,7 +2,7 @@ "modexp_9_37111_37111_22000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_22000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "193730", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999806270", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x46eed535bcc6a90365001e2c0f1a8a5a3942abd59d2a329d60df3e5be8dbe4d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x46eed535bcc6a90365001e2c0f1a8a5a3942abd59d2a329d60df3e5be8dbe4d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x46eed535bcc6a90365001e2c0f1a8a5a3942abd59d2a329d60df3e5be8dbe4d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 22000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_35000.json b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_35000.json index 8798c99e8..a3d164f22 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_35000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_9_37111_37111_35000.json @@ -2,7 +2,7 @@ "modexp_9_37111_37111_35000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_37111_37111_35000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "206730", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999793270", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2fe33fc1963b1d4aeeafb3278bcef8221cf2bb8d3754a5760557021e5dcb8c6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2fe33fc1963b1d4aeeafb3278bcef8221cf2bb8d3754a5760557021e5dcb8c6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2fe33fc1963b1d4aeeafb3278bcef8221cf2bb8d3754a5760557021e5dcb8c6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 35000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/modexp_9_3711_37111_25000.json b/GeneralStateTests/stPreCompiledContracts/modexp_9_3711_37111_25000.json index 295d27b5a..c600e9735 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp_9_3711_37111_25000.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp_9_3711_37111_25000.json @@ -2,7 +2,7 @@ "modexp_9_3711_37111_25000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexp_9_3711_37111_25000Filler.json" }, "env" : { @@ -10,137 +10,176 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x1", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", - "post" : { - "EIP150" : [ - { - "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "196730", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999803270", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x60c91f6a72960f77a772373d8a645ce35bc7e7f601421547df31212e9b1db59d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa9e1762293cec0b6c6b025b3bf5294ace20f84be9d012f944d5cf9be68044fbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa9e1762293cec0b6c6b025b3bf5294ace20f84be9d012f944d5cf9be68044fbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa9e1762293cec0b6c6b025b3bf5294ace20f84be9d012f944d5cf9be68044fbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the base 9, exponent 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 and modulus 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137111 into the MODEXP precompile, saves the hash of the result. Gives the execution 25000 gas", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0202fa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131834", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd06", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868166", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576101856004356004013511151558576004356004013560200160043560040161014037608061034061014051610160600060056305f5e0fff115585760806103205261032060a0806103e08284600060046022f15050506103e08051602082012090506000556103e060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } diff --git a/GeneralStateTests/stPreCompiledContracts/sec80.json b/GeneralStateTests/stPreCompiledContracts/sec80.json index e13ffb075..e48a40db2 100644 --- a/GeneralStateTests/stPreCompiledContracts/sec80.json +++ b/GeneralStateTests/stPreCompiledContracts/sec80.json @@ -2,81 +2,48 @@ "sec80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/sec80Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x20caf0e4334c49b11ba73bde2d58db4133c4e5b45e517fb8a56ad0be7fb6b7b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0xc001f00d" + } } } - ], - "EIP158" : [ - { - "hash" : "0x20caf0e4334c49b11ba73bde2d58db4133c4e5b45e517fb8a56ad0be7fb6b7b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x561bf5ed8918949a2bdb15003334f0c487da57a350317346d02c92c9a4d32b88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x561bf5ed8918949a2bdb15003334f0c487da57a350317346d02c92c9a4d32b88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x20caf0e4334c49b11ba73bde2d58db4133c4e5b45e517fb8a56ad0be7fb6b7b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", "code" : "0x601b565b6000555b005b630badf00d6003565b63c001f00d6003565b7319e7e376e7c213b7e7e7e46cc70a5dd086daff2a7f22ae6da6b482f9b1b19b0b897c3fd43884180a1c5ee361e1107a1bc635649dda600052601b603f537f16433dce375ce6dc8151d3f0a22728bc4a1d9fd6ed39dfd18b4609331937367f6040527f306964c0cf5d74f04129fdc60b54d35b596dde1bf89ad92cb4123318f4c0e40060605260206080607f60006000600161fffff21560075760805114601257600956", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Call1MB1024Calldepth.json b/GeneralStateTests/stQuadraticComplexityTest/Call1MB1024Calldepth.json index 162f9c78d..8e601c143 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Call1MB1024Calldepth.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Call1MB1024Calldepth.json @@ -1,124 +1,119 @@ { "Call1MB1024Calldepth" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Call1MB1024CalldepthFiller.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xcd79195900", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc984998b8052ddaab793053cb1aedd9d5c1a29c83cc85f67181a2d702ddc6f4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb8e0db77fd8d5ec9d189830716c4fb5c9d5fcc46e549c0747c7be87c8967c37a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc984998b8052ddaab793053cb1aedd9d5c1a29c83cc85f67181a2d702ddc6f4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb8e0db77fd8d5ec9d189830716c4fb5c9d5fcc46e549c0747c7be87c8967c37a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc984998b8052ddaab793053cb1aedd9d5c1a29c83cc85f67181a2d702ddc6f4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x7461fbfc0748c82d2c4633ffcadddb667269d903e6a57953e467fce356c8dd5c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x60016000540160005561040060005410601b5760016002556047565b60006000620f42406000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03f16001555b", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0xc984998b8052ddaab793053cb1aedd9d5c1a29c83cc85f67181a2d702ddc6f4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7461fbfc0748c82d2c4633ffcadddb667269d903e6a57953e467fce356c8dd5c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc984998b8052ddaab793053cb1aedd9d5c1a29c83cc85f67181a2d702ddc6f4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xb8e0db77fd8d5ec9d189830716c4fb5c9d5fcc46e549c0747c7be87c8967c37a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "139425287", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x60016000540160005561040060005410601b5760016002556047565b60006000620f42406000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03f16001555b", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x45", + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x60016000540160005561040060005410601b5760016002556047565b60006000620f42406000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03f16001555b", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) [[ 0 ]] (+ @@0 1) (if (LT @@0 1024) [[ 1 ]] (CALL (- (GAS) 1005000) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 1000000 0 0) [[ 2 ]] 1 ) }", + "nonce" : "0", "storage" : { } } @@ -128,15 +123,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Call50000.json b/GeneralStateTests/stQuadraticComplexityTest/Call50000.json index 985b2200f..9b803abca 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Call50000.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Call50000.json @@ -1,124 +1,76 @@ { "Call50000" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Call50000Filler.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x33428f00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "860000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0fa39008ba4b37231b491523181a196faa2192cf7d19204b19c75c327a2859f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbcf1363e4625397ee22293d638b356caf986b363393a1354788211699dbc6056", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0fa39008ba4b37231b491523181a196faa2192cf7d19204b19c75c327a2859f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xbcf1363e4625397ee22293d638b356caf986b363393a1354788211699dbc6056", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b61c3506080511015603f576000600061c3506000600173aaaf5374fce5edbc8e2a8697c15331677e6ebf0b610640f16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0x0fa39008ba4b37231b491523181a196faa2192cf7d19204b19c75c327a2859f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbcf1363e4625397ee22293d638b356caf986b363393a1354788211699dbc6056", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0fa39008ba4b37231b491523181a196faa2192cf7d19204b19c75c327a2859f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbcf1363e4625397ee22293d638b356caf986b363393a1354788211699dbc6056", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0fa39008ba4b37231b491523181a196faa2192cf7d19204b19c75c327a2859f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbcf1363e4625397ee22293d638b356caf986b363393a1354788211699dbc6056", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015603f576000600061c3506000600173aaaf5374fce5edbc8e2a8697c15331677e6ebf0b610640f16000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 1600 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } } @@ -128,15 +80,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Call50000_ecrec.json b/GeneralStateTests/stQuadraticComplexityTest/Call50000_ecrec.json index 11ce50a82..5d933e8cb 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Call50000_ecrec.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Call50000_ecrec.json @@ -1,117 +1,63 @@ { "Call50000_ecrec" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Call50000_ecrecFiller.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xaf8d734450c75798d1c17bc00806447452c2df2eefe7197d5c168b347798ce1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6a5f7a73dede5653b97aefbc94525f8aeac9cde986a7e479d447c908ff49e2e0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xaf8d734450c75798d1c17bc00806447452c2df2eefe7197d5c168b347798ce1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x6a5f7a73dede5653b97aefbc94525f8aeac9cde986a7e479d447c908ff49e2e0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b61c3506080511015602c576000600061c3506000600160016101f4f16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0xaf8d734450c75798d1c17bc00806447452c2df2eefe7197d5c168b347798ce1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6a5f7a73dede5653b97aefbc94525f8aeac9cde986a7e479d447c908ff49e2e0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaf8d734450c75798d1c17bc00806447452c2df2eefe7197d5c168b347798ce1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6a5f7a73dede5653b97aefbc94525f8aeac9cde986a7e479d447c908ff49e2e0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaf8d734450c75798d1c17bc00806447452c2df2eefe7197d5c168b347798ce1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6a5f7a73dede5653b97aefbc94525f8aeac9cde986a7e479d447c908ff49e2e0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", - "code" : "0x5b61c3506080511015602c576000600061c3506000600160016101f4f16000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 500 1 1 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } } @@ -121,15 +67,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Call50000_identity.json b/GeneralStateTests/stQuadraticComplexityTest/Call50000_identity.json index 1861f4ee0..2a2301578 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Call50000_identity.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Call50000_identity.json @@ -1,117 +1,63 @@ { "Call50000_identity" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Call50000_identityFiller.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x3499e1a0", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "882500000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbb08ea40982ef6a1bbca3261d39c3e36e9be4bf0e4c68d3462ff6ee44d2582ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc8cb815929dbe10fdd16e248cfb72bbd06327232c7cfff773c5dcdf97e3bf59c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xbb08ea40982ef6a1bbca3261d39c3e36e9be4bf0e4c68d3462ff6ee44d2582ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xc8cb815929dbe10fdd16e248cfb72bbd06327232c7cfff773c5dcdf97e3bf59c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b61c3506080511015602c576000600061c35060006001600461061cf16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0xbb08ea40982ef6a1bbca3261d39c3e36e9be4bf0e4c68d3462ff6ee44d2582ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc8cb815929dbe10fdd16e248cfb72bbd06327232c7cfff773c5dcdf97e3bf59c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbb08ea40982ef6a1bbca3261d39c3e36e9be4bf0e4c68d3462ff6ee44d2582ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc8cb815929dbe10fdd16e248cfb72bbd06327232c7cfff773c5dcdf97e3bf59c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbb08ea40982ef6a1bbca3261d39c3e36e9be4bf0e4c68d3462ff6ee44d2582ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc8cb815929dbe10fdd16e248cfb72bbd06327232c7cfff773c5dcdf97e3bf59c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015602c576000600061c35060006001600461061cf16000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 1564 4 1 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } } @@ -121,15 +67,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Call50000_identity2.json b/GeneralStateTests/stQuadraticComplexityTest/Call50000_identity2.json index 5374b6127..017f287c3 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Call50000_identity2.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Call50000_identity2.json @@ -1,117 +1,63 @@ { "Call50000_identity2" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Call50000_identity2Filler.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x3499e1a0", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "882500000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcfeb11043afeddaa25c63f4aac33a65550c2fe299651a304c7578c1d9a16fc2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2a930bdc92deb2ef16c52218f68ba0dbf8ef9f04043486fa34230c889acc8fa9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcfeb11043afeddaa25c63f4aac33a65550c2fe299651a304c7578c1d9a16fc2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x2a930bdc92deb2ef16c52218f68ba0dbf8ef9f04043486fa34230c889acc8fa9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x602a6001525b61c350608051101560325761c350600161c35060006001600461061cf16000556001608051016080526005565b608051600155600151600255", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0xcfeb11043afeddaa25c63f4aac33a65550c2fe299651a304c7578c1d9a16fc2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2a930bdc92deb2ef16c52218f68ba0dbf8ef9f04043486fa34230c889acc8fa9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcfeb11043afeddaa25c63f4aac33a65550c2fe299651a304c7578c1d9a16fc2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2a930bdc92deb2ef16c52218f68ba0dbf8ef9f04043486fa34230c889acc8fa9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcfeb11043afeddaa25c63f4aac33a65550c2fe299651a304c7578c1d9a16fc2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2a930bdc92deb2ef16c52218f68ba0dbf8ef9f04043486fa34230c889acc8fa9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x602a6001525b61c350608051101560325761c350600161c35060006001600461061cf16000556001608051016080526005565b608051600155600151600255", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) [ 1 ] 42 (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 1564 4 1 0 50000 1 50000) ) [[ 1 ]] @i [[ 2 ]] @1 }", + "nonce" : "0", "storage" : { } } @@ -121,15 +67,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Call50000_rip160.json b/GeneralStateTests/stQuadraticComplexityTest/Call50000_rip160.json index 51a7caa54..452a129e9 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Call50000_rip160.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Call50000_rip160.json @@ -1,117 +1,63 @@ { "Call50000_rip160" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Call50000_rip160Filler.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xe9f2bf40", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3925000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4165b7d3874bb45faa9d4bc3434f31c7f0f4633bfd0ed8cc3f68a3642a581333", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xea1fe86bd3ecb80ed0c9efb33a60cf2ee6c4fd6e92d2c558ed7c80d9f3d6d780", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4165b7d3874bb45faa9d4bc3434f31c7f0f4633bfd0ed8cc3f68a3642a581333", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xea1fe86bd3ecb80ed0c9efb33a60cf2ee6c4fd6e92d2c558ed7c80d9f3d6d780", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b61c3506080511015602d576000600061c35060006001600362013178f16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0x4165b7d3874bb45faa9d4bc3434f31c7f0f4633bfd0ed8cc3f68a3642a581333", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xea1fe86bd3ecb80ed0c9efb33a60cf2ee6c4fd6e92d2c558ed7c80d9f3d6d780", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4165b7d3874bb45faa9d4bc3434f31c7f0f4633bfd0ed8cc3f68a3642a581333", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xea1fe86bd3ecb80ed0c9efb33a60cf2ee6c4fd6e92d2c558ed7c80d9f3d6d780", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4165b7d3874bb45faa9d4bc3434f31c7f0f4633bfd0ed8cc3f68a3642a581333", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xea1fe86bd3ecb80ed0c9efb33a60cf2ee6c4fd6e92d2c558ed7c80d9f3d6d780", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015602d576000600061c35060006001600362013178f16000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 78200 3 1 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } } @@ -121,15 +67,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Call50000_sha256.json b/GeneralStateTests/stQuadraticComplexityTest/Call50000_sha256.json index d042aff3b..1cd81bf2b 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Call50000_sha256.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Call50000_sha256.json @@ -1,117 +1,106 @@ { "Call50000_sha256" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Call50000_sha256Filler.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xe9f2bf40", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3925000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd145456acb4bde15a5465e1eae80bbb67f01113a8efc6b0cbe5cba4a04318885", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6c436e76d01c619063be64d44041e66a4390fc121940151088c4ee78a89fa2b2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd145456acb4bde15a5465e1eae80bbb67f01113a8efc6b0cbe5cba4a04318885", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6c436e76d01c619063be64d44041e66a4390fc121940151088c4ee78a89fa2b2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd145456acb4bde15a5465e1eae80bbb67f01113a8efc6b0cbe5cba4a04318885", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x6c436e76d01c619063be64d44041e66a4390fc121940151088c4ee78a89fa2b2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b61c3506080511015602d576000600061c35060006001600262013178f16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0xd145456acb4bde15a5465e1eae80bbb67f01113a8efc6b0cbe5cba4a04318885", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6c436e76d01c619063be64d44041e66a4390fc121940151088c4ee78a89fa2b2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd145456acb4bde15a5465e1eae80bbb67f01113a8efc6b0cbe5cba4a04318885", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x6c436e76d01c619063be64d44041e66a4390fc121940151088c4ee78a89fa2b2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "0000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b61c3506080511015602d576000600061c35060006001600262013178f16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015602d576000600061c35060006001600262013178f16000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 78200 2 1 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } } @@ -121,15 +110,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_1.json b/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_1.json index d01d90c89..d035ce113 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_1.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_1.json @@ -1,124 +1,121 @@ { "Call50000bytesContract50_1" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Call50000bytesContract50_1Filler.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xcd79195900", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x79363a45a1095911841981c2f90a1d82b704ae2940a306bcb69fe62a857d93ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x84826466d2926e32a3e2dcfc55e1cc3062c51d303fcab06ad111e3be04c9a698", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x79363a45a1095911841981c2f90a1d82b704ae2940a306bcb69fe62a857d93ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x84826466d2926e32a3e2dcfc55e1cc3062c51d303fcab06ad111e3be04c9a698", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x79363a45a1095911841981c2f90a1d82b704ae2940a306bcb69fe62a857d93ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xac8748a3507455ac0fdfb2791a67f8e4c616200a1476bd3de34d1c5ba32cb602", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x6001600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b603260805110156040576000600060006000600073aaa50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280f16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x79363a45a1095911841981c2f90a1d82b704ae2940a306bcb69fe62a857d93ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xac8748a3507455ac0fdfb2791a67f8e4c616200a1476bd3de34d1c5ba32cb602", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x79363a45a1095911841981c2f90a1d82b704ae2940a306bcb69fe62a857d93ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x84826466d2926e32a3e2dcfc55e1cc3062c51d303fcab06ad111e3be04c9a698", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x6001600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x4e21" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "6610454", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b603260805110156040576000600060006000600073aaa50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280f16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x32" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", "code" : "0x6001600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b603260805110156040576000600060006000600073aaa50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280f16000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (CALL 88250000000 0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", "storage" : { } } @@ -128,15 +125,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_2.json b/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_2.json index 35e75cfef..bd06773db 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_2.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_2.json @@ -1,124 +1,121 @@ { "Call50000bytesContract50_2" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Call50000bytesContract50_2Filler.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xcd79195900", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x76f864f78a6bc06173c1ffb865750c779a9784003265f1257c9d3b3415ded27f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7d413e02fb26bf9ca682fbd0ab95b2c0966558e59838e8df455bdadfac934c9d", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x76f864f78a6bc06173c1ffb865750c779a9784003265f1257c9d3b3415ded27f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7d413e02fb26bf9ca682fbd0ab95b2c0966558e59838e8df455bdadfac934c9d", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x76f864f78a6bc06173c1ffb865750c779a9784003265f1257c9d3b3415ded27f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x89a9c68e7e58f0f63342464b51b0954bfc19e0e4a3542950a33c1b7e48af6c04", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b603260805110156040576000600060006000600073aaa50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280f16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x76f864f78a6bc06173c1ffb865750c779a9784003265f1257c9d3b3415ded27f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x89a9c68e7e58f0f63342464b51b0954bfc19e0e4a3542950a33c1b7e48af6c04", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x76f864f78a6bc06173c1ffb865750c779a9784003265f1257c9d3b3415ded27f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x7d413e02fb26bf9ca682fbd0ab95b2c0966558e59838e8df455bdadfac934c9d", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x02" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "3610754", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b603260805110156040576000600060006000600073aaa50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280f16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x32" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", "code" : "0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b603260805110156040576000600060006000600073aaa50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280f16000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (CALL 88250000000 0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", "storage" : { } } @@ -128,15 +125,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_3.json b/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_3.json index 01da16d9a..46222a911 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_3.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_3.json @@ -1,124 +1,121 @@ { "Call50000bytesContract50_3" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Call50000bytesContract50_3Filler.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xcd79195900", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc19821d2c6cf1aeea3a306cb4cceeb9292e6f4815427e988e35592853c6b2cbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5606f3b4b3f7b8e6b04d77f3de8ef850761658a0a82f26ccf2d1ff0a596f76a2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc19821d2c6cf1aeea3a306cb4cceeb9292e6f4815427e988e35592853c6b2cbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5606f3b4b3f7b8e6b04d77f3de8ef850761658a0a82f26ccf2d1ff0a596f76a2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc19821d2c6cf1aeea3a306cb4cceeb9292e6f4815427e988e35592853c6b2cbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x469d58b6851cd07454edc299d4a71b7e47a2e10418623b4c9843650aff3b4d18", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x600161da8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b603260805110156040576000600060006000600073aaa50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280f16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0xc19821d2c6cf1aeea3a306cb4cceeb9292e6f4815427e988e35592853c6b2cbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x469d58b6851cd07454edc299d4a71b7e47a2e10418623b4c9843650aff3b4d18", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc19821d2c6cf1aeea3a306cb4cceeb9292e6f4815427e988e35592853c6b2cbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x5606f3b4b3f7b8e6b04d77f3de8ef850761658a0a82f26ccf2d1ff0a596f76a2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x600161da8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x02" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "814104", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b603260805110156040576000600060006000600073aaa50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280f16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x32" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", "code" : "0x600161da8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b603260805110156040576000600060006000600073aaa50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280f16000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (CALL 88250000000 0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", "storage" : { } } @@ -128,15 +125,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Callcode50000.json b/GeneralStateTests/stQuadraticComplexityTest/Callcode50000.json index b527188db..2e4b19f40 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Callcode50000.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Callcode50000.json @@ -1,124 +1,76 @@ { "Callcode50000" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Callcode50000Filler.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0200999600", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "8600000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5282cd6886b4b6eb8f27ebbb6dcf16f55f3506b011e2eda340300c7ddca7a99a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x85a4897fec73dcb66fd8d0c06a313480f7fb49e722554a7de90f8bc9688e6060", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5282cd6886b4b6eb8f27ebbb6dcf16f55f3506b011e2eda340300c7ddca7a99a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x85a4897fec73dcb66fd8d0c06a313480f7fb49e722554a7de90f8bc9688e6060", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b61c3506080511015603f576000600061c3506000600173aaaf5374fce5edbc8e2a8697c15331677e6ebf0b610640f26000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0x5282cd6886b4b6eb8f27ebbb6dcf16f55f3506b011e2eda340300c7ddca7a99a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x85a4897fec73dcb66fd8d0c06a313480f7fb49e722554a7de90f8bc9688e6060", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5282cd6886b4b6eb8f27ebbb6dcf16f55f3506b011e2eda340300c7ddca7a99a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x85a4897fec73dcb66fd8d0c06a313480f7fb49e722554a7de90f8bc9688e6060", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5282cd6886b4b6eb8f27ebbb6dcf16f55f3506b011e2eda340300c7ddca7a99a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x85a4897fec73dcb66fd8d0c06a313480f7fb49e722554a7de90f8bc9688e6060", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015603f576000600061c3506000600173aaaf5374fce5edbc8e2a8697c15331677e6ebf0b610640f26000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALLCODE 1600 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } } @@ -128,15 +80,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Create1000.json b/GeneralStateTests/stQuadraticComplexityTest/Create1000.json index ff1c43d3d..e4e9b069b 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Create1000.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Create1000.json @@ -1,117 +1,14103 @@ { "Create1000" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Create1000Filler.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0200999600", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "8600000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x06c5d14ef7a87710e69a4deaf77ab1b6d34491784d76a5fdcbd24b00cc361dc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x657ed4b41f1d0db9069e707fe17e8a7247ab9175337792de9e2da93ba132c745", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x06c5d14ef7a87710e69a4deaf77ab1b6d34491784d76a5fdcbd24b00cc361dc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x66ee7d6ddc316e0a912c5029be47db7f699fd576f3eed2c6077c12a90343e7e2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x06c5d14ef7a87710e69a4deaf77ab1b6d34491784d76a5fdcbd24b00cc361dc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x657ed4b41f1d0db9069e707fe17e8a7247ab9175337792de9e2da93ba132c745", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "010d8b0816e30ff51ba07678c64b272cdeddb807" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "014830fe159f418212e5c39b4b2e2ddc7b295395" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0198014bab0c420093975c147de1d795b02a6667" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "01a763e7767b586a82d994dfb37611db8ccd1911" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "01e329fd650bc9f99b371aa50cd4743ff25e47dd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "02553b467cabf4c2fd4592b8ae7653b7ee694e07" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0257985d8f6768effee9ba112ecb064a0850d1ed" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "02700a270cd3c1ee67b84e7d67c3b5f6e0b29f51" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "02d69efdbc8f434943906f2e7d87cd22db598a89" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "032808497d781d8d16f914b2d441ebb2bb593384" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0335b9d766b0bb7af88cd920588f24f22376fac1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "035b911b047f1f477e76ebae32b2bb8dcae4c7a8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "03933dbf7eb550a009dd6377bbd04dc6c6c50772" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "03ab29d81c4cfeffe4c755c0d5812a13f7d7d1ec" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0443d33cbefcfb9dedd1885b4c58b06cb1bb0c09" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "049fb0441a42f06eafcc180a78b35a1012e97b94" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "04ab1352cf2e4e27b85b9ac1146931a2ce13559b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "04cd429f6c5242cc74bfe335b56b68b512bf6426" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "04e572b004547e50597b764eee920ee48dc7cbb9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "04fa8b2ee08882d077c19d6f5737f4d7b57e33c4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "05500ca5e62af91ab7b8cccee577b065119b287f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "059dd7e608d79a5e818e1997ac2407d68381c793" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "05a49ddff6dbe8392fdfcb4927aaf6f70a7d5c0a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "061cdaf9d71ec7c6192391d14695af965ea80c1a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "06a7efc0228d88fc9b88b224a0c99ad867420a8a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "06b998130db9bec05264fec9d2b27664d702598b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0702e87cc6d6864c08f02ea524cdfdd459cee285" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "07552ad3334cad2b0c1ac94bd130a555963a2258" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "07723f62a6297c8cc7d656319eff3800493e51fa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "078ca3839c9926e3b2eca883b38d5c65e12da563" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0798357a304265cd4a3d7e953f3812edd7e0eb4d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0799f761106a0847e1306e555f141f022c2f9f3f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "07a282c32c39fdd6b128176c8c3b52d6af21d9e8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "07ef1ea78ee3cf9c8a3896c874a2d003966608de" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "082357316517023a2786e3f7fc74c4490d970fe4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0865e8c4d8389a8d924d04a6287934bc8f0d98d6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "088b4e56d69e6a4d8bc73027e82f8a050ab79e80" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "08b67cb13ab21ae56edc4a8df5fb0410cef3bb9f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "095973ecdf8d1b31627352d2ec7321e6756759ee" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0997d91d9771884cb0fc3f7d0f093f48cabeb8cd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "099f80aa181d00606bd53c76079a14da270e6627" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "09dbb1c8d2776509ebe890ab55d55d1faa73cc87" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0a20c2f7263031313ead390e63406f0844d267c1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0a49af34d62ae3e9542bdb9f1e59d5e70f423ded" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0a4b2b5995f4ead219106163141e9f874f8039fa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0a539b21f5563e895b6c985048912b2c609d9da6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0a9c010a494f211fc0528c6ac587473b8ee04c41" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0b0cab4e100e056a393bdee4972c66dcd542d402" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0b729ea6b7327a5363ffa02c554fdb5b308f640b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0b96d525b228beff0b0eedbb112c5211a15703f6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0bb51d28e660165a1e0782a7d0b9a66844fdf54c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0c6a8f1bf692cb9e4f9d9c5a2785d58edfd42457" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0ca14ef5b0976bddef46204521fcb6062b7f396b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0ca3ee69fbc2e31842660f5750af17f7b1246e21" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0d1617a822a4ec87d6c88d9e1a31cfe44c99434d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0d42d597a7098b78040361cd713bd95ee5bb84c5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0d466956ecb29940775f4a061802a7404b676592" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0d5c741796fe4cf133d5d33e9fbc7810b20c5571" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0d5e639ee1a394ac0358d58885d4907b44d0a703" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0d9cd09a6449b175e7d9e8362cbf776806d22cba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0e2eb861a1b01e73fd7726bae7b4b7180c794be3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0e3a1ef060de6cf93805069c07e8823d7e73a70b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0e9c1494712e201312f6e85823128d6dd3174b28" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0e9f1eea6de465f409502ea73083317a38d9d543" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0ea98b0279b1ddd2763429b4316bdf87933922be" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0f0f1da7478a463867ce1edebb59ef73aeb40daa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0f21b189eda57a693241d08ca6627262c5bb2383" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "0f8e134ede18cc895645d31952b3da946ca19fdd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "101fc6eec48ede86f2ffd158815f95bc63276487" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1028ddcafe965ca7ceab58d444867312b2ac86b3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "104bdd8abeb1204a88c4604b51dcccb39a26d36a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "107c9937646385dd1f9cbe6945792981b43f30b9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "10837f42f42e8e7c8bfd62833c51bc3a548ee264" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "10a3c117746c5052cbf22845865cbc9027980116" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "10a97ab41e5f0109b89dff8e0ac2ae11853f909d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "113bb3228779547e161ebe52451ffac05f828f87" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1140145fed47dfd3b262a9b2b57c0028c36dfb4f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "116724c2251f6405ab8fc594b1cf9111b0febafa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "118646f82070676c137c4d4a0719aa3dd26d47a3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "11c30838bdff56cb889ac95e5cb31bc48c0aa44c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "11d7b9b130f3b5ddf23697daad1bd955c6d46779" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "11ef672a6fdf68df0366c3d843a0c9bb04241068" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "120dc6dd7a3d55e6a738dac1e222972d5d168401" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1210ff751f268def54257f0faf7350cfe3907b69" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "128f7df6a982dbff6f6f276e9795708c2bd13366" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "13b2eb455192806a9b170cee706c708ffc78f946" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "142b53191af23f31d3b4a82e67ce230049aa3657" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "14486ad838ad2506cb09a3e5d9ed0ed29e07e958" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "144ce1302585097c2f09157887d15c0b1b8b750f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "14a2368d0e1f1c1adbd51c97d3863ff51818c3f2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "15240d22f0f514f7595b89e1266507784bbc5587" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "15331acd083bde9e9827ca80fc5cc4d637d310f1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "158113ad3263c6ae0f29b2a5b0db01a000e32038" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "15c541321720a8b7eef5eb8a9a07cdb0a8fb2252" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "16369bd631d24189bc849dfdd0784123580b5a3d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "173cb3fc0b255470959bf271d32c2822e9fa6070" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "18512ce319695cb9762edea4a287584d8bdc57da" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "187c6d15319f4b76b9863c6e2b8f8ddc3562607d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "188d90297cc2c8d5577608c870fb462fc9f4bde5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "18bf8898e172720134b4add6cf5682402b61a1f0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "18c96d5ab4134e00cb9ed946902c941f80d01bb8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "19740a0a62b5e4677ae6db517ddab154e7605736" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "19815ddeb812fba85a2c73e994152da103a89a01" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "198d23bedd1a9fdbd4adb5760930f6877f5d142f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "199f034abb3009f0ab4c98bc5b1953f5e2cf00db" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "19b19f7e15713d840d7a845179ec476d7f659501" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "19f252dbf82a8ff169bf2a8316e5eefbfba2eb46" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1a3dd75e89fbf0cb4f64a7ecfde9c3e3ffcb352e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1a6023e0dfa17254306fa8e79ce687bff36e6ece" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1ab26bed8d1e8fd45a229c27f916a6dbf8f7dc87" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1ac456884a867c13fd1e76f7a141f5a8431350cd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1b095defbafaf131bec7cf86abb91717e0659253" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1b3784665abba102cbfcf800f65c994ad012655f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1b69c82daf72d5cec6ef8807f216e91d824cff67" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1b816f71823089d61850739a66ec3592e20a737d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1b8bbe35aa1856d219e1bcef09ade65699e73de2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1bfe95b2400f5764ec01bfa28b2b154e07380e13" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1c2725385e77ad2718b7da02bf516557bbe43b6c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1c48fde8cd664190b925b792fc226ecbe6268e96" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1cde8165fc6afc72be2fb635a5f34950ce4a47d5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1cf4d08a76326e7914698efcb56af1aef2c95a25" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1d0213ba59fcd0d83e987e3b653b61df04a58a10" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1d1f79f0e598ae8736dcd9d813568ee4b628d3e4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1d6c73441878d28b27309060b997b9355452b126" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1e03b8ef445ede3b3816b838d39f6b050fd24bc8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1e50cc8ca9ee613244482e8c803300c6b9ed5ef8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1e62678876b469be3809fbceee03d15c1863b3e0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1e939d59d1c1b04ed0839c20cc8552b5818fb9a6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1ea8de724f168d948a9eae2a27228daa4a686242" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1ee3048b60ec12782057b3df295e7214375e6d07" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1f3840b28b9287995a264c057d9b13f12f35d2ba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1f541f07a519010bc6cb86fb1817c37e8919c98b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1f8ed1f0665811021d080e36079ae5fb8f67f358" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1fcd6a2b695f2a9e3ba7a5f9639fe71a592ce336" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2040386737caa18577e395f552dd64e8d894466f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "204eb9e5c36f00c87a3a6da32b2ceb15e5e73812" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "205f80b08f8f706ef23062f24ed1bba4aaffe907" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "20823d3e0ab78d37dbd04259b0b4eb8a7b312474" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "208c9a446b8ff9e5d210c8b9ee4e9aa72d172a21" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2091850e2d75258c429a54d9683b81d2da404ab5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "20b741bf397f08b049906b6119d2cfb0ff58117c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "20ec5076500a09e56aadc2a21118d19a2987d3a4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "21bc225757bbe3fd4b14651cab09dfad4d6d6f93" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "21f63ea30b8ff26c8521daf58693b209966f2ff7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "224ca1e9543d7781ae513a95b553d9ba7e05a293" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "22a2b6e65bbd155b4dd06b143119d4190dca0647" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "22b0df58cd6f203accd9f9b8d1d59cc06c5555ac" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2336645345ad116b8714975b0d8e0354c0dc1418" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "23438426642848566492a1a6c9796809fa1393c6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2390b52e7c23284e27956aafc67fe7b79ebcd30a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "23b4f3334f81b5152ca330e073e22bac88170f5e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "240d79661fd0f5eab61e59b758e5cedab580937d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2426015b115f1c7b1c9ba68029c10604e451b695" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "246d78f188691fcf1127bec2837f2e01de1ee22f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "24ca38c8151510f3442b512d9e4648bfd640e1b9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "24ff3d52c14e3e33d89faf75a19bf23f5efd6a33" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "25c59011214645590d1aa544e26fc638e5219f35" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "25ccaeb276d37d2127216a9f22b6a46fab7e723b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "25e7091c2796f55e2609570d871e9d1dc4aad067" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "25ee4bd434ebf649337c1e98e0dee484a8333581" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "25f74e596b47df3c7a03bb95c80207a71f8297f8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2627eefd86df7644cd254103bd8d6948d578fdb9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2658359bd88a76af73ac3880f46964aefb99c791" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "266c09580d28c1c576e5c6b9adc926be1fecffb1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2682492fbc0036fbc5e99898b90083d9001a76d6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2689a44cb4a560692b1e16e5e3c4f06d6e574d78" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "26c212e8b44181094048e6a6ce797abc187eb19a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "26f05db3e28663e71cb17991ceaa842200b2b713" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "273b76f3cce02ad33321359071bd1296228da08e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "27a6575044eb46718523f8f11db4bbf571e487c3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "27f12534f2aca816413433fc8688abb54abef674" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2817bbcf29058ad94e233a5aec61a4da01477800" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "283934d586eb9a57cdcc6c1b32404ff25eaa7daa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2891b2135559c8915f2f5f4c0a7776beb897dd59" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "28bba3be0ecd66533f6f7334577572c68426ca7f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "28bd51c59b3866cc25099ec3bdbc29246953553b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "294d23e6b9bf101c81ae1aea51bad44a9ffec303" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2974232c8ee6b534f8b74614a7d24c51e1202fce" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "298152a083e9b3b38b395c290c75b07acd12db47" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "29a09cfe98c01e9b17eec88485c7d42560871681" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2a0148226c4634f1a76b562422c4ec7d82877c00" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2a3786b6f7fad925e7179daccc1d2fc721b24a26" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2afb3edb354199fe046f2e97c5bc40278e62c54f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2b0572ca0b832cbec75671e3750cb44ff50ff3f2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2b2e995649229266ab087f7d32a986a7e852daec" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2bb1a4356a3c8ca545d88eed0bf712cf74680add" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2c3b4655f9b65634f93fb661970c4c1c147cbe12" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2c3cc15b4cb1e180adbdabd98ae032b56fe6d7fd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2c6465f8fb5babf2e4b3ea2f7ddef105d57e7f30" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2ce5b24888df0d79fc17d9b397b25bc951b6573a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2d252dbebfe4513a4c6c8d829a423d7824651224" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2d2c9beb50614a69e97e4fc24a9cc7b91922d758" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2d9779ae8bf23410ab2e63fe7c4668c287f3ad8c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2e0bd15889379625aca50b5395ad4bf6ffa1517d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2e422e33311546db82e4246c98182897bcf09186" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2e7e4bde69b2cdeca19d62fa7c9a305d0fa31a7b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2eaf85e9e2347c9c5c77d8ac4f27372e6c466e6a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2eef1411189919efe97e2d914e9f6d15cd1cf51f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2f26216af378cea60e04f9096a14ccfe1233b29a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2f2e41c606b409983a8499f850f7ee8b0aaae61d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2f582c8aab605dcc8af561bd2f76596189f28625" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2ffa50ff4edd6a922355054f93cc593f9cfd2ae6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3009a9b9f770a457a894379638f59827718ea956" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "303de3d370f42d81a78431b8bd47349b134c3d17" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "30a5f6c307b5f69b3a7c2902b3346bbbe34875d0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "30c6c1397c9f46fedcdec22d74d209b00f7de2d7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "30e65e6d9b6612c47079da66fd5a43bb5bec1d27" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "31913592a581cc807f93f3d951eee70b300bb4d1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3217e0545fde37b12eb0acda60d61f87773799c5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3267dad9b9e4a733e7a84e967c98c98f5f448a06" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3272138c16e14151fbeb9e7d00b2297307a52964" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "32e9afc41121f0f050ccaf5541b42c845ae203eb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "33323bc6b88c194309094edc8987269b78a4a30c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3345193ba652115a1ef2ac2ed85548240e91556e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "33608e56555740f1547c7404acaf41ca45232819" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "339018463c238d7d08023d22de9e6cef064b7ebf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3497f89db5c5e1325da740a82354007b880552a5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "34ae1ac124ff6462cd13c76300beb67ede395854" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "34b571a17dc3802bb6a8832c4d3f3877ec967a2e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "34fcd39998691f0104e18da694acec206293530d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "351bc5c495f31053e3ccfda30fd39afd5eb0d0aa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3582855442b659adafa7ef954daa8d8723d1eb85" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "35f23e0f735bef49543a852cc5265a85a161aed9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "36005885ec75e749e89f0bca36c61c1691e42db0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3635d8cf004000ca80451a45fbdb1aa67903a463" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3674c043f29f5db66c939fff7399ef07ede6081b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "36c0828717046343376beafb62a76fd0ed2196ba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3700bc186799bc5cadc8200ee9e9a2d0966c340c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3768ece795d62e6865d73b64272691d184c0b375" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "379c86e7eff1a3bd68d22da0dea6a6ad5d2d6cf1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "37a9509614464f2d42ac5f0f309c986d1c4f1d14" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "37b4a1b0dc93f47ab1312551101c49e4b24f61ec" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "37d15aa9095d7f9b523f8647103d567236265045" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "37e85c5dc5bc4b1b3318f4285dce6f3e72402c1c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "38382e1ec7bf834f328feb3170293b1ae558aed0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "38392bdc7197e433a233c9828698660d5557a93b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "38a095ec9ea0daf4be1808da5b12caa3d77a16c2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "39048ba8246143555e7595e45733d64f2513b834" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "392890a7c6d31b51315e66e80355e6ff68332dbf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "39abdb8aad4e32c71ca627f76d40fcebdd46d60f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "39f336b8e98d5c4bfafea85a777d60e9d5c244ce" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3a3fc6aea2f2b1c1750c12af08702af0292377cd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3a6651437ab178489bfa330dd7f67c0b2420ec43" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3a773392ffac93471873a163df5790aebeead0df" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3ad8a76db16bd305a799181b926e9983d534b75d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3b06be64871fb3ee7b574c242e51e4d9c163a039" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3b33135c3700ec95fc834293881b7107c111b3c0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3babdd4b5eb311e92bdf031f550114d95fd01cbd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3beaa3d0efbecf820f7fc627bdc9835f52543327" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3c0263831d39694bf3b58d5375d9ce0db27792f3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3c20eff2b505ba8a07d73c6907792e5e62c01387" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3c2688cb842071adf96459488acd0b78c366b250" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3d59ff60a74f16356ad2d45a0f4e9e48011f4115" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3d690b25fff40652ea4c0f9783e7842484e77f4a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3d89747dbb90abed91fae2d16307c4a8ca0e720d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3d9d5f306cfc562da552cb6854e437b775d8973f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3db0373049f14bdd2d94d76d715034f1fc389ca1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3dc2953b1aa00ddf9b70046f6723c08dbfe21fa9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3e4cbcb451b84fcea988b93372251f347f6df49c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3ea8b910d412cd32b8f2b024d9d3841275464170" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3eba531d2ce3c36b983b804eebaa430d6ec5793a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3edd38effceb9429da12a0e8323a6332307cbaa8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3f594fcd0809bda9130e9852beff7504bc70b62f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3f970c3e880e17268049afe0136c5e4be06422f4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3f9bc5308394d40ca6ff3f6094fb474bcedebf2c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "3fb52462cf23a168a4e33ccfbddad996618a339c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "40987ecc1bba404142eb5b631d669da96aadb31a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "40f0cd7194719d63206a7c3b0b48148bd2168100" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "411f2f8c37ccd3200231d74103b719b07913f8bc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4121ee49b4e406ac1e1949b79e1359f8dcec6983" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "412b95cf0478e99a0c2214550e3914d59d77285d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "41c40ad8444d60a95c537b3492b8c53d740971e4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4217a0257d2b748a9d44fb1aaa0016fa2aba0159" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "422c691846a0233fd770fde7eedd648ebe89d615" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "428d4c02e39628749ec5fc26b3178a24d58ddc9b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "42957a5b33947f949f53986846f094887f79f331" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "42c61a89c77129afc9593f6e4f1d06f8aa04e8a6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "43054fde6e8ca7c290cca327cc8218f749d9660b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "443f785684c2d782ed90dd1f46d847402767e1bd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "444787f843814c81c835c613ff48ca65d68d022e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "445f9b4bab1a3fbcd38de15bb4bcc4d468837ead" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "44b2447950b2eb5becc32a9ed3a3df44d458c886" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4528ff2bb4d54715084dbbf7f524145b71671d27" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "454b39e53405eb18c4cf5378b913c56794d810d6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "462b26c42744c25a8b7e3c237624848d1f13595e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "46595fb275f5501732f5f31a911102ddb4574730" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "46637898ef2166e3899e1cba8dac0e82c2b00a11" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4749597cfb4dd62b93b4343dcadb938e4805e298" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "475e2078f0195d455234aeee4cd04a3a794e1ca3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "487a53afc104cc90c92d1e6dd4eb137f6d23abda" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "49198360b42d89332f8cc121182e071493045c40" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "49365c5a3e3b401c2e68eb6055254fba299c611a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "495092879cfee806668a7f1196191207a653440a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "49b1871b4e9f757f362feed9003ad48b41dba503" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4a35ad2c1c7d586791c3395a6253fdde733ed3a8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4a960613d5b07952c72a36172475b5401b9516d9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4b05781e8f4b12ae297d6821116830459e54ba0d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4b0ab2a0a3b097d5ef55d5e8a9f091173df887f7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4b275af942e73ae9bd1be00b60647c7eefacdf52" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4b8b73be27b46466c8912bc07d7cb97dfbd8eb27" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4ba66e08a50f50398d08a29cc7a13c4989c101cc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4bfef69c0015b2270919c371f5a1b7e8db10184e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4cc61d37eec8e5eaae48be10cbdd1e44eb4306f8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4cd28b4590fb99eb47b6979c0f09bfc7c1a15690" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4d0cf20258ed41de8b0c9a74d5f0b84c884a9772" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4d2902c4616aee92e08c204785dbe0416abbdb9f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4d5284034fb6cdaaaa7b2ebc2c6a824cd8ab1597" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4d7cf42e59702e74063a05fecf6ce1c7a1896cd9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4dac6dcba6610fa0594d0f8e04be66340202a6b8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4e0ac27dc3aef9670ff66a9b1eb4696a8578929d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4e287173b52240f0cabf604adb362b7ff96c284a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4e636fbe6f0f537a9dd92d0cba94114eee6ac3a6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "4eecf547e1c4f77daa0e65488f2c295a94a95d2d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "50bce47d7833dd4d1eeca63cb523afda39c70c95" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "51bf7a376150c57be4c9922dc118fed709f692e0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "526a94150efa1c7d4299bc9bd9e3deec8336a72a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "52b092409ae9d918623d3dc6ce4f98d116cb9a92" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "534577bbedc29af7e45f9c77984faea7cca830db" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "536fa395071529a74edf1b249f7029c9a049ed17" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "54301edc4804abb6372e684b1261a2c487ce38aa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5446b11f635ddb363e1fc1d486774e5b7539aeb8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "54a8081db5834ac1a3f551d33730bbfb8ee78d0e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "54bd03f4f50a9e3b0a3235c0c5ba9a47b4598114" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "54e49bc52f5e367fc427b17e9352dd53686b885e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5523d77b3b76f6290413b3d27401ed359b3afc9f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "55e40554287b41e9cd5f73c46e9e2a2f142a5fa5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "55f28d96933e16e1cb7b54702545911ddcbdd7ec" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "55f311e43b18a2250c12417628306279ef3ea79d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "560046d949c8ba03aacb63fb7cbe4a5b2563d705" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "56cfafa62000e9b801b4119a01dd711180fa9e3a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "56eaa411789dc13fa7878bf822901a020e5e4dc1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "56ee02e287260f94c94073fc368e0d03a94880e1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5724acafe0c60bf4abeb00b4824c3130e32a6ba1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "573993d127978691696a2ff5dc15a9fc37f410c1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "578088188b9bb90dd124fb5dccfdf885f6d75af7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "57b2ae840a37ea52250dcdacbb0568357ab40eb8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5825eef096feb72ec4ac6158fae36d2b58ab3dc5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "584b1d9f374821f1890b86128ecec3d2ad83b2d6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "584b59af65eb21b87a5e587f171730314c511252" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "58578101e7db4fab2237706b3ea14f90a51aec48" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "588171f16e6a44e692e6cdea2ee141449aa69354" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "58d9b297e38aff5610c1103b705683451f7b548a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "59156f3fe97e2839fc50cb3e224335007e722a76" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "59a75764c1aa93f1cb6794ca827105b131f11f5d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "59cf94d7dfd7ce42ba97d8ebe7ebfe557f7d66e3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "59f431f9443674c6746e926f09730f920040200d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5a006b13ca6b1077de3d566cff20e961d62b65ff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5a165dc1bd312048a6d080d0946ae7c8e4a1327f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5a85d2728e399395f02da9bc4bce6dd0914629db" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5aeb27f1f9089dc0100fd3cff3258a5091af1d71" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5b07a62fd8fcb0e6c9be06f4e4f4a311e611c063" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5b0aa15bfcc93995a15dce0f817e8d3c495eb3dd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5b764e9e2299529f45b7ecdc3cb393d9837f4a67" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5b8acea459c04544d8d84197f4734d1687e40457" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5bb235c3e1dd184fe9138e87e03f263842002fe7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5c01efdb9b284d8b80624a6f21cfdb3c5a1e8349" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5c57548e5054d19a9150eb1c493b965c52442424" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5c78d0da08b9d3c955651d5fc57fd0189252b602" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5c7da6459e1d00136550702b6a946640223f9b4a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5cc5a3385c7e53d87a13d8b78da8f1c76a34a27c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5cdf0faec65cccedf007754e11ec22723261de76" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5cf4d6f123f7b19aa2004a5829d4e54a0eed70a1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5d78bd52635b0b053033ff44951a2d072c6a5b1a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5d9f3bab4e559bb4cde71be0abb62f668e4f581f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5da43f582dc56e2da6f71fef88c1e40d99b0eb66" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5dcaad66618e103df5befa088d3ab5e37208c324" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5dcd7e8d2707d4c5df3f8a354628d1efa5dcbbaa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5e359a6983a51bfdff79e4a3924712f00e635bc7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5e3a91106a3f077494dbfecfc188271ac31ae9c7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5e64b91bee8ee23b5fde77410e3e72b649d16e3a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5fe999215043f2fb4bc1530fbf2050d526b68c1b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5fed06c2421c13cf0464fe1e482078693e85e000" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "5ff2ece1e1885bd21d476d07790c32fb3a85720e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "606d2f2b19407687b3254d8ca1eed0bd9b90f8f2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "611a797050824515fe05cc31e4e087548eeadbe2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "619adb8150560a393688f0e8fea8e84942546623" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "61edeb27a0d98067c07aef8d8d75b2cbae597f80" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "61f4913c4b95eda97d839747638b31d213685eb9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "626c9939c373e177b2ffb4c1a36fe1fcdd540936" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "62b95540117c01568c6dfe95fa83c7807d109b83" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "62dc60410eab8e738ac3377858d9caf63c3e269a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "634fcf98bf50a1c83ed408847494d2f2716e4b6c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "63596c8a490a9b58c4ded759683008e2b8bdb92f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "63620a84dd4ab4a5dbcd812d1c921a7816cba23c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "63cc700a664d0b5a2850fce7274a40c6b71673e1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "645d87a5d597ada58508bc863a15c915788c96af" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "646cbe6205bf6b1f9e0fb7b08a5028fc09c013ed" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "647e18c9bf4bf374b02d7cc23aa47706b5869a4c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "660e62b7f51e7f67bf39bd1dc5c3b47b47614cb5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "661ef4570377586178ceeba5e8ad192d8d52ec27" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "66b554e8fd212a54b586cf61b13cac4667f679c0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "66ccd84017231c3497a0853951ee30ed3dd2a6bf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "672ea34d3d637f1bc9fc390f20081b756f2d4ae2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "67c949337c5bdef230b4a67faa31b9f744d14aa4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "67cdc3ede9a4821c28df19ad0ef569f096300bff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "680712f4c6c4a0ec529a5156575c7b3fdbf5c044" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "681020ad3b116c19fec4e9556c6864c3ed837d08" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6839582c254279b17014ab59f8cc63b6b42fc705" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "68a31e1d86c4728809bec7d7923698d5fefda405" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "68c854bca51d8a47b1dc8f8a4e30ee807509ef10" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6919510eb45def9267769b62336f502b69f15e89" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "69de6e0a52a016ea1dbb0de4e83ce0886814ba08" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "69eada7f1d77ff9bf9c789d44990f9141e39d71f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "69f4d9ea70b6473f81170ff945452240c86f795e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6a6a328fe89f4938bfcb65ee06b9225ac3a23ea9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6a8cc170b1464d9d769045cd9fa606d73bfd0f57" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6adca8353245f5a80f21a463df468240705e3d47" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6b198b834d05de8c91ac6f2a6bf6bf968175ad5d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6b4935e4bc3f980ae48d3385e8386c856fcd1def" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6be59394ae799279287ebb16b866edf64ebd0771" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6c2e993eaae4aba9dd15d5695cb0dde4eeaa5166" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6c4244726520381b031ce37a7b2785aeb7b2d042" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6c56475f787766a50809ae19dd860dae486f053a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6c57b7dd3b888c23b031cfdad7cb40198f08f82a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6c8f3e2c4b94e3188d4b9712d4c8bfe95b80a33d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6ca9a51627995a321981f06e6110bde0a4c759d8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6d055d9b9509910416553aa498a7f0ee21cac8ba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6d21429adcebbc40c8e6e74160a8b21d05676168" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6d40791455a2bb1810409dd282f5ced10aee972a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6d61837a1c820c0080006e69808a648504785849" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6d96fe81caeabb16479384507f13c6cc42f2e018" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6e0a1099a118ddb6a0cf7f996e8bd5998a531cf5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6e24b2ebd867bb0f768b7850238fa9446154d057" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6e4f37e15b54f621b509362ca07512124a9c673d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6ea0efffbd6119f494d276a6569425068912012e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6fc6bd9da909edeb53d730a4ad77e0faa89638e8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "6feb65b8f65dba75cf1b3c61971b858ded97c377" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "702cb066893e7cc6eb0cf2f6789a588568515aa1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7051df36e153fe0e621c7b2bb2c51435d0eb7d60" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "707df82e923a62ef34982c94db66a518f7fc66ff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "70981384229f8ce437adfe11809c400487f95cff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "70caa1542bac1de4c4be08877ba635d7096e856a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "71177edba42b01d19fedbd411313dd0db39d9d4f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "712e00e4b40b2613fb1202e843404a1d93fc9e7b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "718131d537d55a7b8c9698c09f2c1b23b1900862" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "71d6c1ee645b8bbbad5afeb69e808b3bcbc295f1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7285c334038f2f34aeec89864931a34734aaee2d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "72a98a595ecde6c0aa7e6c809d265540e306ba96" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "72cfe33bff294cc584f00ac2b872eadfb591adce" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "72df20c7dac66c14914efa1d259ffe3cf9cefbcf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "72e5006cf172bc801c544cbac8f443ed5682042c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "734188182b74753a394b9bd89a96544b2866afd6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "73725c9115ad31370045e004ddd0d31ca03c96b4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "73b568e8d29677b7d02ed010b7a7452b92afb4b8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "73bbd5c458dbe4b7be000cd8bbc08c2f7ab6c076" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "73e952a6dccd67fae803a718cb5781e9a01a8c80" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "73fa5d896cb1cb4baee7f3123d20402203414653" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "741d532066e76bc6a7fe498654041c1e944201c2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7425beb2a5ef0e85ffe776a94b93bede533add19" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "742d237e0ffc75756ab70ad03d4b55e04b409278" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "74927d511d7146f092f54386dd9c29d3c7c98f0e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "74b216e39c5e67ad4ff87ed879a9738b4061512b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "74bc2be7a732e6f0dfd9048b8e47fe603b6d1952" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "74e6add224d24afa296edf113310af8505b3b470" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "753e299998f55f16d2390f9a895f648a0b024692" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "757620cfb3dafa852fdabc4e2e6fbff565942491" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "759162c12314c314c8d47bac1092e92c5257793b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "759c026c44a5507dc01cc312494d6b1fc44a5d18" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7616367b4ef0359a842197813b8f954fec920d3f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "761dcd796f4887b1850b5804be048f986c648158" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "76333aee952287d0c76cbd4cf6cfd25766d08a35" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7650acc9c3906364e8a2599a5e89f1f99822448f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7686794da1a6a37479e0e9cb46ab4f71e7932d42" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "76cd4352c7e4f5fe9d22ec7a5755304d037acf74" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "76d1b20ffcdebf37fcc5ffbe9384ef0de0a057ed" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "779dfb99e479cad1130c40c9ee04a81317ce1197" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "77f1fa9f8b2a893c23ad768135c2f390d05eab00" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "78359b0fb898bb19eea593a7411478c7b99e0ff3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "784e8b8710aceb4e57a03cb939209880d3aae64f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "78be43ce6962ac017767e232bf738e41c83d649e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "78bf0de80a65fb817a2035f4dc891881cda1fe69" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "78d7e5ffc4bc7e65f93cf9d18561a27f40777e7e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "790994637a5a9fab4f58b49feda472e381c0f49e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "791add4f56bd80b3b8a2f448678c40447f522355" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7950d32431cac9c6ee385cdc52a8b861b35a0e03" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7981fa24b134deb51d71d250d7b0d9e33c8c5457" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "799c81b19b1b3cc1ff12ab91e7f6a2b54fd28ecc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "799df4280710b447966bdad4eaa7e37e603fcd6b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "79a52a834f53accfbe9a75a3c4655d38919d81e9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "79ab336f94f3910423d81557ac1aad19cbc555ce" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "79db67c45ac2ea52c3a965538a32c55cc327f51b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "79f82dcad66620762044c9c131c1fe4c69eeb491" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7a1c36bea5d53fe2fedd11c085117ed4f1a86654" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7a7157f0f027cf7fc82791c3dfdb09ed844dbc28" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7a728b263907cd39238cd6637ce5d78fd33b92bc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7a739a37a0f915fc259c925fe6a4156fb933c39a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7aa266382cb938acfe6564c296feab316a285139" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7b670b449989bea3a7a1fd74f66af75491577762" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7b9907dc4fa814c60733e78828632e720a3de36b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7ba9312566302f519478fd33ec161ab902d51755" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7be57bef8aaf3bb7334c7e008a20aa1950309715" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7c29bbc2c7d654930a21030041bb55b879c61aa8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7c40a6647cfb981fad4215191ad29663ac1b2b7a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7c601a1424a4bd3857040cee092bfd45b3d316d3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7cd8ba2020a955640bb75fa50da76b36beffd39a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7cde1fe6f51b62723180de9c033883f8dc6eb219" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7d1a929d92588683bbf600bc13a8e951a6785d44" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7d6096e9865ec5ca90d4b829811dc6686ee157a0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7d8a71370cfe5622819629630ecea1c84415535c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7db203c67f4bcd1ad13a75aeed34d8a0924dcf72" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7f17bc5bcb137df3fcf85c697fc824ebb4edb1a2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7f88adf11b98203aa91224b252b46cb35a8449ad" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "7fe974ed37b74ab8a05f8ed72965b2f8d02aa952" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "802b627cdf8df4de841aec3ead8d3f0d8571c905" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "80501d37d825e56fc74433b60615e8bc430f9dde" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "808152931029d10c9fb4b6e8f340cd7a1a9c213a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "80afe70babfebaeaa0c530a9aa18dc4aa79e3dcf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "80c20553046afdef0f4b817ada4ef28de3721837" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "80cbeeda4fdb308095b78154e588bacb8f16333a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "80e34342c5ef923c043bb708b3904f139a9ec76e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "80f2e0132d9553ae1e337ab36760a02f60c89fcd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8107cfb41a7c6a7051b91a7adbce5a7816c42295" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8122f704fb4fb4c5b42c3cfb6121daccc1c57339" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "812cf6065a35d495e89ecde4b49932419ff9433e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "816ce660c3cbac50d5a70e166166c2c89415cc47" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "81ccc88bcbbbd53996557f033d89e4f4b9f103e9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "81e31efc81653769ac16e8b9ee752e2428bf05e9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "82055a7e67714bc54ee1309ca2f913d9a0e795d4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "82120cde45d53b1505a48452177dd0dc57bdf1f8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8239f641eaffc34a8be56db278e208f08e366cc8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8261d9c0d33018c47cb6df8b0e907c69d1273bdb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "827c736c5a437bb573a66a2cc84d6e32197c14af" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "827e3bf7ef9a5442f3c953bead2dc8177f234b37" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "828443f3b2fcd28813c8abcb633bb1e9516853aa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "82b084fba9231fa00c8090d8e06df40efeae9a3e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "82e47738a829bd756d89da1c2a3b8577594bdefc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "830b150beef20fea95706f1f4fc1c988bb54eb2f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "831c3003408ed519a3f6aa50910b9aaf14df457f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "83773ada463fa5fe310d41b0d3192de23f484866" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "837be5ecd71b5f18c9015ce3407522090711bdaa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "838c4b184904fada390619b7adce7be2bc571984" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "83ef2653099673af851d6d0a1f6aa9cabd8ebeec" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "83ef34ff433941808b2c16725e5e85033ccf6d17" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "847cfa02a6109914cdebc686aee3cb8cf27c3e82" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "84914888973cddfdf58bd1ddc222cb7e5b8d2aa2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "84d824c01b74d7228ede3014d2da88c44147413e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "856cb14df9cf88754369562ded33a3c5c945f59c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "856e31dca2057f20f3f14feb7f5fb609a7077b2d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "856f442e3661ad4a3bc4ba14d9e91210fd42dafa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8592862bf400ef7bbf5150b98e5bfd7301956338" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "859631d5778de3be29b1df2f5e3b0ab1717255a7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "866499744291653de2bf69a8510acabae6c8e2a9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "86cc13eb09ece3e9aa0984932484a69740f743bf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "86ea2fc3453722a8a98889bf7cd66a8601929129" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "87077495811b849b87e080e684eb26af421e2a6b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "87811fb34ad589bd727a854fe604339ce8eb8f78" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8807a15345db3e69b124b7e0629eccfa1e3006cb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8824a283c70dc47cdfec3abcb14fcdbb0f288b0f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "884769df3cf21a8bbc5ad6a763709255cd6d4297" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "889cab790f48cae381668f27420255ec0eb0c1ee" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "88d034c7e61b516ac581181ad171201ec68fb969" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "88f40597969f015c725566967a148aefa51344f6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8921d3b4bdc70cf8d6c5c4e5fd538b3ca06d9168" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8966569e2747acb7ba6f477180c921c6f38bbf5b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "897a5a45fbfcf0cac070c760162daa9268466ab4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8985c3b738d8c0bac2cc2ef08acb574b898ffe1d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "89ec79e0d0646323cca40f77c75b8b8f4ba2e62b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "89ed59ca181ba3ed5704c8dc9e349b2ee2bb1fd2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "89f3f126453b6f61635f086ae06214f55f6f51af" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "89f6f6a1ba1c474b031269e70b91ebc1ab6abc20" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "89f80e75f6b1a96c86fec6f0b2c6cb6d6be59d91" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8a1a503a6d3cf34dfb33b99bef2afed7a70f4a10" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8a22ababaf1deb9db9673cd824152ceed45b3aa7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8adb2eae53cf8235a471c15bb8ebe2aa1345c1e4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8b92b45f99c497df3e58e42960f21eec4de1e0f5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8bb1638d8f41d80d611f24fc96ff2a695600eb25" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8be30730bc80a7923994c15f3d63cd92b9417a50" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8c968f94a71ba1375bb70f16769ee39992013ac2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8cc9f701d67d24f90f77cd622130ce5634607881" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8d481f79ed4a2cf3d5e28da122d294c8f6f42c0d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8d9e88e3a87ed0b0d3a2fb9a2f1c2b66a3927e60" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8daaf8b83df0b99999c1f1d8485856319d34b9ce" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8e3b55809b9a8c849f334114ecf3e62b624e2d0a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8e46a8e32aecbfd8066791db9c5d883092ad9726" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8e9cbe44e2460c140655d08ce56b4eb78a87da3a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8ea972b5f83a6ef4bb16320a779ae229a7bfd07d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8eca7d754f8408a13f6c3d9d2f27601a4fb2a209" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8efb9e4d0874c28b08fe0454b55df5ec31a1d32e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8f467007c2adcacc28eacba73e34fcc1aa8a0533" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "8fb2426dd038701361c622a66c6790d7891254f6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "901cc1c13f30eb2fc6de17ba1867dcc8c1561d46" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "90a4b5ff89e5e94dd409650f3b9b646f2c85d39b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "90a652599bb2ecb0e5f6f60f80ea3e90892e05fe" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "90d12510e3164b7a02e725cb8ba0f4bf6e6a66a0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "90ea67702b12d091164e2270780c99c070cb757a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "90fdd70eef0f44b1fd65949a6d2d6be0db3f9687" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "91317869e4ee1f231acc9ca052c6102ef7c8fe20" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "914958c2c9c8bf0210b55441bd9155efd13f8826" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "91f2d8a3dfbedc47ac5860bc6467eaed37738c83" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "927bf3aaed99b0896aa2769048aa9fbc6b2c1cad" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "93a3035dffa6ca3ba6bb97581272dbcd3aa509c6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "93f0ea7460fb93d82c390d08b9c3404b6e98dc95" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9403b1595c8ab907b8de91a7ca5e60691cfe2201" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "94536710f95c424a7c9c83bfdfabb3f198ddaed9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9466dc44bc7447439fa7e49d219b046926f08746" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "947bc6d62d88a51900730954e35e485908944488" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "949ebaab914089f5e0511d497ec848a40115c9ce" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "94aee9bd0c774345eff36c908478098812bf8ed7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "955e561bc38a9f971a7f45272bdf2e0ea0ea30f4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "960726b46ef9c5e61f524769dda6d118bf4befbf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "96ba12e790e72f9f5c0df8a747b46200e52e39eb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "96bf80e0d60878a07742f3e6c766b17efb195a6a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9712de6f4b630c7a834975db45844d77b2f4d69e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9737a26a08b2fcdb4f2010caef3692e8919c04ba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9737e372b0bb33385e2fe07c3f73f7a8dbd5ff6e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9757f6584ba047405ed24f414668a82fbc5e1cc2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "97dd832eb719f5b15fae5065c29cdafec99d1c41" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "97e0856f6ca2367852b4afe4864e698e03f931de" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "97ea1338ee0a0ab7e8eaf1e86750b22a85f9f5f3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "97fcc7efc496a85ce212f43b14829514469f65e5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9810ad0ccc80704e904a35ff8471ac952f594db2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9863771dda3b4cca878b0f74f5e6fbb51db99785" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "989e587a70b1c6be956828fc94b86fa975ef7f25" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "98c25b067db8f776b80eac526839df8cc6488bfd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "991ca16673a9f5412779d4fdcbd7e4278472407b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9922f47a124d0579126f7ced9f57fdc68f0a1aa9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9935a18e63b1f4336bd90544f8b40bd38c31765c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "993975971e7de6405524c9ea941162f932360b9b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "99bc50a52604010819833a510c0df945bb175a06" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9a5eb1972e12694206080363b3e75946b1704193" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9aaa61e9c6a86a360c69485bdb13baa221cdc5b1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9af9fbad6f0dc09552538987e3af29f29d046119" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9b27764cfc8dde5f460ef5e2ba6c309c56eb28d2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9b7d26b2ac4c5b2de35be38f9965e366da9da4b3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9c12ddcb295c61d38ddbb03b83d089f13e97ba59" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9c7a7ec89bf22676af2ee93202c0f1c82e10a740" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9c7d6ebc54b15d3981d6b3dacfb74ac835ba2ce7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9d1121b3912f021cd3ba8f1316d283fff405cfcf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9d18117463894da0895f7e5df76a8cdb89c3fb51" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9d1e0b689aab0059e866dc366fb30a96e407f016" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9d28ae17ff87bd5fd6b960ff7ee3c1668817ad1d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9d2e6f42e5ccc5854d2ff715bbd919f4e4bb8839" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9d7604295046cc9cc65d6de91de2ceeab96bdca0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9d7b9cf43fb66663f4b2f534323c0165c70597e8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9e131c203300f2f145242d45975566efa742a0a1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9e39a218532b91717d4b76d88e60ea53a3e05f1e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9e7e68faa178178711dd9f77486a44cc8ba99609" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9e89466aeb2a084f806bdf1807f194ac4a1613bc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9e99b4387e43c1ada856530dac582620b399a130" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9ee61974491d0cda218d7333a1e27d9eb016a260" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "9fabe18fe2e117be7af8161c8e8e38527a5dd470" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a02d4a1330912ddfe8f4ed3b4d17f1bfb9a22427" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a04482d9afc9c669309d2d81a85ad71dfa2bbf39" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a059d59433ddfbe1a752b5065b6c191e361075f9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a06d0f5ab9cc4ddb86a11561251f8ec1e4b805ef" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a08088a77fde5610814cbc50b9aac119fa211c8f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a096917b46becf1cf8604a9efd32f0fce88cd8c9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a1374ac4c404cd849c3099c8da01f296e9a76541" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a16e9573a4653b14cf01e483de14d545699e756e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a1e277a2b4371b736b37925d264e027ae52e6aa1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a26034ef5b4ecfb50effae632376f05304c42968" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a29d82138b426cf630a281c8e320934289b8af66" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a2a82f742d4335eb4a9b29075207fbf23480ec52" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a2afc4aad90de26f3f02e8209267bdb2e0087929" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a314509f894f381ad35d30291c5d985cc1682e24" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a357ef3f832d0a459297253f22a7514b9153aaf3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a37e05f16fdde6c8f68ea6184ea38fd231ee5386" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a39775ddf9f51b81547c340afecc9eedd1f46d20" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a3a341664f697bb881fa6b2a9ec60d1ec09abf12" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a40f22d2c4f42e3ccf13efe82cb680b623d4fb12" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a4b6757a41d3ff6c4fc8dd608c4c5b3b2e3f9631" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a4e259e3077fc1a4a68f94f15f6899c6f371074e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a4ef52ffd9baf1c9e03d585756253fb94441eaa0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a5038c5df72b8abaf1055b2dc634e4fdd74d1e53" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a5042f8ba90187c2e061d9e6415e200887717822" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a53988f733121443029094ae731b7b356a2c7e4b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a5c6361036103054e15b29e37ea3a722315858a3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a5e4abd2e58d763e662ce6505186e165d8666146" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a6767c06a178fc44db83cc48f031f80a4c3a7350" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a6a082cda4c06c638651fd23330a5e1881b002fb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a6c893e2a818191397be5288894b0cc3e320e650" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a6e1486bcdf474ad8254355ab503b68119305889" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a8120173d52dcee69cd4f1b094979310ce522cf8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a879f070fb3f96a6e9e2c2ad9056328fe43db4ed" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a8e1f4329b8180ff69fed0f920d93f55abf6bea3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a8e2b5739895b791c56e249de800701b41e8896b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a9072550408843cc90dfbeae2f8a3f238d98ff94" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a91b8112825093e21e55feccd96faa795c51dfb2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffdc95b6a", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a98899c6b8dacb7ffc082a8626defdd92a6cabee" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a9bb1d8fdfd33ab6a4267bb79a4c40b3c35f2ea1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a9fe9ff21e52a30e6734b9394828c8a3652b07ac" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "aa1518d4ef5cbdb32f415b894649a216d5057332" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "aa2a2735253360f10baf2562ae64c0a96a7937de" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "aa6abeac0bf58ce8ef3f0d9ed85391463ca15de9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ab4b4eb10ff53b67bcd0e7b693008c7e3bacd48a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "aba657879959cccfa995355ed23fc7645bf3e745" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "abc5eb986bb1bb3c3934be01b8c12f5e60c16328" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ac3e98e868baf378552b9bdfdd5e83eb44efab5a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ac4d8f3ba70675684db50640c5df918dfd602e5d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ac83f99151ec272c11f0061f4d336ca0c4d64d52" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "adc3fc106cb97b26e65cb9a594f91663ac3ee1d5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ae8d46ba841740b2fb2322ab8db94026607e63a8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "af3a0d8912c70a8b72d4ae24e056d63e8f9bbc64" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "afe5689f36a6ef461b45758f5cce3584273bda30" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b02f5572a71526016c1ad92a6f1aaecc80139469" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b0c4cd2493c3dfcd3cde9eeb7a1f83065ed9dc93" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b15f54e28255002b0fe69e79fe219258568d190f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b1708854cdbb9df3a416cc17a6ef77b6274c78d7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b1755e9f93ae9c57ce86139c1a138414f6d5d3b0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b1e399874ee69676410c53e821d5ef25581d91d1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b20e5568af3de41c388985a944b12e6eed1b5232" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b25e81405ea25ad7ff82eccf9049af9218ce8972" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b26804ce746646b31203e9681758b25322173edd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b31db793b6a0505e8650fdec90c12400714169c1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b3784dd48ad82ad7f418d3a067f535c5951bfee3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b3b51e8c94f386217a7f0106100a86f7da348ad7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b3d07a1a7eaaea7eaab617804984a9a642772d77" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b40e923a00aa1eac80b4374241243e04c7985fcd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b438962b924213627655df023ca0160a69864ee3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b45903115aa6655340724ff3e6bd82b1d4b4e153" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b49982bf00bde5f5b5376357b95929d67eade2cb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b53c9d2431373ae7f557843ceb7f9d93fdf33786" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b578beb05e82c00f2c8bf4aee58828f2e4eda91d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b5f0392111bfdd4ff19997b162ac3c9c78f94ab8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b5f6a233cb0a3336ca3d324a7d0cfea6d9400567" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b65df6a805f9a11e31937f4e70bef7b57a2a21e5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b6788d89e6b5d2608d002e8d1a6c4df44f075a29" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b68388dfedd33ae9d54a9070f8db06cb92c03181" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b6f903bb368069d28a7f88726652d5fae4ee5b00" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b70f9723bdf494b7f10d172c866bd185dedaa016" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b720599d2ed6a05b91ee89090b31e7f3f0a894c1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b729c6f59fd56a52273760fa1a50f2d2041ee493" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b769e76bb5d50070ce8225064433da01c4889c4f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b7eccd2198d10435e8d68ba6b413529355bb97b6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b814bd30f5f4468f14e0e44ca76693ed419f7d5b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b838d9be717485f3bcbf61aacd381278213598b9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b88b54639b42a9cd7016bc821f2e2e1faecca41d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b88c26fcf2991125455ba3305400dbe444d06f41" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b8bef06a5ff5da7e104c718403ca45fb4b8ee91d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b8cde949b7de71e3db5da54420d78ed37749f618" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b93a3363009cea3073bf6785c264940cda53f176" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0236a48b", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b95e8581119ef873b99ba7a7d1d980939e0b83a2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b99568a67d14063e4b6d3772440a5d3bf36894fc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b9ac03910f8d4821a3c239bd37dbafd34786c2da" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b9b7610e24f57f6873ac519d7097248f4217edf6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ba4aecef9f1312a76ea6fe1d1d3eba96901a2ebb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ba6480f0f7837b88810a22c19c3ffddf2f858b9d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ba8865367620cd36dde0f1cedba5715d31bf6ae8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ba9fe52e2f2908c35383ef6d548431a865b065c6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bacd07a5e0dda92d2f990f5ba86a43fc0e19282c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bb35e67bacd29e7c4712b1e9a90a2549bfb76821" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bb6ca5b47ecf72934a3a01c973cb9d889159bfe7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bb742e5c482812edd489709946495e0f21f9e73e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bb8806712b21c28dca7ffcd769e5e5e65ab4de42" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bb9543969804c45a3bf2bb1f34c3b1a0d1bacc17" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bba71dd92a50f330f5dd9ae1810db322f2a694db" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbcf533bfcf4f82d07d07fedea2641efdd8d4ba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0ffffffffffc21", + "code" : "0x5b6103e8608051101560235761c35060006001f06000556001608051016080526000565b608051600155", + "nonce" : "0x03e8", + "storage" : { + "0x00" : "0x7981fa24b134deb51d71d250d7b0d9e33c8c5457", + "0x01" : "0x03e8" + } + }, + "bbd499069123371e310ac20e709547b8b1dbe694" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbe73ef4e36cd400951187822b1ab909c040e427" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bc7257a38b718333de333c7b32e0772db493ac27" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bc9182de5c1d4bfb6041fa25ae2c98084bae5a97" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bd89222d90daa4c8d4b2059df8c3d257d100fed3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bdb7e631c8387d244da0e35430fbf9ff8af719fb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bdf36b8cba65b72cdc1049625f3b4f2d008ef37c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "be15dde3f26100edc664e913c9c1a3edd35d1fb3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bed15b4fa8c4eac2a9889c755a0eeeef3ff4b0eb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bedf686e35aa0f0c308fdc08b247fe1bb9624cf8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bf42904cd43aa5ecc356b94fd719bcac14a8eca8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bf474613f113d51f9455a70ba0d02145adbab4ff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bf487b4bf869cbf7b9a4ff69b78e5fb2e72e2325" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bff44f87d4dddc7d59fad6363698bd669751b1f7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bfffb9c4e118f5cd74da2114189e7b2bf125145b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c1456fc46ceca3afb908f21c7a4a00c4ee883ae1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c1c9438ee1a05c2102633b87032076d0d61f2263" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c272a6d5e4cdd2ee3a670b0b1fbdb66046047eaa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c27631a45ccd086c860ae92a87130f0183922da4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c2f5b2782468dac129742df46ed3471932e41c5b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c4050efd1ccfc976178b4f6fc530e040cce67920" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c4051ad69c93cbe4876b834fbfd2cc180cecf423" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c417aeb14a06baa6ad0c234a6db19a618674e011" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c4c52795c02a263c868a71d891b5b85999a903c9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c4c9cd2ca411167c072e69bd3dbca25d2c9b70ff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c561c9bb90c132906bb85e8a05787e7f0e0b42b2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c5e2984f43c1d9969b77516ec0444cdb985f5626" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c63b3ff25356fcbac8c31db88a6bc50b88e5bf9c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c6d9dadde20d8b27ed5902536de05d974e6f8c9a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c71ea553ea3a98ed1c2256597bcf2fdfe8068675" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c725034951d89185e6f5ed91775e4e6dc831e19e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c85604031f13b9bcf00d89612355b0f58a7026ec" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c858b8c2abd350596ddac0c24e1bba8c3e2d0c9a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c8d3c27b9d6f995a513c36b2bcb4a05e44cb704e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c90d233ddc457e331265b16d3b7beebca4ea5a2e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c939bf3b0a8cf4a7b975bf152053a50ff5d6f49a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "c9e52a47e9b34463ab9ba23453fc09506f4ef8f9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ca2bc0d0a08dc1fcf4539767733ef11e2f4ebaf8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ca7876ce32b095c127605a97e8bd8501f4933db9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cb205ad197b934b5ed892cb8cedbd54d682e2a1d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cb78de6453fe67ac38868ac60825f0288e509167" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cb7f8909d720c7762fb9a9b3b682e63ff972a469" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cb8d53161715e8c922636022044518c26c9eeaee" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cc20031bf728671f6b1b444c2930f966e81ded28" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ccc496495d285840090db6e74f7c12318271d73a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ccc8aac532fc1658a59ee8f21ecf5561f805c00f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cd996e17825a433701b3a021ebe8a54ff0af5539" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cdaec72749c4d25f5a108b7613cefe4332123042" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cdc6ecd4032b5a8e2f65151b73626264984124ff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cde03a6bae2e637e5b764a69246fd867008d83b7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ce12c4cca7cb757d46e9e67baf24f9c7910e0b85" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ceb0c0a1c404e8cb3c08077d06187bb24d29e324" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ced06dae32ae2a0938de8bcddaf18037371ebb51" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cef205afeb5f8e315216fd71dc56c9b32810212e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cf2f87cb85cb92952ad1e5d03b82f074712fbacd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cf90e4711722622a19043945f73e8e00a8227f89" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cfca29a1d60177a67b677114027b8e619715a247" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d03b0948612fde24b0572afb68dd30466e05dac0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d0547bee1dc7d94a83b9f1123ddcc22657c61101" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d06d76bb95f61d7ea1eebcb750d90c952a5dc891" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d07328ea0950c480c652b05ae59a9b5e8c20492f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d079115dc380c1fb09859aad31822dedb5274bb4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d0aa70822a682e931eaf27a04947a308cab300cd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d0c7309f1cac469b3599d67a267321b43d612ef0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d109c076c2722c2c363517c9e1fa1f8cd3ec76e4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d152daaf5513774c4baaff5bf71ff1981e37f1ac" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d19a12e80144f4fec2e9fbe9744a463594b65124" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d23d38d04948afe2691e99b4175dc09b29418ad5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d2824402854b5731a84a050cdfbb6a583a04aa07" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d330ae310b4e7370979357a7df4b7619d286d4e7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d33d471540415bd75a997db461001b16153b5450" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d3af5a55334a831c4f193b8d571612102783ff19" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d3c1cd8eba33be282da10f0645f90c5ea676fc3b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d418bd34a5767775d24f15f5d30b61c2a06c7872" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d441bfed09a4cd51f28bd772a8cf9a8e74c883a1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d473075fc09e5143e01451ce6156e0f6161fa634" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d4b8f3880eea661769340e9f299dfc00b23c786d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d4edba1f73d58948e55dce60652bcfad47a7234e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d5200e38645ed5619e76cd8444ea36d3833f96aa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d534d22df722609a565afb64b2889af1f5b21850" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d555e5bf8787ce4220f67448321dbbfd095cfbb1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d5de1d657cb40975dcaf3257c234078afe2170a0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d6d73bef3ccd47da58bd8d90954e77da6834db4d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d706df8136201049555fccbf363619e7a85420c7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d7255fc79a5567af3bb301360ffa2e080fe69970" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d752875331e6ed8fc41d760f96b6eb5b8295ccb7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d7545501bee1d4796457c4cd3dab913942dd998e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d79060c0c2f964312e347ea060abdde34962b81f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d7a368be64f00ce3bfdf287c8adfb9b953368770" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d7d50cdde39ccdfc50116fad9df36dd537c8007c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d808b5d6059266b4c685e4ad1bc90b11b5d2e08e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d830b615540eae87f38e17dfaad7eabe805f58fa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d83bb9a24e2a6770d9ca3a4e612867624884b7ef" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d8766f48615c2f95abb1719f131dc2865aaad141" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d8a15cbded383c792044579b6f8238a215ee20a7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d943ec2d188d00ec9294b910af4ee2e27138a0cd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d9db40a755d18c68d7d1f3b875aba3bc90b46dad" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "d9ecc211ee91e67e568a9c87b8015fd31b709664" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "da3d47091f32acdf7fb9fc2aa68e0fa2ac58786e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "da6661bfe76356c21d24a4bb152d8ddff113bf63" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dad0b145643096de792d8fbc3d35e0d9ac8c9bd7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "db35f0b9839c6f22c39837685a7c0c97bb9f4bbc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "db4076a72944f537d0c628549c376e71da87a2ff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "db4e71b4bf542cd426b8396527f1679fcff144a7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "db6ed87371b4c961cb41c929cfe9795bdd666ddb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dbba2c5cd55acb9c28145557eb3fe1558233b6d1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dbd3892b80cc46942b4f91fc04b529d52efd586c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dbe198e545a5a5a506d42d783c9ea71e41439919" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dc8adfab394fd4200ea819536dafa12de8896b79" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dd1be57a294a12543352b5f6001cc9062325f7cf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dd5247f25d39c528dd80974c6e32a1917b68143c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dd6a1814a6f951684aa2d3700a9502393a6eb066" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dda215156ee4e1997cbdb04ce04fa31cfafbcc63" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dda33bfe0d7c7d3d7975348b3b15c712bf2473a5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ddb1b5a897184760a15b0476d4d70c33dac34681" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ddb5e440b941cb6b2bf27bbc73c726142dda1666" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dde85d05080e22c8c0c2348da0cfcbf78e678c17" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ddf2d1d734cf5b018c4349af2d41700599aa2feb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "de0464aca36c0375d398a1f1e320ae63a5544d4e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "de39809eefc09866d364afc1ff3f20f44347c442" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "de5aae979fc0a294244701ae749fa7485e636a2f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "de8a63b17bf758a01b1be6a3cb9ceaf38c59439c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "de8ae395bafe56c8968a2cec0567ec2562598189" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dec911a82e06ec0171a216b7ca000f2cff8ef478" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "deccb47103fd56547fb52c3adb0efec17a3e3784" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ded3070d27255a739854dde33154389ed81f010a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "df5d258c3203018551a4514a22d5b3bd24c341a2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "df7430a803a82a818b2c4709e323dad5b3074843" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "dfa9da7c3dbc0e384b6a911914a0805dc459960a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e03835dcbc8667517959cfffe7b105016457c404" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e0c92a3fbf9d161bd0c3d7e038eb2bb8e9afc7c3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e0d4e328f48b7d4333af25ab2362cc1382b951d8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e13d8f70c31baef8632e4cf46221ed1b4aba3f72" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e14c8879516922e3348aec763ede89541594aa46" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e17065adf12017fe9e1ba5a81e21bf18c52c65d3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e1897958d59b060d2c6ee93d977d3dae21405bbd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e1be158b775bb7b4d41155f5f28e7e6aaf8d2674" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e1c68b5834bfe1906f9ebc076ba9e88f76626a99" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e1ccc0b28b1f139455b2b781408eeecff8fb0d90" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e2313163e5359b3ed3bc087403091f4480530e12" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e2c7cbadb1054572b610f3a6bd438623ec1f3751" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e2c8b5481aec692a0226ee556c33f90f47e9fc0c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e2fad20d7b6a00d15c261d67053f7a5bb8c0c284" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e30a09ecb8f59c93b82b5877e9f9e7baed8dcb5f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e327fd947ba64703115a3210a214702787bf627d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e3615853e18c2e17acad0b12ef036d542302fca2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e39af06f6ed44d99a566513a8fccb2891d06a8be" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e3a6024c5306c4ab40250ccf8ea1a7fb48f62b35" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e3dbfe7b29561084241b88c38e3db3e5541ed814" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e3e34cdcbc91e18f2383fd696932a9e4246beb11" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e3eebc0356ade90739a76e54737a969b71534b4c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e422f6f2f6d6c0af793b8f5ac5daa24614fad07f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e42da09d718bf8d700539bdefc08880cfa6616fb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e565aad816115f2801d82142efd855a67b7bfbdb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e58af7c6fa002b9815c48ce42df0cf6299425e17" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e5b43ff3a571a29070ab306a73f4c25647d287ba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e5dc2e5b40069a91f688e56ea8d12149c5480b42" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e5ddbb284ec894bc10addba674bbd616ff70c48a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e5e9ba149495c2225be9991db9e9a0803509737d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e685b095291983377ef98b3fce634739ced3462b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e687b356df6450f281717df5a13014fd1ff2550c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e7387094ae2542d066c0b3227cf050baafd0fa8a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e75546502d8a964133119212f3fb1ff2299d563f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e76120ac3d810b702ae0ee3d14fa1c4f35e5d6a2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e780e770bcfd952b594dcaa6ec374f84b91ebc33" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e7e8d735cc5207c29e357d83984dce1f23e43ae7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e8239a6c22a1ecf7e4f909c6938a682608c07a62" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e842700c91615b38fcd460d783d38ba5c733c4f4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e8bc7ef407131b9030c350d1887a09239828d5ca" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e8c34411bb07154749671bfaee0cf136d213ddb5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e8e15b787196aea755a1c205521e0400362db8ee" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e98a17be47747052b446979f5dd0f9c2e0d6181d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e998a194b49d655894f66148ebd70b89544dc41d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e9d83b917d8568d51eb0d1c0b2df48ebe61a2074" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e9f3a365ab433812866ca7f7ee93377928461d98" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "e9f8c368af0928885d0aa889516bb22277dda7e2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ea0c21e1867a6907587a63debd812c60e8b1f3a0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ea66231f284ee77dd0d7c5459013201baa717024" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "eb0519fc89021b7142a0d9ee2fb772aa6401032f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "eb5a0500c26d24c4465fea60cd4590b93bb3d5d2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "eb970190c958b79676fe39d05ba2eef345f0ad41" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ebd3c9da3be8cae5128dfceb5c7d745ef3bf0163" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ec42d9c6455f9ee73f42ac148aab777f88f1642f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ec5eafa13fa737119b091ac2e420c1c002290c77" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ec79a2305edd058ab6e5eb481708cb89b90ebc68" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ecbb1ef130f5c42d6e26963a8fb1c288c4a1c12e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ecc2919869e85d687cc8d7bc8f2eb01cc67ed99b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "eccc01b1257f072a2d2eee0aabf60b20c2b478e1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ecf42159ab939f4bd61028960ef1d7e04cea65bf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ed2a386773598c0d93b6e657caacbf0b339760d3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "edda7df4a789840f973377ef716cd6a30ab77a6f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ee01daf4e0fa4695eb61840804df8b5dab9ba008" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ee2361f26e50a2a7f69555caaf88d6e2ce78998e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ee5288fee89ab21dedd941cafa850ad52aecf8ac" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "eecb0d98c9f2848f4e09fb51fff4e2153aac5e52" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ef0e7d426a9249565bc8e3cce8e8601dafc4b0c3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ef84336a016e897061ccff10e8b2d4407d0d10f8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ef98aada159d9103c5c52c4288c22ab0269dc4cc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "eff8ae5f13957c33ff8b56a3e16f95c7e8f37fd8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f05b38a043e44e6f465c4ca49c9828a53a183f0b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f0b3df3f70049440f8e932118858d2ddb9d90a98" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f11187b12d52a6bbbdb2fa5645a619d0eb88c72a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f13faad3a38844a8c0d5cdb515e28a4793369bb5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f1491d415aad4bd3d89c8bd9b0200a7c293350e6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f16b4cbd809c98a004b37c149b800e0a0c434ecc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f19a4513b3dea5a2bcefc7cdaad9db5a1c450a66" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f30d72b443610e6a6fff3afaf0fc779c77012a8c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f3304bd3c4911f2cf2535b50e514f6ce0171aeba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f3815518c279c861dae4f6663a5c058624eb9a48" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f3a016bb33d7fba47957e1ec89628a696b67c6d6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f3c39f7e2bd371e10d04be16288a1d43f3de0cc6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f402b1b7dfb2fc313e1a46f973d378a956a9ee68" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f412259c8b556097b685b4ac90db5fead49f9b57" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f4aefda02839237fe341a9e41d1b4bfb746e10ab" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f54dc1c13b33a9d30f5d5bcbcf473318d47e0ff2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f57047d6d3dde61ba6095e813036ec12f2fef212" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f5a9895063931ad5556e71eeaebd4d0a2ff485dd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f5b5e8d7ae8720fe0b4df1d6031b2c1b4a0ee0fa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f6492ab6947fb523d386b86015cd595f1f654422" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f67067c4e276dca4988bfb3fc38c7e987c8f587a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f67e4a4f188b9365d04bca9653c8db2f0d1c2027" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f7d9e7842e89d8870877954d7fe0a2ddd647a4dc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f821292ccd326f22ed732e83f6be8f1ee7bb7eaa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f85276da3ab7d1a54c288a060295d54063002a73" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "f98a0c8e851b0278afed214c0cfa957410edfac4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fa28c376dd5238b906bf009fd58cbcf55f17eeba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fa4c2f097f3def01eb753d91c93d99a85592c0a6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fa51d3c13d132352b826c1b6fc2206e04ff5921a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fab4306fbf670c6ad551e45b087be651947fa113" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fb45ca02fd4b042c164e60a2bd2e70ab78d9abf7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fb6c23f879a71698308a70f796ca02078b1386a4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fb74297e35a479e9bcb2ed764491da21c6bcc8ca" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fb91b23e3eb9289e337d9d34bfa8e680727a8c76" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fbbf4c43d576ef1f32505fe93dd5bdf145e5abbe" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fbe6122dc7289ad647e31b2e6635e5da37beb48e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fc0f22f8566011aca6c252e273c281e6bfea55aa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fc28f9b0d42ea3e612107d328deb6ec70e0b9a94" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fc58a2fa00487c44ee423404c9be6d2433ec00d5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fcdfec37584e491ecbd42b51bf1066e3539b8938" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fcf56143deb2f8c650ff956620975c05a9c2137c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fdbd2625737df76e194c99994be160c5f8248dad" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fe01c8ed227bcb53f0c336b26d86e0926e9f9412" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fe1215e6a6846a452cf4c59bce0b7d5b8df385c3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fe1d965bbaccb519b9d9e5887d670ae41c1bfb2c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fe534c95efaced5c37c9555aac28851a346ed490" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fe7092a36d08dd6b2d98b119d6994ca14652194e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fecc7ff3a230dabcf47b41bc7e2bfe47efe53558" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fee67e6342b9b17af384b19a41fe115ab075f820" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ffc34c68edda4d88aa64e90fb5c68d84f64633f5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ffcfdb617a2f6771e1876a90f7974be3a0918054" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ffd4c435ccc6c5e51396257d3f44046e75cee270" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ffed83fd1ce01be39ad92de0315993802af52f3d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "fff043abcbf2b0972c1dca19b2ba3cd682f10e90" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0x06c5d14ef7a87710e69a4deaf77ab1b6d34491784d76a5fdcbd24b00cc361dc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x657ed4b41f1d0db9069e707fe17e8a7247ab9175337792de9e2da93ba132c745", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x06c5d14ef7a87710e69a4deaf77ab1b6d34491784d76a5fdcbd24b00cc361dc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x66ee7d6ddc316e0a912c5029be47db7f699fd576f3eed2c6077c12a90343e7e2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP158" + ], + "result" : { + "010d8b0816e30ff51ba07678c64b272cdeddb807" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "014830fe159f418212e5c39b4b2e2ddc7b295395" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0198014bab0c420093975c147de1d795b02a6667" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "01a763e7767b586a82d994dfb37611db8ccd1911" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "01e329fd650bc9f99b371aa50cd4743ff25e47dd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "02553b467cabf4c2fd4592b8ae7653b7ee694e07" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0257985d8f6768effee9ba112ecb064a0850d1ed" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "02700a270cd3c1ee67b84e7d67c3b5f6e0b29f51" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "02d69efdbc8f434943906f2e7d87cd22db598a89" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "032808497d781d8d16f914b2d441ebb2bb593384" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0335b9d766b0bb7af88cd920588f24f22376fac1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "035b911b047f1f477e76ebae32b2bb8dcae4c7a8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "03933dbf7eb550a009dd6377bbd04dc6c6c50772" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "03ab29d81c4cfeffe4c755c0d5812a13f7d7d1ec" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0443d33cbefcfb9dedd1885b4c58b06cb1bb0c09" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "049fb0441a42f06eafcc180a78b35a1012e97b94" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "04ab1352cf2e4e27b85b9ac1146931a2ce13559b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "04cd429f6c5242cc74bfe335b56b68b512bf6426" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "04e572b004547e50597b764eee920ee48dc7cbb9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "04fa8b2ee08882d077c19d6f5737f4d7b57e33c4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "05500ca5e62af91ab7b8cccee577b065119b287f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "059dd7e608d79a5e818e1997ac2407d68381c793" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "05a49ddff6dbe8392fdfcb4927aaf6f70a7d5c0a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "061cdaf9d71ec7c6192391d14695af965ea80c1a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "06a7efc0228d88fc9b88b224a0c99ad867420a8a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "06b998130db9bec05264fec9d2b27664d702598b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0702e87cc6d6864c08f02ea524cdfdd459cee285" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "07552ad3334cad2b0c1ac94bd130a555963a2258" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "07723f62a6297c8cc7d656319eff3800493e51fa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "078ca3839c9926e3b2eca883b38d5c65e12da563" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0798357a304265cd4a3d7e953f3812edd7e0eb4d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0799f761106a0847e1306e555f141f022c2f9f3f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "07a282c32c39fdd6b128176c8c3b52d6af21d9e8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "07ef1ea78ee3cf9c8a3896c874a2d003966608de" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "082357316517023a2786e3f7fc74c4490d970fe4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0865e8c4d8389a8d924d04a6287934bc8f0d98d6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "088b4e56d69e6a4d8bc73027e82f8a050ab79e80" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "08b67cb13ab21ae56edc4a8df5fb0410cef3bb9f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "095973ecdf8d1b31627352d2ec7321e6756759ee" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0997d91d9771884cb0fc3f7d0f093f48cabeb8cd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "099f80aa181d00606bd53c76079a14da270e6627" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "09dbb1c8d2776509ebe890ab55d55d1faa73cc87" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0a20c2f7263031313ead390e63406f0844d267c1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0a49af34d62ae3e9542bdb9f1e59d5e70f423ded" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0a4b2b5995f4ead219106163141e9f874f8039fa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0a539b21f5563e895b6c985048912b2c609d9da6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0a9c010a494f211fc0528c6ac587473b8ee04c41" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0b0cab4e100e056a393bdee4972c66dcd542d402" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0b729ea6b7327a5363ffa02c554fdb5b308f640b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0b96d525b228beff0b0eedbb112c5211a15703f6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0bb51d28e660165a1e0782a7d0b9a66844fdf54c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0c6a8f1bf692cb9e4f9d9c5a2785d58edfd42457" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0ca14ef5b0976bddef46204521fcb6062b7f396b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0ca3ee69fbc2e31842660f5750af17f7b1246e21" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0d1617a822a4ec87d6c88d9e1a31cfe44c99434d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0d42d597a7098b78040361cd713bd95ee5bb84c5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0d466956ecb29940775f4a061802a7404b676592" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0d5c741796fe4cf133d5d33e9fbc7810b20c5571" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0d5e639ee1a394ac0358d58885d4907b44d0a703" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0d9cd09a6449b175e7d9e8362cbf776806d22cba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0e2eb861a1b01e73fd7726bae7b4b7180c794be3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0e3a1ef060de6cf93805069c07e8823d7e73a70b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0e9c1494712e201312f6e85823128d6dd3174b28" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0e9f1eea6de465f409502ea73083317a38d9d543" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0ea98b0279b1ddd2763429b4316bdf87933922be" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0f0f1da7478a463867ce1edebb59ef73aeb40daa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0f21b189eda57a693241d08ca6627262c5bb2383" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "0f8e134ede18cc895645d31952b3da946ca19fdd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "101fc6eec48ede86f2ffd158815f95bc63276487" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1028ddcafe965ca7ceab58d444867312b2ac86b3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "104bdd8abeb1204a88c4604b51dcccb39a26d36a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "107c9937646385dd1f9cbe6945792981b43f30b9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "10837f42f42e8e7c8bfd62833c51bc3a548ee264" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "10a3c117746c5052cbf22845865cbc9027980116" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "10a97ab41e5f0109b89dff8e0ac2ae11853f909d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "113bb3228779547e161ebe52451ffac05f828f87" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1140145fed47dfd3b262a9b2b57c0028c36dfb4f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "116724c2251f6405ab8fc594b1cf9111b0febafa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "118646f82070676c137c4d4a0719aa3dd26d47a3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "11c30838bdff56cb889ac95e5cb31bc48c0aa44c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "11d7b9b130f3b5ddf23697daad1bd955c6d46779" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "11ef672a6fdf68df0366c3d843a0c9bb04241068" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "120dc6dd7a3d55e6a738dac1e222972d5d168401" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1210ff751f268def54257f0faf7350cfe3907b69" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "128f7df6a982dbff6f6f276e9795708c2bd13366" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "13b2eb455192806a9b170cee706c708ffc78f946" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "142b53191af23f31d3b4a82e67ce230049aa3657" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "14486ad838ad2506cb09a3e5d9ed0ed29e07e958" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "144ce1302585097c2f09157887d15c0b1b8b750f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "14a2368d0e1f1c1adbd51c97d3863ff51818c3f2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "15240d22f0f514f7595b89e1266507784bbc5587" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "15331acd083bde9e9827ca80fc5cc4d637d310f1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "158113ad3263c6ae0f29b2a5b0db01a000e32038" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "15c541321720a8b7eef5eb8a9a07cdb0a8fb2252" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "16369bd631d24189bc849dfdd0784123580b5a3d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "173cb3fc0b255470959bf271d32c2822e9fa6070" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "18512ce319695cb9762edea4a287584d8bdc57da" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "187c6d15319f4b76b9863c6e2b8f8ddc3562607d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "188d90297cc2c8d5577608c870fb462fc9f4bde5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "18bf8898e172720134b4add6cf5682402b61a1f0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "18c96d5ab4134e00cb9ed946902c941f80d01bb8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "19740a0a62b5e4677ae6db517ddab154e7605736" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "19815ddeb812fba85a2c73e994152da103a89a01" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "198d23bedd1a9fdbd4adb5760930f6877f5d142f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "199f034abb3009f0ab4c98bc5b1953f5e2cf00db" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "19b19f7e15713d840d7a845179ec476d7f659501" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "19f252dbf82a8ff169bf2a8316e5eefbfba2eb46" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1a3dd75e89fbf0cb4f64a7ecfde9c3e3ffcb352e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1a6023e0dfa17254306fa8e79ce687bff36e6ece" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1ab26bed8d1e8fd45a229c27f916a6dbf8f7dc87" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1ac456884a867c13fd1e76f7a141f5a8431350cd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1b095defbafaf131bec7cf86abb91717e0659253" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1b3784665abba102cbfcf800f65c994ad012655f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1b69c82daf72d5cec6ef8807f216e91d824cff67" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1b816f71823089d61850739a66ec3592e20a737d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1b8bbe35aa1856d219e1bcef09ade65699e73de2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1bfe95b2400f5764ec01bfa28b2b154e07380e13" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1c2725385e77ad2718b7da02bf516557bbe43b6c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1c48fde8cd664190b925b792fc226ecbe6268e96" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1cde8165fc6afc72be2fb635a5f34950ce4a47d5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1cf4d08a76326e7914698efcb56af1aef2c95a25" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1d0213ba59fcd0d83e987e3b653b61df04a58a10" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1d1f79f0e598ae8736dcd9d813568ee4b628d3e4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1d6c73441878d28b27309060b997b9355452b126" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1e03b8ef445ede3b3816b838d39f6b050fd24bc8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1e50cc8ca9ee613244482e8c803300c6b9ed5ef8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1e62678876b469be3809fbceee03d15c1863b3e0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1e939d59d1c1b04ed0839c20cc8552b5818fb9a6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1ea8de724f168d948a9eae2a27228daa4a686242" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1ee3048b60ec12782057b3df295e7214375e6d07" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1f3840b28b9287995a264c057d9b13f12f35d2ba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1f541f07a519010bc6cb86fb1817c37e8919c98b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1f8ed1f0665811021d080e36079ae5fb8f67f358" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "1fcd6a2b695f2a9e3ba7a5f9639fe71a592ce336" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2040386737caa18577e395f552dd64e8d894466f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "204eb9e5c36f00c87a3a6da32b2ceb15e5e73812" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "205f80b08f8f706ef23062f24ed1bba4aaffe907" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "20823d3e0ab78d37dbd04259b0b4eb8a7b312474" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "208c9a446b8ff9e5d210c8b9ee4e9aa72d172a21" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2091850e2d75258c429a54d9683b81d2da404ab5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "20b741bf397f08b049906b6119d2cfb0ff58117c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "20ec5076500a09e56aadc2a21118d19a2987d3a4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "21bc225757bbe3fd4b14651cab09dfad4d6d6f93" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "21f63ea30b8ff26c8521daf58693b209966f2ff7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "224ca1e9543d7781ae513a95b553d9ba7e05a293" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "22a2b6e65bbd155b4dd06b143119d4190dca0647" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "22b0df58cd6f203accd9f9b8d1d59cc06c5555ac" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2336645345ad116b8714975b0d8e0354c0dc1418" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "23438426642848566492a1a6c9796809fa1393c6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2390b52e7c23284e27956aafc67fe7b79ebcd30a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "23b4f3334f81b5152ca330e073e22bac88170f5e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "240d79661fd0f5eab61e59b758e5cedab580937d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2426015b115f1c7b1c9ba68029c10604e451b695" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "246d78f188691fcf1127bec2837f2e01de1ee22f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "24ca38c8151510f3442b512d9e4648bfd640e1b9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "24ff3d52c14e3e33d89faf75a19bf23f5efd6a33" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "25c59011214645590d1aa544e26fc638e5219f35" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "25ccaeb276d37d2127216a9f22b6a46fab7e723b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "25e7091c2796f55e2609570d871e9d1dc4aad067" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "25ee4bd434ebf649337c1e98e0dee484a8333581" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "25f74e596b47df3c7a03bb95c80207a71f8297f8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2627eefd86df7644cd254103bd8d6948d578fdb9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2658359bd88a76af73ac3880f46964aefb99c791" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "266c09580d28c1c576e5c6b9adc926be1fecffb1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2682492fbc0036fbc5e99898b90083d9001a76d6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2689a44cb4a560692b1e16e5e3c4f06d6e574d78" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "26c212e8b44181094048e6a6ce797abc187eb19a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "26f05db3e28663e71cb17991ceaa842200b2b713" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "273b76f3cce02ad33321359071bd1296228da08e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "27a6575044eb46718523f8f11db4bbf571e487c3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "27f12534f2aca816413433fc8688abb54abef674" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2817bbcf29058ad94e233a5aec61a4da01477800" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "283934d586eb9a57cdcc6c1b32404ff25eaa7daa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2891b2135559c8915f2f5f4c0a7776beb897dd59" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "28bba3be0ecd66533f6f7334577572c68426ca7f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "28bd51c59b3866cc25099ec3bdbc29246953553b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "294d23e6b9bf101c81ae1aea51bad44a9ffec303" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2974232c8ee6b534f8b74614a7d24c51e1202fce" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "298152a083e9b3b38b395c290c75b07acd12db47" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "29a09cfe98c01e9b17eec88485c7d42560871681" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2a0148226c4634f1a76b562422c4ec7d82877c00" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2a3786b6f7fad925e7179daccc1d2fc721b24a26" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2afb3edb354199fe046f2e97c5bc40278e62c54f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2b0572ca0b832cbec75671e3750cb44ff50ff3f2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2b2e995649229266ab087f7d32a986a7e852daec" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2bb1a4356a3c8ca545d88eed0bf712cf74680add" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2c3b4655f9b65634f93fb661970c4c1c147cbe12" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2c3cc15b4cb1e180adbdabd98ae032b56fe6d7fd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2c6465f8fb5babf2e4b3ea2f7ddef105d57e7f30" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2ce5b24888df0d79fc17d9b397b25bc951b6573a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2d252dbebfe4513a4c6c8d829a423d7824651224" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2d2c9beb50614a69e97e4fc24a9cc7b91922d758" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2d9779ae8bf23410ab2e63fe7c4668c287f3ad8c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2e0bd15889379625aca50b5395ad4bf6ffa1517d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2e422e33311546db82e4246c98182897bcf09186" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2e7e4bde69b2cdeca19d62fa7c9a305d0fa31a7b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2eaf85e9e2347c9c5c77d8ac4f27372e6c466e6a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2eef1411189919efe97e2d914e9f6d15cd1cf51f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2f26216af378cea60e04f9096a14ccfe1233b29a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2f2e41c606b409983a8499f850f7ee8b0aaae61d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2f582c8aab605dcc8af561bd2f76596189f28625" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "2ffa50ff4edd6a922355054f93cc593f9cfd2ae6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3009a9b9f770a457a894379638f59827718ea956" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "303de3d370f42d81a78431b8bd47349b134c3d17" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "30a5f6c307b5f69b3a7c2902b3346bbbe34875d0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "30c6c1397c9f46fedcdec22d74d209b00f7de2d7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "30e65e6d9b6612c47079da66fd5a43bb5bec1d27" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "31913592a581cc807f93f3d951eee70b300bb4d1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3217e0545fde37b12eb0acda60d61f87773799c5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3267dad9b9e4a733e7a84e967c98c98f5f448a06" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3272138c16e14151fbeb9e7d00b2297307a52964" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "32e9afc41121f0f050ccaf5541b42c845ae203eb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "33323bc6b88c194309094edc8987269b78a4a30c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3345193ba652115a1ef2ac2ed85548240e91556e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "33608e56555740f1547c7404acaf41ca45232819" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "339018463c238d7d08023d22de9e6cef064b7ebf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3497f89db5c5e1325da740a82354007b880552a5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "34ae1ac124ff6462cd13c76300beb67ede395854" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "34b571a17dc3802bb6a8832c4d3f3877ec967a2e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "34fcd39998691f0104e18da694acec206293530d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "351bc5c495f31053e3ccfda30fd39afd5eb0d0aa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3582855442b659adafa7ef954daa8d8723d1eb85" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "35f23e0f735bef49543a852cc5265a85a161aed9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "36005885ec75e749e89f0bca36c61c1691e42db0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3635d8cf004000ca80451a45fbdb1aa67903a463" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3674c043f29f5db66c939fff7399ef07ede6081b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "36c0828717046343376beafb62a76fd0ed2196ba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3700bc186799bc5cadc8200ee9e9a2d0966c340c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3768ece795d62e6865d73b64272691d184c0b375" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "379c86e7eff1a3bd68d22da0dea6a6ad5d2d6cf1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "37a9509614464f2d42ac5f0f309c986d1c4f1d14" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "37b4a1b0dc93f47ab1312551101c49e4b24f61ec" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "37d15aa9095d7f9b523f8647103d567236265045" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "37e85c5dc5bc4b1b3318f4285dce6f3e72402c1c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "38382e1ec7bf834f328feb3170293b1ae558aed0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "38392bdc7197e433a233c9828698660d5557a93b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "38a095ec9ea0daf4be1808da5b12caa3d77a16c2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "39048ba8246143555e7595e45733d64f2513b834" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "392890a7c6d31b51315e66e80355e6ff68332dbf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "39abdb8aad4e32c71ca627f76d40fcebdd46d60f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "39f336b8e98d5c4bfafea85a777d60e9d5c244ce" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3a3fc6aea2f2b1c1750c12af08702af0292377cd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3a6651437ab178489bfa330dd7f67c0b2420ec43" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3a773392ffac93471873a163df5790aebeead0df" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3ad8a76db16bd305a799181b926e9983d534b75d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3b06be64871fb3ee7b574c242e51e4d9c163a039" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3b33135c3700ec95fc834293881b7107c111b3c0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3babdd4b5eb311e92bdf031f550114d95fd01cbd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3beaa3d0efbecf820f7fc627bdc9835f52543327" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3c0263831d39694bf3b58d5375d9ce0db27792f3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3c20eff2b505ba8a07d73c6907792e5e62c01387" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3c2688cb842071adf96459488acd0b78c366b250" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3d59ff60a74f16356ad2d45a0f4e9e48011f4115" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3d690b25fff40652ea4c0f9783e7842484e77f4a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3d89747dbb90abed91fae2d16307c4a8ca0e720d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3d9d5f306cfc562da552cb6854e437b775d8973f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3db0373049f14bdd2d94d76d715034f1fc389ca1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3dc2953b1aa00ddf9b70046f6723c08dbfe21fa9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3e4cbcb451b84fcea988b93372251f347f6df49c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3ea8b910d412cd32b8f2b024d9d3841275464170" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3eba531d2ce3c36b983b804eebaa430d6ec5793a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3edd38effceb9429da12a0e8323a6332307cbaa8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3f594fcd0809bda9130e9852beff7504bc70b62f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3f970c3e880e17268049afe0136c5e4be06422f4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3f9bc5308394d40ca6ff3f6094fb474bcedebf2c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "3fb52462cf23a168a4e33ccfbddad996618a339c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "40987ecc1bba404142eb5b631d669da96aadb31a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "40f0cd7194719d63206a7c3b0b48148bd2168100" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "411f2f8c37ccd3200231d74103b719b07913f8bc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4121ee49b4e406ac1e1949b79e1359f8dcec6983" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "412b95cf0478e99a0c2214550e3914d59d77285d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "41c40ad8444d60a95c537b3492b8c53d740971e4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4217a0257d2b748a9d44fb1aaa0016fa2aba0159" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "422c691846a0233fd770fde7eedd648ebe89d615" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "428d4c02e39628749ec5fc26b3178a24d58ddc9b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "42957a5b33947f949f53986846f094887f79f331" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "42c61a89c77129afc9593f6e4f1d06f8aa04e8a6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "43054fde6e8ca7c290cca327cc8218f749d9660b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "443f785684c2d782ed90dd1f46d847402767e1bd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "444787f843814c81c835c613ff48ca65d68d022e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "445f9b4bab1a3fbcd38de15bb4bcc4d468837ead" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "44b2447950b2eb5becc32a9ed3a3df44d458c886" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4528ff2bb4d54715084dbbf7f524145b71671d27" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "454b39e53405eb18c4cf5378b913c56794d810d6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "462b26c42744c25a8b7e3c237624848d1f13595e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "46595fb275f5501732f5f31a911102ddb4574730" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "46637898ef2166e3899e1cba8dac0e82c2b00a11" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4749597cfb4dd62b93b4343dcadb938e4805e298" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "475e2078f0195d455234aeee4cd04a3a794e1ca3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "487a53afc104cc90c92d1e6dd4eb137f6d23abda" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "49198360b42d89332f8cc121182e071493045c40" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "49365c5a3e3b401c2e68eb6055254fba299c611a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "495092879cfee806668a7f1196191207a653440a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "49b1871b4e9f757f362feed9003ad48b41dba503" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4a35ad2c1c7d586791c3395a6253fdde733ed3a8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4a960613d5b07952c72a36172475b5401b9516d9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4b05781e8f4b12ae297d6821116830459e54ba0d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4b0ab2a0a3b097d5ef55d5e8a9f091173df887f7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4b275af942e73ae9bd1be00b60647c7eefacdf52" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4b8b73be27b46466c8912bc07d7cb97dfbd8eb27" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4ba66e08a50f50398d08a29cc7a13c4989c101cc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4bfef69c0015b2270919c371f5a1b7e8db10184e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4cc61d37eec8e5eaae48be10cbdd1e44eb4306f8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4cd28b4590fb99eb47b6979c0f09bfc7c1a15690" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4d0cf20258ed41de8b0c9a74d5f0b84c884a9772" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4d2902c4616aee92e08c204785dbe0416abbdb9f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4d5284034fb6cdaaaa7b2ebc2c6a824cd8ab1597" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4d7cf42e59702e74063a05fecf6ce1c7a1896cd9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4dac6dcba6610fa0594d0f8e04be66340202a6b8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4e0ac27dc3aef9670ff66a9b1eb4696a8578929d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4e287173b52240f0cabf604adb362b7ff96c284a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4e636fbe6f0f537a9dd92d0cba94114eee6ac3a6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "4eecf547e1c4f77daa0e65488f2c295a94a95d2d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "50bce47d7833dd4d1eeca63cb523afda39c70c95" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "51bf7a376150c57be4c9922dc118fed709f692e0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "526a94150efa1c7d4299bc9bd9e3deec8336a72a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "52b092409ae9d918623d3dc6ce4f98d116cb9a92" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "534577bbedc29af7e45f9c77984faea7cca830db" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "536fa395071529a74edf1b249f7029c9a049ed17" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "54301edc4804abb6372e684b1261a2c487ce38aa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5446b11f635ddb363e1fc1d486774e5b7539aeb8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "54a8081db5834ac1a3f551d33730bbfb8ee78d0e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "54bd03f4f50a9e3b0a3235c0c5ba9a47b4598114" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "54e49bc52f5e367fc427b17e9352dd53686b885e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5523d77b3b76f6290413b3d27401ed359b3afc9f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "55e40554287b41e9cd5f73c46e9e2a2f142a5fa5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "55f28d96933e16e1cb7b54702545911ddcbdd7ec" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "55f311e43b18a2250c12417628306279ef3ea79d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "560046d949c8ba03aacb63fb7cbe4a5b2563d705" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "56cfafa62000e9b801b4119a01dd711180fa9e3a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "56eaa411789dc13fa7878bf822901a020e5e4dc1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "56ee02e287260f94c94073fc368e0d03a94880e1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5724acafe0c60bf4abeb00b4824c3130e32a6ba1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "573993d127978691696a2ff5dc15a9fc37f410c1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "578088188b9bb90dd124fb5dccfdf885f6d75af7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "57b2ae840a37ea52250dcdacbb0568357ab40eb8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5825eef096feb72ec4ac6158fae36d2b58ab3dc5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "584b1d9f374821f1890b86128ecec3d2ad83b2d6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "584b59af65eb21b87a5e587f171730314c511252" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "58578101e7db4fab2237706b3ea14f90a51aec48" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "588171f16e6a44e692e6cdea2ee141449aa69354" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "58d9b297e38aff5610c1103b705683451f7b548a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "59156f3fe97e2839fc50cb3e224335007e722a76" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "59a75764c1aa93f1cb6794ca827105b131f11f5d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "59cf94d7dfd7ce42ba97d8ebe7ebfe557f7d66e3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "59f431f9443674c6746e926f09730f920040200d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5a006b13ca6b1077de3d566cff20e961d62b65ff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5a165dc1bd312048a6d080d0946ae7c8e4a1327f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5a85d2728e399395f02da9bc4bce6dd0914629db" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5aeb27f1f9089dc0100fd3cff3258a5091af1d71" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5b07a62fd8fcb0e6c9be06f4e4f4a311e611c063" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5b0aa15bfcc93995a15dce0f817e8d3c495eb3dd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5b764e9e2299529f45b7ecdc3cb393d9837f4a67" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5b8acea459c04544d8d84197f4734d1687e40457" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5bb235c3e1dd184fe9138e87e03f263842002fe7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5c01efdb9b284d8b80624a6f21cfdb3c5a1e8349" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5c57548e5054d19a9150eb1c493b965c52442424" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5c78d0da08b9d3c955651d5fc57fd0189252b602" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5c7da6459e1d00136550702b6a946640223f9b4a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5cc5a3385c7e53d87a13d8b78da8f1c76a34a27c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5cdf0faec65cccedf007754e11ec22723261de76" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5cf4d6f123f7b19aa2004a5829d4e54a0eed70a1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5d78bd52635b0b053033ff44951a2d072c6a5b1a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5d9f3bab4e559bb4cde71be0abb62f668e4f581f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5da43f582dc56e2da6f71fef88c1e40d99b0eb66" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5dcaad66618e103df5befa088d3ab5e37208c324" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5dcd7e8d2707d4c5df3f8a354628d1efa5dcbbaa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5e359a6983a51bfdff79e4a3924712f00e635bc7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5e3a91106a3f077494dbfecfc188271ac31ae9c7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5e64b91bee8ee23b5fde77410e3e72b649d16e3a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5fe999215043f2fb4bc1530fbf2050d526b68c1b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5fed06c2421c13cf0464fe1e482078693e85e000" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "5ff2ece1e1885bd21d476d07790c32fb3a85720e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "606d2f2b19407687b3254d8ca1eed0bd9b90f8f2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "611a797050824515fe05cc31e4e087548eeadbe2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "619adb8150560a393688f0e8fea8e84942546623" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "61edeb27a0d98067c07aef8d8d75b2cbae597f80" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "61f4913c4b95eda97d839747638b31d213685eb9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "626c9939c373e177b2ffb4c1a36fe1fcdd540936" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "62b95540117c01568c6dfe95fa83c7807d109b83" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "62dc60410eab8e738ac3377858d9caf63c3e269a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "634fcf98bf50a1c83ed408847494d2f2716e4b6c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "63596c8a490a9b58c4ded759683008e2b8bdb92f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "63620a84dd4ab4a5dbcd812d1c921a7816cba23c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "63cc700a664d0b5a2850fce7274a40c6b71673e1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "645d87a5d597ada58508bc863a15c915788c96af" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "646cbe6205bf6b1f9e0fb7b08a5028fc09c013ed" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "647e18c9bf4bf374b02d7cc23aa47706b5869a4c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "660e62b7f51e7f67bf39bd1dc5c3b47b47614cb5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "661ef4570377586178ceeba5e8ad192d8d52ec27" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "66b554e8fd212a54b586cf61b13cac4667f679c0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "66ccd84017231c3497a0853951ee30ed3dd2a6bf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "672ea34d3d637f1bc9fc390f20081b756f2d4ae2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "67c949337c5bdef230b4a67faa31b9f744d14aa4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "67cdc3ede9a4821c28df19ad0ef569f096300bff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "680712f4c6c4a0ec529a5156575c7b3fdbf5c044" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "681020ad3b116c19fec4e9556c6864c3ed837d08" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6839582c254279b17014ab59f8cc63b6b42fc705" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "68a31e1d86c4728809bec7d7923698d5fefda405" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "68c854bca51d8a47b1dc8f8a4e30ee807509ef10" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6919510eb45def9267769b62336f502b69f15e89" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "69de6e0a52a016ea1dbb0de4e83ce0886814ba08" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "69eada7f1d77ff9bf9c789d44990f9141e39d71f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "69f4d9ea70b6473f81170ff945452240c86f795e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6a6a328fe89f4938bfcb65ee06b9225ac3a23ea9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6a8cc170b1464d9d769045cd9fa606d73bfd0f57" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6adca8353245f5a80f21a463df468240705e3d47" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6b198b834d05de8c91ac6f2a6bf6bf968175ad5d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6b4935e4bc3f980ae48d3385e8386c856fcd1def" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6be59394ae799279287ebb16b866edf64ebd0771" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6c2e993eaae4aba9dd15d5695cb0dde4eeaa5166" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6c4244726520381b031ce37a7b2785aeb7b2d042" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6c56475f787766a50809ae19dd860dae486f053a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6c57b7dd3b888c23b031cfdad7cb40198f08f82a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6c8f3e2c4b94e3188d4b9712d4c8bfe95b80a33d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6ca9a51627995a321981f06e6110bde0a4c759d8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6d055d9b9509910416553aa498a7f0ee21cac8ba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6d21429adcebbc40c8e6e74160a8b21d05676168" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6d40791455a2bb1810409dd282f5ced10aee972a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6d61837a1c820c0080006e69808a648504785849" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6d96fe81caeabb16479384507f13c6cc42f2e018" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6e0a1099a118ddb6a0cf7f996e8bd5998a531cf5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6e24b2ebd867bb0f768b7850238fa9446154d057" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6e4f37e15b54f621b509362ca07512124a9c673d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6ea0efffbd6119f494d276a6569425068912012e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6fc6bd9da909edeb53d730a4ad77e0faa89638e8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "6feb65b8f65dba75cf1b3c61971b858ded97c377" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "702cb066893e7cc6eb0cf2f6789a588568515aa1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7051df36e153fe0e621c7b2bb2c51435d0eb7d60" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "707df82e923a62ef34982c94db66a518f7fc66ff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "70981384229f8ce437adfe11809c400487f95cff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "70caa1542bac1de4c4be08877ba635d7096e856a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "71177edba42b01d19fedbd411313dd0db39d9d4f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "712e00e4b40b2613fb1202e843404a1d93fc9e7b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "718131d537d55a7b8c9698c09f2c1b23b1900862" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "71d6c1ee645b8bbbad5afeb69e808b3bcbc295f1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7285c334038f2f34aeec89864931a34734aaee2d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "72a98a595ecde6c0aa7e6c809d265540e306ba96" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "72cfe33bff294cc584f00ac2b872eadfb591adce" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "72df20c7dac66c14914efa1d259ffe3cf9cefbcf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "72e5006cf172bc801c544cbac8f443ed5682042c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "734188182b74753a394b9bd89a96544b2866afd6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "73725c9115ad31370045e004ddd0d31ca03c96b4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "73b568e8d29677b7d02ed010b7a7452b92afb4b8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "73bbd5c458dbe4b7be000cd8bbc08c2f7ab6c076" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "73e952a6dccd67fae803a718cb5781e9a01a8c80" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "73fa5d896cb1cb4baee7f3123d20402203414653" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "741d532066e76bc6a7fe498654041c1e944201c2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7425beb2a5ef0e85ffe776a94b93bede533add19" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "742d237e0ffc75756ab70ad03d4b55e04b409278" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "74927d511d7146f092f54386dd9c29d3c7c98f0e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "74b216e39c5e67ad4ff87ed879a9738b4061512b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "74bc2be7a732e6f0dfd9048b8e47fe603b6d1952" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "74e6add224d24afa296edf113310af8505b3b470" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "753e299998f55f16d2390f9a895f648a0b024692" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "757620cfb3dafa852fdabc4e2e6fbff565942491" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "759162c12314c314c8d47bac1092e92c5257793b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "759c026c44a5507dc01cc312494d6b1fc44a5d18" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7616367b4ef0359a842197813b8f954fec920d3f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "761dcd796f4887b1850b5804be048f986c648158" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "76333aee952287d0c76cbd4cf6cfd25766d08a35" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7650acc9c3906364e8a2599a5e89f1f99822448f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7686794da1a6a37479e0e9cb46ab4f71e7932d42" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "76cd4352c7e4f5fe9d22ec7a5755304d037acf74" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "76d1b20ffcdebf37fcc5ffbe9384ef0de0a057ed" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "779dfb99e479cad1130c40c9ee04a81317ce1197" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "77f1fa9f8b2a893c23ad768135c2f390d05eab00" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "78359b0fb898bb19eea593a7411478c7b99e0ff3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "784e8b8710aceb4e57a03cb939209880d3aae64f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "78be43ce6962ac017767e232bf738e41c83d649e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "78bf0de80a65fb817a2035f4dc891881cda1fe69" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "78d7e5ffc4bc7e65f93cf9d18561a27f40777e7e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "790994637a5a9fab4f58b49feda472e381c0f49e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "791add4f56bd80b3b8a2f448678c40447f522355" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7950d32431cac9c6ee385cdc52a8b861b35a0e03" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7981fa24b134deb51d71d250d7b0d9e33c8c5457" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "799c81b19b1b3cc1ff12ab91e7f6a2b54fd28ecc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "799df4280710b447966bdad4eaa7e37e603fcd6b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "79a52a834f53accfbe9a75a3c4655d38919d81e9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "79ab336f94f3910423d81557ac1aad19cbc555ce" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "79db67c45ac2ea52c3a965538a32c55cc327f51b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "79f82dcad66620762044c9c131c1fe4c69eeb491" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7a1c36bea5d53fe2fedd11c085117ed4f1a86654" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7a7157f0f027cf7fc82791c3dfdb09ed844dbc28" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7a728b263907cd39238cd6637ce5d78fd33b92bc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7a739a37a0f915fc259c925fe6a4156fb933c39a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7aa266382cb938acfe6564c296feab316a285139" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7b670b449989bea3a7a1fd74f66af75491577762" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7b9907dc4fa814c60733e78828632e720a3de36b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7ba9312566302f519478fd33ec161ab902d51755" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7be57bef8aaf3bb7334c7e008a20aa1950309715" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7c29bbc2c7d654930a21030041bb55b879c61aa8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7c40a6647cfb981fad4215191ad29663ac1b2b7a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7c601a1424a4bd3857040cee092bfd45b3d316d3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7cd8ba2020a955640bb75fa50da76b36beffd39a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7cde1fe6f51b62723180de9c033883f8dc6eb219" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7d1a929d92588683bbf600bc13a8e951a6785d44" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7d6096e9865ec5ca90d4b829811dc6686ee157a0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7d8a71370cfe5622819629630ecea1c84415535c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7db203c67f4bcd1ad13a75aeed34d8a0924dcf72" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7f17bc5bcb137df3fcf85c697fc824ebb4edb1a2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7f88adf11b98203aa91224b252b46cb35a8449ad" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "7fe974ed37b74ab8a05f8ed72965b2f8d02aa952" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "802b627cdf8df4de841aec3ead8d3f0d8571c905" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "80501d37d825e56fc74433b60615e8bc430f9dde" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "808152931029d10c9fb4b6e8f340cd7a1a9c213a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "80afe70babfebaeaa0c530a9aa18dc4aa79e3dcf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "80c20553046afdef0f4b817ada4ef28de3721837" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "80cbeeda4fdb308095b78154e588bacb8f16333a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "80e34342c5ef923c043bb708b3904f139a9ec76e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "80f2e0132d9553ae1e337ab36760a02f60c89fcd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8107cfb41a7c6a7051b91a7adbce5a7816c42295" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8122f704fb4fb4c5b42c3cfb6121daccc1c57339" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "812cf6065a35d495e89ecde4b49932419ff9433e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "816ce660c3cbac50d5a70e166166c2c89415cc47" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "81ccc88bcbbbd53996557f033d89e4f4b9f103e9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "81e31efc81653769ac16e8b9ee752e2428bf05e9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "82055a7e67714bc54ee1309ca2f913d9a0e795d4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "82120cde45d53b1505a48452177dd0dc57bdf1f8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8239f641eaffc34a8be56db278e208f08e366cc8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8261d9c0d33018c47cb6df8b0e907c69d1273bdb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "827c736c5a437bb573a66a2cc84d6e32197c14af" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "827e3bf7ef9a5442f3c953bead2dc8177f234b37" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "828443f3b2fcd28813c8abcb633bb1e9516853aa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "82b084fba9231fa00c8090d8e06df40efeae9a3e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "82e47738a829bd756d89da1c2a3b8577594bdefc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "830b150beef20fea95706f1f4fc1c988bb54eb2f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "831c3003408ed519a3f6aa50910b9aaf14df457f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "83773ada463fa5fe310d41b0d3192de23f484866" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "837be5ecd71b5f18c9015ce3407522090711bdaa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "838c4b184904fada390619b7adce7be2bc571984" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "83ef2653099673af851d6d0a1f6aa9cabd8ebeec" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "83ef34ff433941808b2c16725e5e85033ccf6d17" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "847cfa02a6109914cdebc686aee3cb8cf27c3e82" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "84914888973cddfdf58bd1ddc222cb7e5b8d2aa2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "84d824c01b74d7228ede3014d2da88c44147413e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "856cb14df9cf88754369562ded33a3c5c945f59c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "856e31dca2057f20f3f14feb7f5fb609a7077b2d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "856f442e3661ad4a3bc4ba14d9e91210fd42dafa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8592862bf400ef7bbf5150b98e5bfd7301956338" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "859631d5778de3be29b1df2f5e3b0ab1717255a7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "866499744291653de2bf69a8510acabae6c8e2a9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "86cc13eb09ece3e9aa0984932484a69740f743bf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "86ea2fc3453722a8a98889bf7cd66a8601929129" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "87077495811b849b87e080e684eb26af421e2a6b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "87811fb34ad589bd727a854fe604339ce8eb8f78" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8807a15345db3e69b124b7e0629eccfa1e3006cb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8824a283c70dc47cdfec3abcb14fcdbb0f288b0f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "884769df3cf21a8bbc5ad6a763709255cd6d4297" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "889cab790f48cae381668f27420255ec0eb0c1ee" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "88d034c7e61b516ac581181ad171201ec68fb969" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "88f40597969f015c725566967a148aefa51344f6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8921d3b4bdc70cf8d6c5c4e5fd538b3ca06d9168" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8966569e2747acb7ba6f477180c921c6f38bbf5b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "897a5a45fbfcf0cac070c760162daa9268466ab4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8985c3b738d8c0bac2cc2ef08acb574b898ffe1d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "89ec79e0d0646323cca40f77c75b8b8f4ba2e62b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "89ed59ca181ba3ed5704c8dc9e349b2ee2bb1fd2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "89f3f126453b6f61635f086ae06214f55f6f51af" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "89f6f6a1ba1c474b031269e70b91ebc1ab6abc20" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "89f80e75f6b1a96c86fec6f0b2c6cb6d6be59d91" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8a1a503a6d3cf34dfb33b99bef2afed7a70f4a10" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8a22ababaf1deb9db9673cd824152ceed45b3aa7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8adb2eae53cf8235a471c15bb8ebe2aa1345c1e4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8b92b45f99c497df3e58e42960f21eec4de1e0f5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8bb1638d8f41d80d611f24fc96ff2a695600eb25" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8be30730bc80a7923994c15f3d63cd92b9417a50" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8c968f94a71ba1375bb70f16769ee39992013ac2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8cc9f701d67d24f90f77cd622130ce5634607881" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8d481f79ed4a2cf3d5e28da122d294c8f6f42c0d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8d9e88e3a87ed0b0d3a2fb9a2f1c2b66a3927e60" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8daaf8b83df0b99999c1f1d8485856319d34b9ce" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8e3b55809b9a8c849f334114ecf3e62b624e2d0a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8e46a8e32aecbfd8066791db9c5d883092ad9726" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8e9cbe44e2460c140655d08ce56b4eb78a87da3a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8ea972b5f83a6ef4bb16320a779ae229a7bfd07d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8eca7d754f8408a13f6c3d9d2f27601a4fb2a209" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8efb9e4d0874c28b08fe0454b55df5ec31a1d32e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8f467007c2adcacc28eacba73e34fcc1aa8a0533" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "8fb2426dd038701361c622a66c6790d7891254f6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "901cc1c13f30eb2fc6de17ba1867dcc8c1561d46" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "90a4b5ff89e5e94dd409650f3b9b646f2c85d39b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "90a652599bb2ecb0e5f6f60f80ea3e90892e05fe" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "90d12510e3164b7a02e725cb8ba0f4bf6e6a66a0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "90ea67702b12d091164e2270780c99c070cb757a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "90fdd70eef0f44b1fd65949a6d2d6be0db3f9687" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "91317869e4ee1f231acc9ca052c6102ef7c8fe20" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "914958c2c9c8bf0210b55441bd9155efd13f8826" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "91f2d8a3dfbedc47ac5860bc6467eaed37738c83" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "927bf3aaed99b0896aa2769048aa9fbc6b2c1cad" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "93a3035dffa6ca3ba6bb97581272dbcd3aa509c6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "93f0ea7460fb93d82c390d08b9c3404b6e98dc95" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9403b1595c8ab907b8de91a7ca5e60691cfe2201" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "94536710f95c424a7c9c83bfdfabb3f198ddaed9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9466dc44bc7447439fa7e49d219b046926f08746" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "947bc6d62d88a51900730954e35e485908944488" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "949ebaab914089f5e0511d497ec848a40115c9ce" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "94aee9bd0c774345eff36c908478098812bf8ed7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "955e561bc38a9f971a7f45272bdf2e0ea0ea30f4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "960726b46ef9c5e61f524769dda6d118bf4befbf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "96ba12e790e72f9f5c0df8a747b46200e52e39eb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "96bf80e0d60878a07742f3e6c766b17efb195a6a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9712de6f4b630c7a834975db45844d77b2f4d69e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9737a26a08b2fcdb4f2010caef3692e8919c04ba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9737e372b0bb33385e2fe07c3f73f7a8dbd5ff6e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9757f6584ba047405ed24f414668a82fbc5e1cc2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "97dd832eb719f5b15fae5065c29cdafec99d1c41" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "97e0856f6ca2367852b4afe4864e698e03f931de" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "97ea1338ee0a0ab7e8eaf1e86750b22a85f9f5f3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "97fcc7efc496a85ce212f43b14829514469f65e5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9810ad0ccc80704e904a35ff8471ac952f594db2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9863771dda3b4cca878b0f74f5e6fbb51db99785" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "989e587a70b1c6be956828fc94b86fa975ef7f25" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "98c25b067db8f776b80eac526839df8cc6488bfd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "991ca16673a9f5412779d4fdcbd7e4278472407b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9922f47a124d0579126f7ced9f57fdc68f0a1aa9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9935a18e63b1f4336bd90544f8b40bd38c31765c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "993975971e7de6405524c9ea941162f932360b9b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "99bc50a52604010819833a510c0df945bb175a06" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9a5eb1972e12694206080363b3e75946b1704193" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9aaa61e9c6a86a360c69485bdb13baa221cdc5b1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9af9fbad6f0dc09552538987e3af29f29d046119" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9b27764cfc8dde5f460ef5e2ba6c309c56eb28d2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9b7d26b2ac4c5b2de35be38f9965e366da9da4b3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9c12ddcb295c61d38ddbb03b83d089f13e97ba59" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9c7a7ec89bf22676af2ee93202c0f1c82e10a740" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9c7d6ebc54b15d3981d6b3dacfb74ac835ba2ce7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9d1121b3912f021cd3ba8f1316d283fff405cfcf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9d18117463894da0895f7e5df76a8cdb89c3fb51" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9d1e0b689aab0059e866dc366fb30a96e407f016" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9d28ae17ff87bd5fd6b960ff7ee3c1668817ad1d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9d2e6f42e5ccc5854d2ff715bbd919f4e4bb8839" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9d7604295046cc9cc65d6de91de2ceeab96bdca0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9d7b9cf43fb66663f4b2f534323c0165c70597e8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9e131c203300f2f145242d45975566efa742a0a1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9e39a218532b91717d4b76d88e60ea53a3e05f1e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9e7e68faa178178711dd9f77486a44cc8ba99609" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9e89466aeb2a084f806bdf1807f194ac4a1613bc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9e99b4387e43c1ada856530dac582620b399a130" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9ee61974491d0cda218d7333a1e27d9eb016a260" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "9fabe18fe2e117be7af8161c8e8e38527a5dd470" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a02d4a1330912ddfe8f4ed3b4d17f1bfb9a22427" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a04482d9afc9c669309d2d81a85ad71dfa2bbf39" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a059d59433ddfbe1a752b5065b6c191e361075f9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a06d0f5ab9cc4ddb86a11561251f8ec1e4b805ef" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a08088a77fde5610814cbc50b9aac119fa211c8f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a096917b46becf1cf8604a9efd32f0fce88cd8c9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a1374ac4c404cd849c3099c8da01f296e9a76541" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a16e9573a4653b14cf01e483de14d545699e756e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a1e277a2b4371b736b37925d264e027ae52e6aa1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a26034ef5b4ecfb50effae632376f05304c42968" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a29d82138b426cf630a281c8e320934289b8af66" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a2a82f742d4335eb4a9b29075207fbf23480ec52" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a2afc4aad90de26f3f02e8209267bdb2e0087929" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a314509f894f381ad35d30291c5d985cc1682e24" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a357ef3f832d0a459297253f22a7514b9153aaf3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a37e05f16fdde6c8f68ea6184ea38fd231ee5386" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a39775ddf9f51b81547c340afecc9eedd1f46d20" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a3a341664f697bb881fa6b2a9ec60d1ec09abf12" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a40f22d2c4f42e3ccf13efe82cb680b623d4fb12" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a4b6757a41d3ff6c4fc8dd608c4c5b3b2e3f9631" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a4e259e3077fc1a4a68f94f15f6899c6f371074e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a4ef52ffd9baf1c9e03d585756253fb94441eaa0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a5038c5df72b8abaf1055b2dc634e4fdd74d1e53" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a5042f8ba90187c2e061d9e6415e200887717822" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a53988f733121443029094ae731b7b356a2c7e4b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a5c6361036103054e15b29e37ea3a722315858a3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a5e4abd2e58d763e662ce6505186e165d8666146" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a6767c06a178fc44db83cc48f031f80a4c3a7350" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a6a082cda4c06c638651fd23330a5e1881b002fb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a6c893e2a818191397be5288894b0cc3e320e650" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a6e1486bcdf474ad8254355ab503b68119305889" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a8120173d52dcee69cd4f1b094979310ce522cf8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a879f070fb3f96a6e9e2c2ad9056328fe43db4ed" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a8e1f4329b8180ff69fed0f920d93f55abf6bea3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a8e2b5739895b791c56e249de800701b41e8896b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a9072550408843cc90dfbeae2f8a3f238d98ff94" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a91b8112825093e21e55feccd96faa795c51dfb2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffdc95b6a", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a98899c6b8dacb7ffc082a8626defdd92a6cabee" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a9bb1d8fdfd33ab6a4267bb79a4c40b3c35f2ea1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a9fe9ff21e52a30e6734b9394828c8a3652b07ac" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aa1518d4ef5cbdb32f415b894649a216d5057332" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aa2a2735253360f10baf2562ae64c0a96a7937de" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aa6abeac0bf58ce8ef3f0d9ed85391463ca15de9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ab4b4eb10ff53b67bcd0e7b693008c7e3bacd48a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aba657879959cccfa995355ed23fc7645bf3e745" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "abc5eb986bb1bb3c3934be01b8c12f5e60c16328" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ac3e98e868baf378552b9bdfdd5e83eb44efab5a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ac4d8f3ba70675684db50640c5df918dfd602e5d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ac83f99151ec272c11f0061f4d336ca0c4d64d52" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "adc3fc106cb97b26e65cb9a594f91663ac3ee1d5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ae8d46ba841740b2fb2322ab8db94026607e63a8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "af3a0d8912c70a8b72d4ae24e056d63e8f9bbc64" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "afe5689f36a6ef461b45758f5cce3584273bda30" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b02f5572a71526016c1ad92a6f1aaecc80139469" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b0c4cd2493c3dfcd3cde9eeb7a1f83065ed9dc93" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b15f54e28255002b0fe69e79fe219258568d190f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b1708854cdbb9df3a416cc17a6ef77b6274c78d7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b1755e9f93ae9c57ce86139c1a138414f6d5d3b0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b1e399874ee69676410c53e821d5ef25581d91d1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b20e5568af3de41c388985a944b12e6eed1b5232" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b25e81405ea25ad7ff82eccf9049af9218ce8972" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b26804ce746646b31203e9681758b25322173edd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b31db793b6a0505e8650fdec90c12400714169c1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b3784dd48ad82ad7f418d3a067f535c5951bfee3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b3b51e8c94f386217a7f0106100a86f7da348ad7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b3d07a1a7eaaea7eaab617804984a9a642772d77" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b40e923a00aa1eac80b4374241243e04c7985fcd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b438962b924213627655df023ca0160a69864ee3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b45903115aa6655340724ff3e6bd82b1d4b4e153" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b49982bf00bde5f5b5376357b95929d67eade2cb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b53c9d2431373ae7f557843ceb7f9d93fdf33786" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b578beb05e82c00f2c8bf4aee58828f2e4eda91d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b5f0392111bfdd4ff19997b162ac3c9c78f94ab8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b5f6a233cb0a3336ca3d324a7d0cfea6d9400567" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b65df6a805f9a11e31937f4e70bef7b57a2a21e5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b6788d89e6b5d2608d002e8d1a6c4df44f075a29" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b68388dfedd33ae9d54a9070f8db06cb92c03181" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b6f903bb368069d28a7f88726652d5fae4ee5b00" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b70f9723bdf494b7f10d172c866bd185dedaa016" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b720599d2ed6a05b91ee89090b31e7f3f0a894c1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b729c6f59fd56a52273760fa1a50f2d2041ee493" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b769e76bb5d50070ce8225064433da01c4889c4f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b7eccd2198d10435e8d68ba6b413529355bb97b6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b814bd30f5f4468f14e0e44ca76693ed419f7d5b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b838d9be717485f3bcbf61aacd381278213598b9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b88b54639b42a9cd7016bc821f2e2e1faecca41d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b88c26fcf2991125455ba3305400dbe444d06f41" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b8bef06a5ff5da7e104c718403ca45fb4b8ee91d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b8cde949b7de71e3db5da54420d78ed37749f618" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b93a3363009cea3073bf6785c264940cda53f176" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0236a48b", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b95e8581119ef873b99ba7a7d1d980939e0b83a2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b99568a67d14063e4b6d3772440a5d3bf36894fc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b9ac03910f8d4821a3c239bd37dbafd34786c2da" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b9b7610e24f57f6873ac519d7097248f4217edf6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ba4aecef9f1312a76ea6fe1d1d3eba96901a2ebb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ba6480f0f7837b88810a22c19c3ffddf2f858b9d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ba8865367620cd36dde0f1cedba5715d31bf6ae8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ba9fe52e2f2908c35383ef6d548431a865b065c6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bacd07a5e0dda92d2f990f5ba86a43fc0e19282c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bb35e67bacd29e7c4712b1e9a90a2549bfb76821" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bb6ca5b47ecf72934a3a01c973cb9d889159bfe7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bb742e5c482812edd489709946495e0f21f9e73e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bb8806712b21c28dca7ffcd769e5e5e65ab4de42" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bb9543969804c45a3bf2bb1f34c3b1a0d1bacc17" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bba71dd92a50f330f5dd9ae1810db322f2a694db" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bbbcf533bfcf4f82d07d07fedea2641efdd8d4ba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0ffffffffffc21", + "code" : "0x5b6103e8608051101560235761c35060006001f06000556001608051016080526000565b608051600155", + "nonce" : "0x03e8", + "storage" : { + "0x00" : "0x7981fa24b134deb51d71d250d7b0d9e33c8c5457", + "0x01" : "0x03e8" + } + }, + "bbd499069123371e310ac20e709547b8b1dbe694" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bbe73ef4e36cd400951187822b1ab909c040e427" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bc7257a38b718333de333c7b32e0772db493ac27" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bc9182de5c1d4bfb6041fa25ae2c98084bae5a97" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bd89222d90daa4c8d4b2059df8c3d257d100fed3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bdb7e631c8387d244da0e35430fbf9ff8af719fb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bdf36b8cba65b72cdc1049625f3b4f2d008ef37c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "be15dde3f26100edc664e913c9c1a3edd35d1fb3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bed15b4fa8c4eac2a9889c755a0eeeef3ff4b0eb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bedf686e35aa0f0c308fdc08b247fe1bb9624cf8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bf42904cd43aa5ecc356b94fd719bcac14a8eca8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bf474613f113d51f9455a70ba0d02145adbab4ff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bf487b4bf869cbf7b9a4ff69b78e5fb2e72e2325" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bff44f87d4dddc7d59fad6363698bd669751b1f7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "bfffb9c4e118f5cd74da2114189e7b2bf125145b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c1456fc46ceca3afb908f21c7a4a00c4ee883ae1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c1c9438ee1a05c2102633b87032076d0d61f2263" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c272a6d5e4cdd2ee3a670b0b1fbdb66046047eaa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c27631a45ccd086c860ae92a87130f0183922da4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c2f5b2782468dac129742df46ed3471932e41c5b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c4050efd1ccfc976178b4f6fc530e040cce67920" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c4051ad69c93cbe4876b834fbfd2cc180cecf423" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c417aeb14a06baa6ad0c234a6db19a618674e011" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c4c52795c02a263c868a71d891b5b85999a903c9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c4c9cd2ca411167c072e69bd3dbca25d2c9b70ff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c561c9bb90c132906bb85e8a05787e7f0e0b42b2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c5e2984f43c1d9969b77516ec0444cdb985f5626" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c63b3ff25356fcbac8c31db88a6bc50b88e5bf9c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c6d9dadde20d8b27ed5902536de05d974e6f8c9a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c71ea553ea3a98ed1c2256597bcf2fdfe8068675" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c725034951d89185e6f5ed91775e4e6dc831e19e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c85604031f13b9bcf00d89612355b0f58a7026ec" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c858b8c2abd350596ddac0c24e1bba8c3e2d0c9a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c8d3c27b9d6f995a513c36b2bcb4a05e44cb704e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c90d233ddc457e331265b16d3b7beebca4ea5a2e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c939bf3b0a8cf4a7b975bf152053a50ff5d6f49a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "c9e52a47e9b34463ab9ba23453fc09506f4ef8f9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ca2bc0d0a08dc1fcf4539767733ef11e2f4ebaf8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ca7876ce32b095c127605a97e8bd8501f4933db9" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cb205ad197b934b5ed892cb8cedbd54d682e2a1d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cb78de6453fe67ac38868ac60825f0288e509167" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cb7f8909d720c7762fb9a9b3b682e63ff972a469" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cb8d53161715e8c922636022044518c26c9eeaee" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cc20031bf728671f6b1b444c2930f966e81ded28" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ccc496495d285840090db6e74f7c12318271d73a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ccc8aac532fc1658a59ee8f21ecf5561f805c00f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cd996e17825a433701b3a021ebe8a54ff0af5539" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cdaec72749c4d25f5a108b7613cefe4332123042" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cdc6ecd4032b5a8e2f65151b73626264984124ff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cde03a6bae2e637e5b764a69246fd867008d83b7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ce12c4cca7cb757d46e9e67baf24f9c7910e0b85" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ceb0c0a1c404e8cb3c08077d06187bb24d29e324" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ced06dae32ae2a0938de8bcddaf18037371ebb51" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cef205afeb5f8e315216fd71dc56c9b32810212e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cf2f87cb85cb92952ad1e5d03b82f074712fbacd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cf90e4711722622a19043945f73e8e00a8227f89" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "cfca29a1d60177a67b677114027b8e619715a247" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d03b0948612fde24b0572afb68dd30466e05dac0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d0547bee1dc7d94a83b9f1123ddcc22657c61101" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d06d76bb95f61d7ea1eebcb750d90c952a5dc891" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d07328ea0950c480c652b05ae59a9b5e8c20492f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d079115dc380c1fb09859aad31822dedb5274bb4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d0aa70822a682e931eaf27a04947a308cab300cd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d0c7309f1cac469b3599d67a267321b43d612ef0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d109c076c2722c2c363517c9e1fa1f8cd3ec76e4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d152daaf5513774c4baaff5bf71ff1981e37f1ac" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d19a12e80144f4fec2e9fbe9744a463594b65124" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d23d38d04948afe2691e99b4175dc09b29418ad5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d2824402854b5731a84a050cdfbb6a583a04aa07" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d330ae310b4e7370979357a7df4b7619d286d4e7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d33d471540415bd75a997db461001b16153b5450" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d3af5a55334a831c4f193b8d571612102783ff19" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d3c1cd8eba33be282da10f0645f90c5ea676fc3b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d418bd34a5767775d24f15f5d30b61c2a06c7872" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d441bfed09a4cd51f28bd772a8cf9a8e74c883a1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d473075fc09e5143e01451ce6156e0f6161fa634" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d4b8f3880eea661769340e9f299dfc00b23c786d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d4edba1f73d58948e55dce60652bcfad47a7234e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d5200e38645ed5619e76cd8444ea36d3833f96aa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d534d22df722609a565afb64b2889af1f5b21850" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d555e5bf8787ce4220f67448321dbbfd095cfbb1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d5de1d657cb40975dcaf3257c234078afe2170a0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d6d73bef3ccd47da58bd8d90954e77da6834db4d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d706df8136201049555fccbf363619e7a85420c7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d7255fc79a5567af3bb301360ffa2e080fe69970" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d752875331e6ed8fc41d760f96b6eb5b8295ccb7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d7545501bee1d4796457c4cd3dab913942dd998e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d79060c0c2f964312e347ea060abdde34962b81f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d7a368be64f00ce3bfdf287c8adfb9b953368770" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d7d50cdde39ccdfc50116fad9df36dd537c8007c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d808b5d6059266b4c685e4ad1bc90b11b5d2e08e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d830b615540eae87f38e17dfaad7eabe805f58fa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d83bb9a24e2a6770d9ca3a4e612867624884b7ef" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d8766f48615c2f95abb1719f131dc2865aaad141" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d8a15cbded383c792044579b6f8238a215ee20a7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d943ec2d188d00ec9294b910af4ee2e27138a0cd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d9db40a755d18c68d7d1f3b875aba3bc90b46dad" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "d9ecc211ee91e67e568a9c87b8015fd31b709664" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "da3d47091f32acdf7fb9fc2aa68e0fa2ac58786e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "da6661bfe76356c21d24a4bb152d8ddff113bf63" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dad0b145643096de792d8fbc3d35e0d9ac8c9bd7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "db35f0b9839c6f22c39837685a7c0c97bb9f4bbc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "db4076a72944f537d0c628549c376e71da87a2ff" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "db4e71b4bf542cd426b8396527f1679fcff144a7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "db6ed87371b4c961cb41c929cfe9795bdd666ddb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dbba2c5cd55acb9c28145557eb3fe1558233b6d1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dbd3892b80cc46942b4f91fc04b529d52efd586c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dbe198e545a5a5a506d42d783c9ea71e41439919" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dc8adfab394fd4200ea819536dafa12de8896b79" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dd1be57a294a12543352b5f6001cc9062325f7cf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dd5247f25d39c528dd80974c6e32a1917b68143c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dd6a1814a6f951684aa2d3700a9502393a6eb066" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dda215156ee4e1997cbdb04ce04fa31cfafbcc63" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dda33bfe0d7c7d3d7975348b3b15c712bf2473a5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ddb1b5a897184760a15b0476d4d70c33dac34681" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ddb5e440b941cb6b2bf27bbc73c726142dda1666" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dde85d05080e22c8c0c2348da0cfcbf78e678c17" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ddf2d1d734cf5b018c4349af2d41700599aa2feb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "de0464aca36c0375d398a1f1e320ae63a5544d4e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "de39809eefc09866d364afc1ff3f20f44347c442" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "de5aae979fc0a294244701ae749fa7485e636a2f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "de8a63b17bf758a01b1be6a3cb9ceaf38c59439c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "de8ae395bafe56c8968a2cec0567ec2562598189" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dec911a82e06ec0171a216b7ca000f2cff8ef478" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "deccb47103fd56547fb52c3adb0efec17a3e3784" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ded3070d27255a739854dde33154389ed81f010a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "df5d258c3203018551a4514a22d5b3bd24c341a2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "df7430a803a82a818b2c4709e323dad5b3074843" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "dfa9da7c3dbc0e384b6a911914a0805dc459960a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e03835dcbc8667517959cfffe7b105016457c404" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e0c92a3fbf9d161bd0c3d7e038eb2bb8e9afc7c3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e0d4e328f48b7d4333af25ab2362cc1382b951d8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e13d8f70c31baef8632e4cf46221ed1b4aba3f72" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e14c8879516922e3348aec763ede89541594aa46" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e17065adf12017fe9e1ba5a81e21bf18c52c65d3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e1897958d59b060d2c6ee93d977d3dae21405bbd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e1be158b775bb7b4d41155f5f28e7e6aaf8d2674" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e1c68b5834bfe1906f9ebc076ba9e88f76626a99" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e1ccc0b28b1f139455b2b781408eeecff8fb0d90" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e2313163e5359b3ed3bc087403091f4480530e12" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e2c7cbadb1054572b610f3a6bd438623ec1f3751" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e2c8b5481aec692a0226ee556c33f90f47e9fc0c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e2fad20d7b6a00d15c261d67053f7a5bb8c0c284" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e30a09ecb8f59c93b82b5877e9f9e7baed8dcb5f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e327fd947ba64703115a3210a214702787bf627d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e3615853e18c2e17acad0b12ef036d542302fca2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e39af06f6ed44d99a566513a8fccb2891d06a8be" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e3a6024c5306c4ab40250ccf8ea1a7fb48f62b35" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e3dbfe7b29561084241b88c38e3db3e5541ed814" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e3e34cdcbc91e18f2383fd696932a9e4246beb11" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e3eebc0356ade90739a76e54737a969b71534b4c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e422f6f2f6d6c0af793b8f5ac5daa24614fad07f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e42da09d718bf8d700539bdefc08880cfa6616fb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e565aad816115f2801d82142efd855a67b7bfbdb" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e58af7c6fa002b9815c48ce42df0cf6299425e17" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e5b43ff3a571a29070ab306a73f4c25647d287ba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e5dc2e5b40069a91f688e56ea8d12149c5480b42" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e5ddbb284ec894bc10addba674bbd616ff70c48a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e5e9ba149495c2225be9991db9e9a0803509737d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e685b095291983377ef98b3fce634739ced3462b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e687b356df6450f281717df5a13014fd1ff2550c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e7387094ae2542d066c0b3227cf050baafd0fa8a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e75546502d8a964133119212f3fb1ff2299d563f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e76120ac3d810b702ae0ee3d14fa1c4f35e5d6a2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e780e770bcfd952b594dcaa6ec374f84b91ebc33" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e7e8d735cc5207c29e357d83984dce1f23e43ae7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e8239a6c22a1ecf7e4f909c6938a682608c07a62" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e842700c91615b38fcd460d783d38ba5c733c4f4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e8bc7ef407131b9030c350d1887a09239828d5ca" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e8c34411bb07154749671bfaee0cf136d213ddb5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e8e15b787196aea755a1c205521e0400362db8ee" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e98a17be47747052b446979f5dd0f9c2e0d6181d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e998a194b49d655894f66148ebd70b89544dc41d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e9d83b917d8568d51eb0d1c0b2df48ebe61a2074" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e9f3a365ab433812866ca7f7ee93377928461d98" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "e9f8c368af0928885d0aa889516bb22277dda7e2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ea0c21e1867a6907587a63debd812c60e8b1f3a0" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ea66231f284ee77dd0d7c5459013201baa717024" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "eb0519fc89021b7142a0d9ee2fb772aa6401032f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "eb5a0500c26d24c4465fea60cd4590b93bb3d5d2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "eb970190c958b79676fe39d05ba2eef345f0ad41" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ebd3c9da3be8cae5128dfceb5c7d745ef3bf0163" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ec42d9c6455f9ee73f42ac148aab777f88f1642f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ec5eafa13fa737119b091ac2e420c1c002290c77" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ec79a2305edd058ab6e5eb481708cb89b90ebc68" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ecbb1ef130f5c42d6e26963a8fb1c288c4a1c12e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ecc2919869e85d687cc8d7bc8f2eb01cc67ed99b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "eccc01b1257f072a2d2eee0aabf60b20c2b478e1" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ecf42159ab939f4bd61028960ef1d7e04cea65bf" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ed2a386773598c0d93b6e657caacbf0b339760d3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "edda7df4a789840f973377ef716cd6a30ab77a6f" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ee01daf4e0fa4695eb61840804df8b5dab9ba008" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ee2361f26e50a2a7f69555caaf88d6e2ce78998e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ee5288fee89ab21dedd941cafa850ad52aecf8ac" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "eecb0d98c9f2848f4e09fb51fff4e2153aac5e52" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ef0e7d426a9249565bc8e3cce8e8601dafc4b0c3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ef84336a016e897061ccff10e8b2d4407d0d10f8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ef98aada159d9103c5c52c4288c22ab0269dc4cc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "eff8ae5f13957c33ff8b56a3e16f95c7e8f37fd8" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f05b38a043e44e6f465c4ca49c9828a53a183f0b" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f0b3df3f70049440f8e932118858d2ddb9d90a98" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f11187b12d52a6bbbdb2fa5645a619d0eb88c72a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f13faad3a38844a8c0d5cdb515e28a4793369bb5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f1491d415aad4bd3d89c8bd9b0200a7c293350e6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f16b4cbd809c98a004b37c149b800e0a0c434ecc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f19a4513b3dea5a2bcefc7cdaad9db5a1c450a66" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f30d72b443610e6a6fff3afaf0fc779c77012a8c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f3304bd3c4911f2cf2535b50e514f6ce0171aeba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f3815518c279c861dae4f6663a5c058624eb9a48" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f3a016bb33d7fba47957e1ec89628a696b67c6d6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f3c39f7e2bd371e10d04be16288a1d43f3de0cc6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f402b1b7dfb2fc313e1a46f973d378a956a9ee68" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f412259c8b556097b685b4ac90db5fead49f9b57" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f4aefda02839237fe341a9e41d1b4bfb746e10ab" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f54dc1c13b33a9d30f5d5bcbcf473318d47e0ff2" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f57047d6d3dde61ba6095e813036ec12f2fef212" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f5a9895063931ad5556e71eeaebd4d0a2ff485dd" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f5b5e8d7ae8720fe0b4df1d6031b2c1b4a0ee0fa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f6492ab6947fb523d386b86015cd595f1f654422" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f67067c4e276dca4988bfb3fc38c7e987c8f587a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f67e4a4f188b9365d04bca9653c8db2f0d1c2027" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f7d9e7842e89d8870877954d7fe0a2ddd647a4dc" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f821292ccd326f22ed732e83f6be8f1ee7bb7eaa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f85276da3ab7d1a54c288a060295d54063002a73" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "f98a0c8e851b0278afed214c0cfa957410edfac4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fa28c376dd5238b906bf009fd58cbcf55f17eeba" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fa4c2f097f3def01eb753d91c93d99a85592c0a6" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fa51d3c13d132352b826c1b6fc2206e04ff5921a" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fab4306fbf670c6ad551e45b087be651947fa113" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fb45ca02fd4b042c164e60a2bd2e70ab78d9abf7" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fb6c23f879a71698308a70f796ca02078b1386a4" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fb74297e35a479e9bcb2ed764491da21c6bcc8ca" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fb91b23e3eb9289e337d9d34bfa8e680727a8c76" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fbbf4c43d576ef1f32505fe93dd5bdf145e5abbe" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fbe6122dc7289ad647e31b2e6635e5da37beb48e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fc0f22f8566011aca6c252e273c281e6bfea55aa" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fc28f9b0d42ea3e612107d328deb6ec70e0b9a94" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fc58a2fa00487c44ee423404c9be6d2433ec00d5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fcdfec37584e491ecbd42b51bf1066e3539b8938" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fcf56143deb2f8c650ff956620975c05a9c2137c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fdbd2625737df76e194c99994be160c5f8248dad" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fe01c8ed227bcb53f0c336b26d86e0926e9f9412" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fe1215e6a6846a452cf4c59bce0b7d5b8df385c3" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fe1d965bbaccb519b9d9e5887d670ae41c1bfb2c" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fe534c95efaced5c37c9555aac28851a346ed490" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fe7092a36d08dd6b2d98b119d6994ca14652194e" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fecc7ff3a230dabcf47b41bc7e2bfe47efe53558" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fee67e6342b9b17af384b19a41fe115ab075f820" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ffc34c68edda4d88aa64e90fb5c68d84f64633f5" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ffcfdb617a2f6771e1876a90f7974be3a0918054" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ffd4c435ccc6c5e51396257d3f44046e75cee270" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "ffed83fd1ce01be39ad92de0315993802af52f3d" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "fff043abcbf2b0972c1dca19b2ba3cd682f10e90" : { + "balance" : "0x01", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b6103e8608051101560235761c35060006001f06000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 1000) [i](+ @i 1) [[ 0 ]] (CREATE 1 0 50000) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } } @@ -121,15 +14107,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/QuadraticComplexitySolidity_CallDataCopy.json b/GeneralStateTests/stQuadraticComplexityTest/QuadraticComplexitySolidity_CallDataCopy.json index 56e0e7188..cb5eaa29f 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/QuadraticComplexitySolidity_CallDataCopy.json +++ b/GeneralStateTests/stQuadraticComplexityTest/QuadraticComplexitySolidity_CallDataCopy.json @@ -1,117 +1,64 @@ { "QuadraticComplexitySolidity_CallDataCopy" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/QuadraticComplexitySolidity_CallDataCopyFiller.json" + }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x14dc9380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "350000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9069b0bca48fb987771da925e2ae4d322e47221ad504f37ab27837ff6412d398", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9c6475c75795cc63ed4d4f646b7d3efbeddb48b9c0e56383a05b9098ad265f37", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9069b0bca48fb987771da925e2ae4d322e47221ad504f37ab27837ff6412d398", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x9c6475c75795cc63ed4d4f646b7d3efbeddb48b9c0e56383a05b9098ad265f37", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x60003560e060020a9004806361a4770614601557005b601e6004356024565b60006000f35b60008160008190555073b94f5374fce5edbc8e2a8697c15331677e6ebf0b90505b600082131560bf5780600160a060020a03166000600060007f6a7573740000000000000000000000000000000000000000000000000000000081526004017f63616c6c000000000000000000000000000000000000000000000000000000008152602001600060008560155a03f150506001820391506045565b505056", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x61c3506000600037", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0x9069b0bca48fb987771da925e2ae4d322e47221ad504f37ab27837ff6412d398", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9c6475c75795cc63ed4d4f646b7d3efbeddb48b9c0e56383a05b9098ad265f37", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9069b0bca48fb987771da925e2ae4d322e47221ad504f37ab27837ff6412d398", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9c6475c75795cc63ed4d4f646b7d3efbeddb48b9c0e56383a05b9098ad265f37", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9069b0bca48fb987771da925e2ae4d322e47221ad504f37ab27837ff6412d398", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9c6475c75795cc63ed4d4f646b7d3efbeddb48b9c0e56383a05b9098ad265f37", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1dcd6500", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "//" : "}\t\t\t\t\t\t\t\t\t", + "balance" : "500000000", "code" : "0x60003560e060020a9004806361a4770614601557005b601e6004356024565b60006000f35b60008160008190555073b94f5374fce5edbc8e2a8697c15331677e6ebf0b90505b600082131560bf5780600160a060020a03166000600060007f6a7573740000000000000000000000000000000000000000000000000000000081526004017f63616c6c000000000000000000000000000000000000000000000000000000008152602001600060008560155a03f150506001820391506045565b505056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x4c4b40", - "code" : "0x61c3506000600037", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "5000000", + "code" : "{ (CALLDATACOPY 0 0 50000) }", + "nonce" : "0", "storage" : { } } @@ -121,15 +68,15 @@ "0x61a47706000000000000000000000000000000000000000000000000000000000000c350" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Return50000.json b/GeneralStateTests/stQuadraticComplexityTest/Return50000.json index 35e1ed616..a010e46a5 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Return50000.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Return50000.json @@ -1,124 +1,76 @@ { "Return50000" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Return50000Filler.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x020e02d040", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "8825000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4eac2fcd7af9c0f3c26e82634e44f372005f2813f3e7c0e4af06c8674e7b089b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3e96c54c51b5976b65813016f474b30f139c409ecf1ff402b0a6f98e1ae5ca01", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4eac2fcd7af9c0f3c26e82634e44f372005f2813f3e7c0e4af06c8674e7b089b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x3e96c54c51b5976b65813016f474b30f139c409ecf1ff402b0a6f98e1ae5ca01", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x600161c34f35f3", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b61c3506080511015603f576000600061c3506000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61061cf16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0x4eac2fcd7af9c0f3c26e82634e44f372005f2813f3e7c0e4af06c8674e7b089b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3e96c54c51b5976b65813016f474b30f139c409ecf1ff402b0a6f98e1ae5ca01", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4eac2fcd7af9c0f3c26e82634e44f372005f2813f3e7c0e4af06c8674e7b089b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3e96c54c51b5976b65813016f474b30f139c409ecf1ff402b0a6f98e1ae5ca01", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4eac2fcd7af9c0f3c26e82634e44f372005f2813f3e7c0e4af06c8674e7b089b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3e96c54c51b5976b65813016f474b30f139c409ecf1ff402b0a6f98e1ae5ca01", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x600161c34f35f3", - "nonce" : "0x00", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (RETURN (CALLDATALOAD 49999) 1) }", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015603f576000600061c3506000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61061cf16000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 1564 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 50000 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", "storage" : { } } @@ -128,15 +80,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stQuadraticComplexityTest/Return50000_2.json b/GeneralStateTests/stQuadraticComplexityTest/Return50000_2.json index 7f0195961..ae8084d96 100644 --- a/GeneralStateTests/stQuadraticComplexityTest/Return50000_2.json +++ b/GeneralStateTests/stQuadraticComplexityTest/Return50000_2.json @@ -1,124 +1,76 @@ { "Return50000_2" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stQuadraticComplexityTest/Return50000_2Filler.json" + }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x020e02d040", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "8825000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb4d5763b662a23139ae597758b835f4ad9f97435daec1bd066b0676c9cb5fdbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x24320813cdea75cf9e7c4367fd0bc2476d4779a7981dd56d7b86c387aa3d0a3a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb4d5763b662a23139ae597758b835f4ad9f97435daec1bd066b0676c9cb5fdbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x24320813cdea75cf9e7c4367fd0bc2476d4779a7981dd56d7b86c387aa3d0a3a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x61c34f356000526001600051f3", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "250000000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x5b61c3506080511015603f576000600061c3506000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61061cf16000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0xb4d5763b662a23139ae597758b835f4ad9f97435daec1bd066b0676c9cb5fdbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x24320813cdea75cf9e7c4367fd0bc2476d4779a7981dd56d7b86c387aa3d0a3a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb4d5763b662a23139ae597758b835f4ad9f97435daec1bd066b0676c9cb5fdbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x24320813cdea75cf9e7c4367fd0bc2476d4779a7981dd56d7b86c387aa3d0a3a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb4d5763b662a23139ae597758b835f4ad9f97435daec1bd066b0676c9cb5fdbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x24320813cdea75cf9e7c4367fd0bc2476d4779a7981dd56d7b86c387aa3d0a3a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x61c34f356000526001600051f3", - "nonce" : "0x00", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ [ 0 ] (CALLDATALOAD 49999) (RETURN @0 1) }", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015603f576000600061c3506000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61061cf16000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (CALL 1564 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 50000 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", "storage" : { } } @@ -128,15 +80,15 @@ "" ], "gasLimit" : [ - "0x0249f0", - "0x0ee6b280" + "150000", + "250000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest.json b/GeneralStateTests/stRandom/randomStatetest.json index e837701ba..636d64004 100644 --- a/GeneralStateTests/stRandom/randomStatetest.json +++ b/GeneralStateTests/stRandom/randomStatetest.json @@ -2,92 +2,77 @@ "randomStatetest" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetestFiller.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "252246116", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f29199c9aa4054170f1a15a55056f965560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x29199c9aa4054170f1a15a55056f9655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51866", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999747702064", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3822329c9cb2cf135d6051498b840a029d24f464147c29d1d3048eeb3f9529c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3822329c9cb2cf135d6051498b840a029d24f464147c29d1d3048eeb3f9529c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3822329c9cb2cf135d6051498b840a029d24f464147c29d1d3048eeb3f9529c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3822329c9cb2cf135d6051498b840a029d24f464147c29d1d3048eeb3f9529c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3822329c9cb2cf135d6051498b840a029d24f464147c29d1d3048eeb3f9529c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3822329c9cb2cf135d6051498b840a029d24f464147c29d1d3048eeb3f9529c6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f29199c9aa4054170f1a15a55056f965560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x17ee5409" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0f08f864" + "252246116" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest0.json b/GeneralStateTests/stRandom/randomStatetest0.json index 666f6a2a2..c663cd6e0 100644 --- a/GeneralStateTests/stRandom/randomStatetest0.json +++ b/GeneralStateTests/stRandom/randomStatetest0.json @@ -2,92 +2,76 @@ "randomStatetest0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest0Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1631233707", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff857ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1302056f60005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "29198", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998368737141", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x588f574aadabcd11da91c32f9931372cca74e5e1830acc06246d9bb53f7a3d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x588f574aadabcd11da91c32f9931372cca74e5e1830acc06246d9bb53f7a3d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x588f574aadabcd11da91c32f9931372cca74e5e1830acc06246d9bb53f7a3d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x588f574aadabcd11da91c32f9931372cca74e5e1830acc06246d9bb53f7a3d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x588f574aadabcd11da91c32f9931372cca74e5e1830acc06246d9bb53f7a3d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "588f574aadabcd11da91c32f9931372cca74e5e1830acc06246d9bb53f7a3d84", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff857ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1302056f60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x24c93d75" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x613aa6ab" + "1631233707" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest1.json b/GeneralStateTests/stRandom/randomStatetest1.json index e382f7567..64dbdce45 100644 --- a/GeneralStateTests/stRandom/randomStatetest1.json +++ b/GeneralStateTests/stRandom/randomStatetest1.json @@ -2,92 +2,76 @@ "randomStatetest1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest1Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x454543414341444259f2", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "400046", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999600000", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xadc578b3b4201932f6c3bce09e94ae1896afa6e0a5c63fe1b493b4567b6de276", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xadc578b3b4201932f6c3bce09e94ae1896afa6e0a5c63fe1b493b4567b6de276", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xadc578b3b4201932f6c3bce09e94ae1896afa6e0a5c63fe1b493b4567b6de276", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xadc578b3b4201932f6c3bce09e94ae1896afa6e0a5c63fe1b493b4567b6de276", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xadc578b3b4201932f6c3bce09e94ae1896afa6e0a5c63fe1b493b4567b6de276", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6584ed53fe381f4c404bd2e099d04bd116514348471c66309a9a0e6f419b0b18", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x454543414341444259f2", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest10.json b/GeneralStateTests/stRandom/randomStatetest10.json index b34bf2834..f8c808305 100644 --- a/GeneralStateTests/stRandom/randomStatetest10.json +++ b/GeneralStateTests/stRandom/randomStatetest10.json @@ -2,92 +2,76 @@ "randomStatetest10" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest10Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000000120417f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3508859a1740a0528f26a635216cd980a9a9255", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "484101526", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999515898520", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x400ff231b558eae5262ba43f7f863a200cf49aab2abc77ca61fdf4b6c6db8574", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x400ff231b558eae5262ba43f7f863a200cf49aab2abc77ca61fdf4b6c6db8574", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x400ff231b558eae5262ba43f7f863a200cf49aab2abc77ca61fdf4b6c6db8574", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x400ff231b558eae5262ba43f7f863a200cf49aab2abc77ca61fdf4b6c6db8574", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x400ff231b558eae5262ba43f7f863a200cf49aab2abc77ca61fdf4b6c6db8574", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "400ff231b558eae5262ba43f7f863a200cf49aab2abc77ca61fdf4b6c6db8574", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000000120417f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3508859a1740a0528f26a635216cd980a9a9255", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x1cdacd68" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x15b50694" + "364185236" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest100.json b/GeneralStateTests/stRandom/randomStatetest100.json index 3d890a589..3ee74c83a 100644 --- a/GeneralStateTests/stRandom/randomStatetest100.json +++ b/GeneralStateTests/stRandom/randomStatetest100.json @@ -2,92 +2,77 @@ "randomStatetest100" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest100Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x414243444342444283f24455", + "nonce" : "0", + "storage" : { + "0x20000" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "92950", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999807096", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x54dfd10f0de86225537244edc47ec0ed9f8e665f0f6271d15e7707f67eca981b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x54dfd10f0de86225537244edc47ec0ed9f8e665f0f6271d15e7707f67eca981b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5881f750258fb642a9cc86dc9a7800652e2fe6bd40b7fa84d514344e90ee25c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5881f750258fb642a9cc86dc9a7800652e2fe6bd40b7fa84d514344e90ee25c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x54dfd10f0de86225537244edc47ec0ed9f8e665f0f6271d15e7707f67eca981b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "16bd822f93e796e82c9fcb2a3e508e0e39c621628e4e755535442d455beefdaf", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x414243444342444283f24455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest101.json b/GeneralStateTests/stRandom/randomStatetest101.json index 7d3396bfb..4a1d9dd1f 100644 --- a/GeneralStateTests/stRandom/randomStatetest101.json +++ b/GeneralStateTests/stRandom/randomStatetest101.json @@ -2,92 +2,72 @@ "randomStatetest101" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest101Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdce115ce0dcd7b7bfb76329a14d665a803e5cf266cf1235dfea7d20c03e83d18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000000407f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000010b8a9e12010560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "199532401", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999800467645", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xdce115ce0dcd7b7bfb76329a14d665a803e5cf266cf1235dfea7d20c03e83d18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdce115ce0dcd7b7bfb76329a14d665a803e5cf266cf1235dfea7d20c03e83d18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdce115ce0dcd7b7bfb76329a14d665a803e5cf266cf1235dfea7d20c03e83d18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdce115ce0dcd7b7bfb76329a14d665a803e5cf266cf1235dfea7d20c03e83d18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, - "postStateRoot" : "dce115ce0dcd7b7bfb76329a14d665a803e5cf266cf1235dfea7d20c03e83d18", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000000407f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000010b8a9e12010560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +79,12 @@ "gasLimit" : [ "0x0be49f43" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x70551123" + "1884623139" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest102.json b/GeneralStateTests/stRandom/randomStatetest102.json index 077d48031..a471a882c 100644 --- a/GeneralStateTests/stRandom/randomStatetest102.json +++ b/GeneralStateTests/stRandom/randomStatetest102.json @@ -2,92 +2,77 @@ "randomStatetest102" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest102Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "634395362", + "code" : "0x457f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b544447f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f157094ffff1a04893a9cf3858b85765560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x157094ffff1a04893a9cf3858b857655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46743", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999365557941", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x700d38e788dd4a41a048f79146935f8abd647c61f91b943244947086f2b1a9a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x700d38e788dd4a41a048f79146935f8abd647c61f91b943244947086f2b1a9a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x700d38e788dd4a41a048f79146935f8abd647c61f91b943244947086f2b1a9a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x700d38e788dd4a41a048f79146935f8abd647c61f91b943244947086f2b1a9a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x700d38e788dd4a41a048f79146935f8abd647c61f91b943244947086f2b1a9a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "700d38e788dd4a41a048f79146935f8abd647c61f91b943244947086f2b1a9a1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b544447f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f157094ffff1a04893a9cf3858b85765560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x2d785b3a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x25d01ae2" + "634395362" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest103.json b/GeneralStateTests/stRandom/randomStatetest103.json index a339698a6..744b0ccd5 100644 --- a/GeneralStateTests/stRandom/randomStatetest103.json +++ b/GeneralStateTests/stRandom/randomStatetest103.json @@ -2,92 +2,76 @@ "randomStatetest103" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest103Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe92357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff597f00000000000000000000000000000000000000000000000000000000000000019385a39988160a205a93196d336428", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "103015785", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999896984261", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdb746085a68ff63096d43202f64f089300ea5fabcc4dc769472b0710c0029383", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdb746085a68ff63096d43202f64f089300ea5fabcc4dc769472b0710c0029383", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdb746085a68ff63096d43202f64f089300ea5fabcc4dc769472b0710c0029383", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdb746085a68ff63096d43202f64f089300ea5fabcc4dc769472b0710c0029383", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdb746085a68ff63096d43202f64f089300ea5fabcc4dc769472b0710c0029383", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "db746085a68ff63096d43202f64f089300ea5fabcc4dc769472b0710c0029383", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe92357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff597f00000000000000000000000000000000000000000000000000000000000000019385a39988160a205a93196d336428", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x0623e53b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5ef1042e" + "1592853550" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest104.json b/GeneralStateTests/stRandom/randomStatetest104.json index 3df117183..66e83ed8d 100644 --- a/GeneralStateTests/stRandom/randomStatetest104.json +++ b/GeneralStateTests/stRandom/randomStatetest104.json @@ -2,92 +2,77 @@ "randomStatetest104" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest104Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "977250261", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f147d6b978c780a82619772417d5b6a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x147d6b978c780a82619772417d5b6a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "54554", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999022695231", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x51f90e1d070c429e1dd324daaf74c733ef8ea12fc50dca1dc3ad8d8e6f51b6b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x51f90e1d070c429e1dd324daaf74c733ef8ea12fc50dca1dc3ad8d8e6f51b6b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x51f90e1d070c429e1dd324daaf74c733ef8ea12fc50dca1dc3ad8d8e6f51b6b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x51f90e1d070c429e1dd324daaf74c733ef8ea12fc50dca1dc3ad8d8e6f51b6b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x51f90e1d070c429e1dd324daaf74c733ef8ea12fc50dca1dc3ad8d8e6f51b6b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "51f90e1d070c429e1dd324daaf74c733ef8ea12fc50dca1dc3ad8d8e6f51b6b4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f147d6b978c780a82619772417d5b6a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6cd94ea9" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3a3fa7d5" + "977250261" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest105.json b/GeneralStateTests/stRandom/randomStatetest105.json index da8844f2a..524d9f1dd 100644 --- a/GeneralStateTests/stRandom/randomStatetest105.json +++ b/GeneralStateTests/stRandom/randomStatetest105.json @@ -2,92 +2,77 @@ "randomStatetest105" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest105Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1449730295", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f9914639111156d1759ff65039a02926c60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x9914639111156d1759ff65039a02926c" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51215", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998550218536", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xbdee0d34ecfeed56ee3c30aaed98214975472b2d09948f4cf34758245ef9d6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xbdee0d34ecfeed56ee3c30aaed98214975472b2d09948f4cf34758245ef9d6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbdee0d34ecfeed56ee3c30aaed98214975472b2d09948f4cf34758245ef9d6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbdee0d34ecfeed56ee3c30aaed98214975472b2d09948f4cf34758245ef9d6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbdee0d34ecfeed56ee3c30aaed98214975472b2d09948f4cf34758245ef9d6a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "bdee0d34ecfeed56ee3c30aaed98214975472b2d09948f4cf34758245ef9d6a1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f9914639111156d1759ff65039a02926c60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x58200c22" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x566920f7" + "1449730295" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest106.json b/GeneralStateTests/stRandom/randomStatetest106.json index e0d32e599..3136fb16b 100644 --- a/GeneralStateTests/stRandom/randomStatetest106.json +++ b/GeneralStateTests/stRandom/randomStatetest106.json @@ -2,92 +2,77 @@ "randomStatetest106" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest106Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1107240556", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f327043726481f25094828e211557795560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x327043726481f25094828e2115577955" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51923", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998892707567", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6796cb8770afcf7f773992c801b2d5800974a29c508fe1923a06b2e8fd655340", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6796cb8770afcf7f773992c801b2d5800974a29c508fe1923a06b2e8fd655340", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6796cb8770afcf7f773992c801b2d5800974a29c508fe1923a06b2e8fd655340", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6796cb8770afcf7f773992c801b2d5800974a29c508fe1923a06b2e8fd655340", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6796cb8770afcf7f773992c801b2d5800974a29c508fe1923a06b2e8fd655340", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6796cb8770afcf7f773992c801b2d5800974a29c508fe1923a06b2e8fd655340", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f327043726481f25094828e211557795560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7d538fa3" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x41ff266c" + "1107240556" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest107.json b/GeneralStateTests/stRandom/randomStatetest107.json index 0910217c5..412a3cf28 100644 --- a/GeneralStateTests/stRandom/randomStatetest107.json +++ b/GeneralStateTests/stRandom/randomStatetest107.json @@ -2,92 +2,77 @@ "randomStatetest107" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest107Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1335641355", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50960005155", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffff6bacfb1469f9a4d5674a85b75f951d72d7a58e4a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "53147", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998664305544", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1f3b262cfe6199a0c34832b6741d0d0de29a6ffa46f0d6f7e533acccbec67750", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1f3b262cfe6199a0c34832b6741d0d0de29a6ffa46f0d6f7e533acccbec67750", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1f3b262cfe6199a0c34832b6741d0d0de29a6ffa46f0d6f7e533acccbec67750", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1f3b262cfe6199a0c34832b6741d0d0de29a6ffa46f0d6f7e533acccbec67750", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1f3b262cfe6199a0c34832b6741d0d0de29a6ffa46f0d6f7e533acccbec67750", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1f3b262cfe6199a0c34832b6741d0d0de29a6ffa46f0d6f7e533acccbec67750", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x436e5016" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4f9c450b" + "1335641355" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest108.json b/GeneralStateTests/stRandom/randomStatetest108.json index bb7440eb1..1cddd6114 100644 --- a/GeneralStateTests/stRandom/randomStatetest108.json +++ b/GeneralStateTests/stRandom/randomStatetest108.json @@ -2,92 +2,76 @@ "randomStatetest108" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest108Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41443442f34241", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50059", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999849987", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0xaa312e8af562a43ee46639e96f6f855af216025e0dc4880be8cc848baed36bd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xaa312e8af562a43ee46639e96f6f855af216025e0dc4880be8cc848baed36bd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaa312e8af562a43ee46639e96f6f855af216025e0dc4880be8cc848baed36bd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaa312e8af562a43ee46639e96f6f855af216025e0dc4880be8cc848baed36bd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaa312e8af562a43ee46639e96f6f855af216025e0dc4880be8cc848baed36bd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7c1c9d5ac72e2eb95fda2d9dd311ab95fcd3edab06bff04c5282460c030a691e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41443442f34241", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest11.json b/GeneralStateTests/stRandom/randomStatetest11.json index 8c812a657..806180082 100644 --- a/GeneralStateTests/stRandom/randomStatetest11.json +++ b/GeneralStateTests/stRandom/randomStatetest11.json @@ -2,92 +2,77 @@ "randomStatetest11" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest11Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1762251756", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3506fa093f3408a6e531735960a7617127a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xa093f3408a6e531735960a7617127a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47514", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998237700776", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x21431bffa196891aeae83aa7ba572949857238f8bf4fe3ea30ee2143d09e1033", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x21431bffa196891aeae83aa7ba572949857238f8bf4fe3ea30ee2143d09e1033", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x21431bffa196891aeae83aa7ba572949857238f8bf4fe3ea30ee2143d09e1033", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x21431bffa196891aeae83aa7ba572949857238f8bf4fe3ea30ee2143d09e1033", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x21431bffa196891aeae83aa7ba572949857238f8bf4fe3ea30ee2143d09e1033", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "21431bffa196891aeae83aa7ba572949857238f8bf4fe3ea30ee2143d09e1033", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3506fa093f3408a6e531735960a7617127a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x558137e9" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6909d3ec" + "1762251756" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest110.json b/GeneralStateTests/stRandom/randomStatetest110.json index cac579426..a8e0db85a 100644 --- a/GeneralStateTests/stRandom/randomStatetest110.json +++ b/GeneralStateTests/stRandom/randomStatetest110.json @@ -2,92 +2,77 @@ "randomStatetest110" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest110Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "736834619", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000016f97543c343476cb7c8c84066217f1025560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x97543c343476cb7c8c84066217f10255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47833", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999263117594", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6618aaa7ca6663ea4035f424722a4c23618f123fe893510595388ecd90001884", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6618aaa7ca6663ea4035f424722a4c23618f123fe893510595388ecd90001884", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6618aaa7ca6663ea4035f424722a4c23618f123fe893510595388ecd90001884", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6618aaa7ca6663ea4035f424722a4c23618f123fe893510595388ecd90001884", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6618aaa7ca6663ea4035f424722a4c23618f123fe893510595388ecd90001884", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6618aaa7ca6663ea4035f424722a4c23618f123fe893510595388ecd90001884", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000016f97543c343476cb7c8c84066217f1025560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3114ea7b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2beb343b" + "736834619" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest111.json b/GeneralStateTests/stRandom/randomStatetest111.json index 8292f15a4..7ee7458e6 100644 --- a/GeneralStateTests/stRandom/randomStatetest111.json +++ b/GeneralStateTests/stRandom/randomStatetest111.json @@ -2,100 +2,72 @@ "randomStatetest111" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest111Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ + "expect" : [ { - "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "bloom" : "00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040080000000000000000000000000000000000000000000000000000", - "data" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "topics" : [ - "000000000000000000000000ffffffffffffffffffffffffffffffffffffffff" - ] - } - ], - "out" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0x57a9813176db0f5c519221d0d8c132b50ab7d92fa3d9287027dcf454696c3c93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x57a9813176db0f5c519221d0d8c132b50ab7d92fa3d9287027dcf454696c3c93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x57a9813176db0f5c519221d0d8c132b50ab7d92fa3d9287027dcf454696c3c93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x57a9813176db0f5c519221d0d8c132b50ab7d92fa3d9287027dcf454696c3c93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x57a9813176db0f5c519221d0d8c132b50ab7d92fa3d9287027dcf454696c3c93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "50481116", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c35059a17f0000000000000000000000000000000000000000000000000000000000000001f38f07bf60005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "436309", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999949082621", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ] - }, - "postStateRoot" : "57a9813176db0f5c519221d0d8c132b50ab7d92fa3d9287027dcf454696c3c93", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c35059a17f0000000000000000000000000000000000000000000000000000000000000001f38f07bf60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -107,12 +79,12 @@ "gasLimit" : [ "0x5a11064f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x030247dc" + "50481116" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest112.json b/GeneralStateTests/stRandom/randomStatetest112.json index df1948a12..7b2fe4a3b 100644 --- a/GeneralStateTests/stRandom/randomStatetest112.json +++ b/GeneralStateTests/stRandom/randomStatetest112.json @@ -2,92 +2,77 @@ "randomStatetest112" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest112Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2006825126", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f549c5779398a848c353075146505415560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x549c5779398a848c3530751465054155" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49688", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997993125232", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe2725b3947b8d142be9e23b9012e434357812dd671c988a449d113da0e793c71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe2725b3947b8d142be9e23b9012e434357812dd671c988a449d113da0e793c71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe2725b3947b8d142be9e23b9012e434357812dd671c988a449d113da0e793c71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe2725b3947b8d142be9e23b9012e434357812dd671c988a449d113da0e793c71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe2725b3947b8d142be9e23b9012e434357812dd671c988a449d113da0e793c71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e2725b3947b8d142be9e23b9012e434357812dd671c988a449d113da0e793c71", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f549c5779398a848c353075146505415560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1962788d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x779db8a6" + "2006825126" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest114.json b/GeneralStateTests/stRandom/randomStatetest114.json index 706aaf120..b94d858b8 100644 --- a/GeneralStateTests/stRandom/randomStatetest114.json +++ b/GeneralStateTests/stRandom/randomStatetest114.json @@ -2,92 +2,77 @@ "randomStatetest114" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest114Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1067998899", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f3584357ea388725483637d4471727f5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x3584357ea388725483637d4471727f55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "54489", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998931946658", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xcb3c0ebc82468c2f0a9bfdbbb3f33872e05f07d55af779f82671a113826d6654", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcb3c0ebc82468c2f0a9bfdbbb3f33872e05f07d55af779f82671a113826d6654", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcb3c0ebc82468c2f0a9bfdbbb3f33872e05f07d55af779f82671a113826d6654", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcb3c0ebc82468c2f0a9bfdbbb3f33872e05f07d55af779f82671a113826d6654", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcb3c0ebc82468c2f0a9bfdbbb3f33872e05f07d55af779f82671a113826d6654", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "cb3c0ebc82468c2f0a9bfdbbb3f33872e05f07d55af779f82671a113826d6654", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f3584357ea388725483637d4471727f5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x090e47ee" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3fa85eb3" + "1067998899" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest115.json b/GeneralStateTests/stRandom/randomStatetest115.json index d882fd58e..df683cdf9 100644 --- a/GeneralStateTests/stRandom/randomStatetest115.json +++ b/GeneralStateTests/stRandom/randomStatetest115.json @@ -2,92 +2,73 @@ "randomStatetest115" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest115Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4d35f1a45da716536947e9cad2b6b9d9e114b77083984d67ea5daa980667125a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1948713091", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506f15448e363302150a6f56518aa005315560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x15448e363302150a6f56518aa0053155" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48730", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998051238225", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4d35f1a45da716536947e9cad2b6b9d9e114b77083984d67ea5daa980667125a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4d35f1a45da716536947e9cad2b6b9d9e114b77083984d67ea5daa980667125a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4d35f1a45da716536947e9cad2b6b9d9e114b77083984d67ea5daa980667125a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4d35f1a45da716536947e9cad2b6b9d9e114b77083984d67ea5daa980667125a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, - "postStateRoot" : "4d35f1a45da716536947e9cad2b6b9d9e114b77083984d67ea5daa980667125a", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506f15448e363302150a6f56518aa005315560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +80,12 @@ "gasLimit" : [ "0x30de0e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x74270083" + "1948713091" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest116.json b/GeneralStateTests/stRandom/randomStatetest116.json index e4710100e..87da111b7 100644 --- a/GeneralStateTests/stRandom/randomStatetest116.json +++ b/GeneralStateTests/stRandom/randomStatetest116.json @@ -2,92 +2,77 @@ "randomStatetest116" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest116Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "372067975", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50753933760005155", + "nonce" : "0", + "storage" : { + "0x" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "63798", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999627868273", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3b744e6037075a1c3b6b18ccdf377d3815369ad8b476da92bc6db4b37ae4aa29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3b744e6037075a1c3b6b18ccdf377d3815369ad8b476da92bc6db4b37ae4aa29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3b744e6037075a1c3b6b18ccdf377d3815369ad8b476da92bc6db4b37ae4aa29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3b744e6037075a1c3b6b18ccdf377d3815369ad8b476da92bc6db4b37ae4aa29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3b744e6037075a1c3b6b18ccdf377d3815369ad8b476da92bc6db4b37ae4aa29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3b744e6037075a1c3b6b18ccdf377d3815369ad8b476da92bc6db4b37ae4aa29", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50753933760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x500ddd76" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x162d4e87" + "372067975" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest117.json b/GeneralStateTests/stRandom/randomStatetest117.json index ceb10d527..05d688c2e 100644 --- a/GeneralStateTests/stRandom/randomStatetest117.json +++ b/GeneralStateTests/stRandom/randomStatetest117.json @@ -2,92 +2,77 @@ "randomStatetest117" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest117Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1763362724", + "code" : "0x447f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006f8aa4a4980274f18c6158368d4157145560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x8aa4a4980274f18c6158368d41571455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45770", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998236591552", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1fb154a77c21b091d12540cc44d8156e1e80a1e02696e9110b425fcfc49de65d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1fb154a77c21b091d12540cc44d8156e1e80a1e02696e9110b425fcfc49de65d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1fb154a77c21b091d12540cc44d8156e1e80a1e02696e9110b425fcfc49de65d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1fb154a77c21b091d12540cc44d8156e1e80a1e02696e9110b425fcfc49de65d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1fb154a77c21b091d12540cc44d8156e1e80a1e02696e9110b425fcfc49de65d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1fb154a77c21b091d12540cc44d8156e1e80a1e02696e9110b425fcfc49de65d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x447f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006f8aa4a4980274f18c6158368d4157145560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x195dc839" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x691ac7a4" + "1763362724" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest118.json b/GeneralStateTests/stRandom/randomStatetest118.json index 99209f5dc..09064bb2b 100644 --- a/GeneralStateTests/stRandom/randomStatetest118.json +++ b/GeneralStateTests/stRandom/randomStatetest118.json @@ -2,92 +2,77 @@ "randomStatetest118" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest118Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1190213224", + "code" : "0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000006f55817c037fa45bf3850320309a8f025560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x55817c037fa45bf3850320309a8f0255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52882", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998809733940", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf43a4635fb51a00f490ca4c1aa10d7bf565a3b29863df59516e9e9dde53d2997", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf43a4635fb51a00f490ca4c1aa10d7bf565a3b29863df59516e9e9dde53d2997", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf43a4635fb51a00f490ca4c1aa10d7bf565a3b29863df59516e9e9dde53d2997", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf43a4635fb51a00f490ca4c1aa10d7bf565a3b29863df59516e9e9dde53d2997", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf43a4635fb51a00f490ca4c1aa10d7bf565a3b29863df59516e9e9dde53d2997", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f43a4635fb51a00f490ca4c1aa10d7bf565a3b29863df59516e9e9dde53d2997", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000006f55817c037fa45bf3850320309a8f025560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6c4139ef" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x46f13668" + "1190213224" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest119.json b/GeneralStateTests/stRandom/randomStatetest119.json index 5bf03fca8..bed63e5c7 100644 --- a/GeneralStateTests/stRandom/randomStatetest119.json +++ b/GeneralStateTests/stRandom/randomStatetest119.json @@ -2,92 +2,77 @@ "randomStatetest119" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest119Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "412561866", + "code" : "0x4559437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006f52503b127c115a9673a431379095665560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x52503b127c115a9673a4313790956655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46039", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999587392141", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x80514a4aef23c793c0ed0f3bf1e9f658e8a8b1589bcfab8a41e4259948263986", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x80514a4aef23c793c0ed0f3bf1e9f658e8a8b1589bcfab8a41e4259948263986", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x80514a4aef23c793c0ed0f3bf1e9f658e8a8b1589bcfab8a41e4259948263986", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x80514a4aef23c793c0ed0f3bf1e9f658e8a8b1589bcfab8a41e4259948263986", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x80514a4aef23c793c0ed0f3bf1e9f658e8a8b1589bcfab8a41e4259948263986", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "80514a4aef23c793c0ed0f3bf1e9f658e8a8b1589bcfab8a41e4259948263986", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x4559437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006f52503b127c115a9673a431379095665560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1199b708" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x189731ca" + "412561866" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest12.json b/GeneralStateTests/stRandom/randomStatetest12.json index e3ba71ff2..f8946f741 100644 --- a/GeneralStateTests/stRandom/randomStatetest12.json +++ b/GeneralStateTests/stRandom/randomStatetest12.json @@ -2,92 +2,77 @@ "randomStatetest12" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest12Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1165421411", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5027f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f165490a41215369ef27603794116335560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x165490a41215369ef276037941163355" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51483", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998834527152", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x111caf92598747d220f22f4088e80789baf444a47e384dc5266c790354b95f62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x111caf92598747d220f22f4088e80789baf444a47e384dc5266c790354b95f62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x111caf92598747d220f22f4088e80789baf444a47e384dc5266c790354b95f62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x111caf92598747d220f22f4088e80789baf444a47e384dc5266c790354b95f62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x111caf92598747d220f22f4088e80789baf444a47e384dc5266c790354b95f62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "111caf92598747d220f22f4088e80789baf444a47e384dc5266c790354b95f62", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5027f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f165490a41215369ef27603794116335560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1cc90872" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4576eb63" + "1165421411" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest120.json b/GeneralStateTests/stRandom/randomStatetest120.json index 2d1e7f6a0..faf96d6bd 100644 --- a/GeneralStateTests/stRandom/randomStatetest120.json +++ b/GeneralStateTests/stRandom/randomStatetest120.json @@ -2,92 +2,77 @@ "randomStatetest120" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest120Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1887172074", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe820860005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "54947", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998112773025", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x811ace7d10136466c4a277f2a5f174989223efcccb2ded685e51b7db83b96899", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x811ace7d10136466c4a277f2a5f174989223efcccb2ded685e51b7db83b96899", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x811ace7d10136466c4a277f2a5f174989223efcccb2ded685e51b7db83b96899", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x811ace7d10136466c4a277f2a5f174989223efcccb2ded685e51b7db83b96899", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x811ace7d10136466c4a277f2a5f174989223efcccb2ded685e51b7db83b96899", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "811ace7d10136466c4a277f2a5f174989223efcccb2ded685e51b7db83b96899", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe820860005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6f2e860a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x707bf5ea" + "1887172074" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest121.json b/GeneralStateTests/stRandom/randomStatetest121.json index 1268d4af4..76409fe36 100644 --- a/GeneralStateTests/stRandom/randomStatetest121.json +++ b/GeneralStateTests/stRandom/randomStatetest121.json @@ -2,92 +2,77 @@ "randomStatetest121" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest121Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1227523279", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350456f305842321509108c689f7ca3195a9d5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x305842321509108c689f7ca3195a9d55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51225", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998772425542", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9678766b3ae962bafefb2caf76cea13316a87de825d8e5f4717f142fc13d03a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9678766b3ae962bafefb2caf76cea13316a87de825d8e5f4717f142fc13d03a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9678766b3ae962bafefb2caf76cea13316a87de825d8e5f4717f142fc13d03a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9678766b3ae962bafefb2caf76cea13316a87de825d8e5f4717f142fc13d03a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9678766b3ae962bafefb2caf76cea13316a87de825d8e5f4717f142fc13d03a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9678766b3ae962bafefb2caf76cea13316a87de825d8e5f4717f142fc13d03a8", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350456f305842321509108c689f7ca3195a9d5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0b1aa486" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x492a84cf" + "1227523279" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest122.json b/GeneralStateTests/stRandom/randomStatetest122.json index a9c27ceca..12512682b 100644 --- a/GeneralStateTests/stRandom/randomStatetest122.json +++ b/GeneralStateTests/stRandom/randomStatetest122.json @@ -2,92 +2,77 @@ "randomStatetest122" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest122Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "538407333", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fa2825b6c338f8d717156560af045136b60005155", + "nonce" : "0", + "storage" : { + "0x" : "0xa2825b6c338f8d717156560af045136b" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50896", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999461541817", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x109a4092736ba92807a8a26ef51660765630610e5384966972a7dc3985533b94", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x109a4092736ba92807a8a26ef51660765630610e5384966972a7dc3985533b94", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x109a4092736ba92807a8a26ef51660765630610e5384966972a7dc3985533b94", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x109a4092736ba92807a8a26ef51660765630610e5384966972a7dc3985533b94", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x109a4092736ba92807a8a26ef51660765630610e5384966972a7dc3985533b94", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "109a4092736ba92807a8a26ef51660765630610e5384966972a7dc3985533b94", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fa2825b6c338f8d717156560af045136b60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x667abfc4" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x201771a5" + "538407333" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest123.json b/GeneralStateTests/stRandom/randomStatetest123.json index a9ae918fe..bd2b73f90 100644 --- a/GeneralStateTests/stRandom/randomStatetest123.json +++ b/GeneralStateTests/stRandom/randomStatetest123.json @@ -2,92 +2,78 @@ "randomStatetest123" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest123Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41444541084455", + "nonce" : "0", + "storage" : { + "0x051d6a3cd647" : "0x00", + "0x20000" : "0x71b4" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41132", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858914", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8e74561ec1de2e9759c57140194080c9bbb85e01dba0746585ebfc7ce2be027c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8e74561ec1de2e9759c57140194080c9bbb85e01dba0746585ebfc7ce2be027c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8e74561ec1de2e9759c57140194080c9bbb85e01dba0746585ebfc7ce2be027c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8e74561ec1de2e9759c57140194080c9bbb85e01dba0746585ebfc7ce2be027c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8e74561ec1de2e9759c57140194080c9bbb85e01dba0746585ebfc7ce2be027c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7363d4d46695459db58a5980a05216d2688f008024035cbc15cf94d7a9436b38", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41444541084455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +83,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest124.json b/GeneralStateTests/stRandom/randomStatetest124.json index c2e8cee28..32286a028 100644 --- a/GeneralStateTests/stRandom/randomStatetest124.json +++ b/GeneralStateTests/stRandom/randomStatetest124.json @@ -2,92 +2,77 @@ "randomStatetest124" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest124Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1751381635", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08125580355b17457f7463587b9a7a435560005155", + "nonce" : "0", + "storage" : { + "0x01" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "57121", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998248561290", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2aaf8251e93daaa5759026ba6e4721a61cbe87bb75a66bb33c806157f0f9740d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2aaf8251e93daaa5759026ba6e4721a61cbe87bb75a66bb33c806157f0f9740d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2aaf8251e93daaa5759026ba6e4721a61cbe87bb75a66bb33c806157f0f9740d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2aaf8251e93daaa5759026ba6e4721a61cbe87bb75a66bb33c806157f0f9740d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2aaf8251e93daaa5759026ba6e4721a61cbe87bb75a66bb33c806157f0f9740d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2aaf8251e93daaa5759026ba6e4721a61cbe87bb75a66bb33c806157f0f9740d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08125580355b17457f7463587b9a7a435560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x2b83a523" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6863f683" + "1751381635" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest125.json b/GeneralStateTests/stRandom/randomStatetest125.json index b5f7e792c..57a28f0bf 100644 --- a/GeneralStateTests/stRandom/randomStatetest125.json +++ b/GeneralStateTests/stRandom/randomStatetest125.json @@ -2,92 +2,76 @@ "randomStatetest125" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest125Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000001207f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe406f", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1258533548", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998741466498", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe1881131f80068947922f01c78464f93c46e6e11314d0deceb55809e594aec0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe1881131f80068947922f01c78464f93c46e6e11314d0deceb55809e594aec0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe1881131f80068947922f01c78464f93c46e6e11314d0deceb55809e594aec0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe1881131f80068947922f01c78464f93c46e6e11314d0deceb55809e594aec0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe1881131f80068947922f01c78464f93c46e6e11314d0deceb55809e594aec0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e1881131f80068947922f01c78464f93c46e6e11314d0deceb55809e594aec0a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000001207f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe406f", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x4b03b27e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2e97f8a3" + "781711523" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest126.json b/GeneralStateTests/stRandom/randomStatetest126.json index bf72f0d4e..b808e8117 100644 --- a/GeneralStateTests/stRandom/randomStatetest126.json +++ b/GeneralStateTests/stRandom/randomStatetest126.json @@ -2,92 +2,76 @@ "randomStatetest126" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest126Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x4142", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "21118", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999878928", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7397124f53f97e2feb584a04b7216775fcfe101d1460853b392ae38c671b4793", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7397124f53f97e2feb584a04b7216775fcfe101d1460853b392ae38c671b4793", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7397124f53f97e2feb584a04b7216775fcfe101d1460853b392ae38c671b4793", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7397124f53f97e2feb584a04b7216775fcfe101d1460853b392ae38c671b4793", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7397124f53f97e2feb584a04b7216775fcfe101d1460853b392ae38c671b4793", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7397124f53f97e2feb584a04b7216775fcfe101d1460853b392ae38c671b4793", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x4142", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest129.json b/GeneralStateTests/stRandom/randomStatetest129.json index 7144da2a5..fc0924091 100644 --- a/GeneralStateTests/stRandom/randomStatetest129.json +++ b/GeneralStateTests/stRandom/randomStatetest129.json @@ -2,92 +2,77 @@ "randomStatetest129" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest129Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1110233548", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f166e733343093a31a33b8e025a02705560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x166e733343093a31a33b8e025a027055" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47578", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998889718920", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6ec43313620a502abde8528b2b660f8c45ef5f3dbb4d7839ec6c1f45ec3c87ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6ec43313620a502abde8528b2b660f8c45ef5f3dbb4d7839ec6c1f45ec3c87ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6ec43313620a502abde8528b2b660f8c45ef5f3dbb4d7839ec6c1f45ec3c87ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6ec43313620a502abde8528b2b660f8c45ef5f3dbb4d7839ec6c1f45ec3c87ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6ec43313620a502abde8528b2b660f8c45ef5f3dbb4d7839ec6c1f45ec3c87ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6ec43313620a502abde8528b2b660f8c45ef5f3dbb4d7839ec6c1f45ec3c87ee", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f166e733343093a31a33b8e025a02705560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x31d30358" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x422cd1cc" + "1110233548" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest13.json b/GeneralStateTests/stRandom/randomStatetest13.json index 530a8dd5a..c9e266bab 100644 --- a/GeneralStateTests/stRandom/randomStatetest13.json +++ b/GeneralStateTests/stRandom/randomStatetest13.json @@ -2,92 +2,76 @@ "randomStatetest13" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest13Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000027ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe307f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000005255", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1380924181", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998619075865", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x224160a19d11a6252067a26ecfc2963fd1aff5c2b484a2f12c12ec7d5bbc547d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x224160a19d11a6252067a26ecfc2963fd1aff5c2b484a2f12c12ec7d5bbc547d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x224160a19d11a6252067a26ecfc2963fd1aff5c2b484a2f12c12ec7d5bbc547d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x224160a19d11a6252067a26ecfc2963fd1aff5c2b484a2f12c12ec7d5bbc547d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x224160a19d11a6252067a26ecfc2963fd1aff5c2b484a2f12c12ec7d5bbc547d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "224160a19d11a6252067a26ecfc2963fd1aff5c2b484a2f12c12ec7d5bbc547d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000027ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe307f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000005255", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x524f3ae7" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x37d68e6c" + "936808044" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest130.json b/GeneralStateTests/stRandom/randomStatetest130.json index bb8720706..7b8eb4346 100644 --- a/GeneralStateTests/stRandom/randomStatetest130.json +++ b/GeneralStateTests/stRandom/randomStatetest130.json @@ -2,92 +2,77 @@ "randomStatetest130" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest130Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1912800960", + "code" : "0x417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000016f368a668b76306d181a3936119883175560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x368a668b76306d181a39361198831755" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "53657", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998087145429", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9386e629909f1e3f60c0697bc0940935b0e770f2f13db8ed40cfd4031db63f74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9386e629909f1e3f60c0697bc0940935b0e770f2f13db8ed40cfd4031db63f74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9386e629909f1e3f60c0697bc0940935b0e770f2f13db8ed40cfd4031db63f74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9386e629909f1e3f60c0697bc0940935b0e770f2f13db8ed40cfd4031db63f74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9386e629909f1e3f60c0697bc0940935b0e770f2f13db8ed40cfd4031db63f74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9386e629909f1e3f60c0697bc0940935b0e770f2f13db8ed40cfd4031db63f74", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000016f368a668b76306d181a3936119883175560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x297057b2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x720306c0" + "1912800960" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest131.json b/GeneralStateTests/stRandom/randomStatetest131.json index e42d2ea3d..436b94659 100644 --- a/GeneralStateTests/stRandom/randomStatetest131.json +++ b/GeneralStateTests/stRandom/randomStatetest131.json @@ -2,92 +2,77 @@ "randomStatetest131" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest131Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "474455952", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000014416f36ff85758270710168547a977788609660005155", + "nonce" : "0", + "storage" : { + "0x" : "0x36ff85758270710168547a9777886096" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46934", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999525497160", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa4d42afdd9445251ba8569c7ae3ffd34e4d5b79316085a4da5739cb050e064a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa4d42afdd9445251ba8569c7ae3ffd34e4d5b79316085a4da5739cb050e064a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa4d42afdd9445251ba8569c7ae3ffd34e4d5b79316085a4da5739cb050e064a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa4d42afdd9445251ba8569c7ae3ffd34e4d5b79316085a4da5739cb050e064a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa4d42afdd9445251ba8569c7ae3ffd34e4d5b79316085a4da5739cb050e064a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a4d42afdd9445251ba8569c7ae3ffd34e4d5b79316085a4da5739cb050e064a0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000014416f36ff85758270710168547a977788609660005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x2cc6a488" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1c479f90" + "474455952" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest133.json b/GeneralStateTests/stRandom/randomStatetest133.json index f7e848dcc..4eb817164 100644 --- a/GeneralStateTests/stRandom/randomStatetest133.json +++ b/GeneralStateTests/stRandom/randomStatetest133.json @@ -2,92 +2,76 @@ "randomStatetest133" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest133Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000000035830b503516a46d0b03", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1834776365", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998165223681", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xaf91f9bd7acf0fb856104c09018d84bca503d17a152c5a8bee2be74639cf2a8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xaf91f9bd7acf0fb856104c09018d84bca503d17a152c5a8bee2be74639cf2a8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaf91f9bd7acf0fb856104c09018d84bca503d17a152c5a8bee2be74639cf2a8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaf91f9bd7acf0fb856104c09018d84bca503d17a152c5a8bee2be74639cf2a8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaf91f9bd7acf0fb856104c09018d84bca503d17a152c5a8bee2be74639cf2a8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "af91f9bd7acf0fb856104c09018d84bca503d17a152c5a8bee2be74639cf2a8c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000000035830b503516a46d0b03", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x6d5c76ff" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5ada39cc" + "1524251084" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest134.json b/GeneralStateTests/stRandom/randomStatetest134.json index cebe9dd27..47cd46650 100644 --- a/GeneralStateTests/stRandom/randomStatetest134.json +++ b/GeneralStateTests/stRandom/randomStatetest134.json @@ -2,92 +2,76 @@ "randomStatetest134" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest134Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x417f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff557f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff55836b636c9c395a0732014533405560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1683343147", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998316656899", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf9df7b55786a1a71b57305516ddfea66ebbc4ad7d015f5e23ab4a00524273e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf9df7b55786a1a71b57305516ddfea66ebbc4ad7d015f5e23ab4a00524273e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf9df7b55786a1a71b57305516ddfea66ebbc4ad7d015f5e23ab4a00524273e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf9df7b55786a1a71b57305516ddfea66ebbc4ad7d015f5e23ab4a00524273e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf9df7b55786a1a71b57305516ddfea66ebbc4ad7d015f5e23ab4a00524273e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f9df7b55786a1a71b57305516ddfea66ebbc4ad7d015f5e23ab4a00524273e1b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x417f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff557f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff55836b636c9c395a0732014533405560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x6455c6fd" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x03e3e955" + "65268053" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest135.json b/GeneralStateTests/stRandom/randomStatetest135.json index 5d82f733b..d0c4c2b80 100644 --- a/GeneralStateTests/stRandom/randomStatetest135.json +++ b/GeneralStateTests/stRandom/randomStatetest135.json @@ -2,92 +2,76 @@ "randomStatetest135" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest135Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000417f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0075a0b64319218663016870455", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1135806539", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998864193507", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xfdfe1d801240a43ff8708f16b426826801ecb0a34ee05d3b6b93937cf359b2b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xfdfe1d801240a43ff8708f16b426826801ecb0a34ee05d3b6b93937cf359b2b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfdfe1d801240a43ff8708f16b426826801ecb0a34ee05d3b6b93937cf359b2b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfdfe1d801240a43ff8708f16b426826801ecb0a34ee05d3b6b93937cf359b2b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfdfe1d801240a43ff8708f16b426826801ecb0a34ee05d3b6b93937cf359b2b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "fdfe1d801240a43ff8708f16b426826801ecb0a34ee05d3b6b93937cf359b2b4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000417f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0075a0b64319218663016870455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x43b3081d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x625b8cef" + "1650167023" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest136.json b/GeneralStateTests/stRandom/randomStatetest136.json index e4db6694f..0cd8e8fb0 100644 --- a/GeneralStateTests/stRandom/randomStatetest136.json +++ b/GeneralStateTests/stRandom/randomStatetest136.json @@ -2,17 +2,54 @@ "randomStatetest136" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest136Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "890399965", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe45437f0000000000000000000000000000000000000000000000000000000000000001a26f5a6e9570705019164232776c738c8d8760005155", + "nonce" : "0", + "storage" : { + "0x" : "0x5a6e9570705019164232776c738c8d87" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49791", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999109550290", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -25,78 +62,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6238a718c4abed3110effdeb85da950366d8eea029b6cf386fb03a9d232cbc6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6238a718c4abed3110effdeb85da950366d8eea029b6cf386fb03a9d232cbc6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6238a718c4abed3110effdeb85da950366d8eea029b6cf386fb03a9d232cbc6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6238a718c4abed3110effdeb85da950366d8eea029b6cf386fb03a9d232cbc6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6238a718c4abed3110effdeb85da950366d8eea029b6cf386fb03a9d232cbc6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "07dae57ec1fc6c5bda381ac8f38ddf754fa1c27c0594e2ad04c1ff8f472e444d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe45437f0000000000000000000000000000000000000000000000000000000000000001a26f5a6e9570705019164232776c738c8d8760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -108,12 +93,12 @@ "gasLimit" : [ "0x7f504af8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x35126cdd" + "890399965" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest137.json b/GeneralStateTests/stRandom/randomStatetest137.json index dbaa8cec4..707114e94 100644 --- a/GeneralStateTests/stRandom/randomStatetest137.json +++ b/GeneralStateTests/stRandom/randomStatetest137.json @@ -2,92 +2,77 @@ "randomStatetest137" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest137Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "866944487", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000087f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5a130e86ca17390989355f092a25560005155", + "nonce" : "0", + "storage" : { + "0xb5a130e86ca17390989355f092a255600051" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45959", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999133009600", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd7050c99c8117be3bcfbcad84e3b43f9ea15afa5ce5b6202bf9a6a6d17dbaf01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd7050c99c8117be3bcfbcad84e3b43f9ea15afa5ce5b6202bf9a6a6d17dbaf01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd7050c99c8117be3bcfbcad84e3b43f9ea15afa5ce5b6202bf9a6a6d17dbaf01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd7050c99c8117be3bcfbcad84e3b43f9ea15afa5ce5b6202bf9a6a6d17dbaf01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd7050c99c8117be3bcfbcad84e3b43f9ea15afa5ce5b6202bf9a6a6d17dbaf01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d7050c99c8117be3bcfbcad84e3b43f9ea15afa5ce5b6202bf9a6a6d17dbaf01", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000087f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5a130e86ca17390989355f092a25560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x2bbb2129" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x33ac85e7" + "866944487" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest138.json b/GeneralStateTests/stRandom/randomStatetest138.json index 81b5e127d..59bd911d9 100644 --- a/GeneralStateTests/stRandom/randomStatetest138.json +++ b/GeneralStateTests/stRandom/randomStatetest138.json @@ -2,92 +2,83 @@ "randomStatetest138" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest138Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000020000" : { + "balance" : "50000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1998178906", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350447f0000000000000000000000000000000000000000000000000000000000000001f1595160005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "89847", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998001681293", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xba802980b51f6b1a6ce22048c065fa9d0c9c76de7d31cc359b2f87c98fb5ad9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xba802980b51f6b1a6ce22048c065fa9d0c9c76de7d31cc359b2f87c98fb5ad9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xebce247845422a619a96f712b4087dd7e6fc14447f8844769c3dc16a64e128b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xebce247845422a619a96f712b4087dd7e6fc14447f8844769c3dc16a64e128b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xba802980b51f6b1a6ce22048c065fa9d0c9c76de7d31cc359b2f87c98fb5ad9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2f133d841f22cff6b08e3419a00fbce0866b33432111328d3b6bbd783c3d9502", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350447f0000000000000000000000000000000000000000000000000000000000000001f1595160005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +90,12 @@ "gasLimit" : [ "0x53e9ea84" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x771a8daa" + "1998228906" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest139.json b/GeneralStateTests/stRandom/randomStatetest139.json index 2e1342472..f1009c524 100644 --- a/GeneralStateTests/stRandom/randomStatetest139.json +++ b/GeneralStateTests/stRandom/randomStatetest139.json @@ -2,91 +2,76 @@ "randomStatetest139" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest139Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x409ceff3", + "code" : "0x33447f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff434461334515455560005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x020000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xcbf7", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b366c64444", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xad4d0d965899b7919d89a9bea0d705e66caf30fdad951954132e533ee616574e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xad4d0d965899b7919d89a9bea0d705e66caf30fdad951954132e533ee616574e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xad4d0d965899b7919d89a9bea0d705e66caf30fdad951954132e533ee616574e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xad4d0d965899b7919d89a9bea0d705e66caf30fdad951954132e533ee616574e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xad4d0d965899b7919d89a9bea0d705e66caf30fdad951954132e533ee616574e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3e8b2d40bcb72a4f7e20754b41def5098d6925492201aab4f911573db4d80635", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x33447f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff434461334515455560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x409ceff3" ] diff --git a/GeneralStateTests/stRandom/randomStatetest14.json b/GeneralStateTests/stRandom/randomStatetest14.json index ba3ee7ed1..122a6077d 100644 --- a/GeneralStateTests/stRandom/randomStatetest14.json +++ b/GeneralStateTests/stRandom/randomStatetest14.json @@ -2,92 +2,76 @@ "randomStatetest14" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest14Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "15051", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999691174220", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + }, + "fffffffffffffffffffffffffffffffffffffffe" : { + "balance" : "308810775", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9467383579c3e255b75479397b2e2d2d0b84ed88ee619b1dee0ec233d0133e36", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9467383579c3e255b75479397b2e2d2d0b84ed88ee619b1dee0ec233d0133e36", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x09299b57ad249c83444f382e4a185543b9df064510d430447284c0c9ffe51933", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x09299b57ad249c83444f382e4a185543b9df064510d430447284c0c9ffe51933", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9467383579c3e255b75479397b2e2d2d0b84ed88ee619b1dee0ec233d0133e36", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "09299b57ad249c83444f382e4a185543b9df064510d430447284c0c9ffe51933", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff20547f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff61853634f06b907f899d7455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x54d3ff45" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x12681417" + "308810775" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest142.json b/GeneralStateTests/stRandom/randomStatetest142.json index e90d0e311..fc3fe9197 100644 --- a/GeneralStateTests/stRandom/randomStatetest142.json +++ b/GeneralStateTests/stRandom/randomStatetest142.json @@ -2,92 +2,77 @@ "randomStatetest142" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest142Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1842485664", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff959137630364087e1a640431107c880160005155", + "nonce" : "0", + "storage" : { + "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0x0431107c88" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "65582", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998157448800", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xfc2728bac73c9c75f74cb85424dc1c8134b0a89ea7e07cd66391b2f28bd4d566", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xfc2728bac73c9c75f74cb85424dc1c8134b0a89ea7e07cd66391b2f28bd4d566", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfc2728bac73c9c75f74cb85424dc1c8134b0a89ea7e07cd66391b2f28bd4d566", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfc2728bac73c9c75f74cb85424dc1c8134b0a89ea7e07cd66391b2f28bd4d566", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfc2728bac73c9c75f74cb85424dc1c8134b0a89ea7e07cd66391b2f28bd4d566", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "fc2728bac73c9c75f74cb85424dc1c8134b0a89ea7e07cd66391b2f28bd4d566", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff959137630364087e1a640431107c880160005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x79343825" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6dd219a0" + "1842485664" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest143.json b/GeneralStateTests/stRandom/randomStatetest143.json index 56bbe1f7a..100bd3c39 100644 --- a/GeneralStateTests/stRandom/randomStatetest143.json +++ b/GeneralStateTests/stRandom/randomStatetest143.json @@ -2,92 +2,77 @@ "randomStatetest143" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest143Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x414341414243421a2055", + "nonce" : "0", + "storage" : { + "0xae72e2bf2302ebcd309e003e5be58830f96deddaf87bb89eeea159388bfe3ec1" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41451", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858595", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x59263b379a71605bead6356bfdfea192615c16280d3b60d3a18d2593b5d9ee10", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x59263b379a71605bead6356bfdfea192615c16280d3b60d3a18d2593b5d9ee10", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x59263b379a71605bead6356bfdfea192615c16280d3b60d3a18d2593b5d9ee10", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x59263b379a71605bead6356bfdfea192615c16280d3b60d3a18d2593b5d9ee10", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x59263b379a71605bead6356bfdfea192615c16280d3b60d3a18d2593b5d9ee10", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0fbb14a00e6b0a659d75598cbd1dbcfa6cfb9abaf3c9584f49f438baa9d1b684", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x414341414243421a2055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest144.json b/GeneralStateTests/stRandom/randomStatetest144.json index af85ad826..cdf877440 100644 --- a/GeneralStateTests/stRandom/randomStatetest144.json +++ b/GeneralStateTests/stRandom/randomStatetest144.json @@ -2,91 +2,82 @@ "randomStatetest144" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest144Filler.json" }, "env" : { - "currentCoinbase" : "0xb0085a57673c8f7d78fb870418f622e42fd686e4", - "currentDifficulty" : "0x020000", + "currentCoinbase" : "b0085a57673c8f7d78fb870418f622e42fd686e4", + "currentDifficulty" : "131072", "currentGasLimit" : "0x5c1948c7", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0xb93e460c74488b6f2f57690e5fa535c88ad8db30408cad2d66e104795e8ac02e" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "b93e460c74488b6f2f57690e5fa535c88ad8db30408cad2d66e104795e8ac02e" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x03255f9a1b72d9ee", + "code" : "0x621da82575e942e4fd977abdb407069cf700116e02b4f9b25d866b6d13163fff2b8ef03cf8ab5d662afb7bb5c9e68462741090bc0976c9705b40411efe39e80c20b572c5e3d75f788f9be2f0981672b8de37f9e2d1515046cb77cc3ee74646fb096eadce98908499b6fd54725f3c6a725968761ba50494d1ecaf1e787db9a052952427c4f271c28d3e25728b2b76439a3166cd0ed37f30ec2421ed38ebd3b00b89ba9208391dc274e4eefa69161a37dfff7111756dd7971065f05aa9de4867609e7d847a290d0eeb08cde2ff294ae11dd16f8a3e32494d943fa0622cc04cd7476b6d2a1008e4ad1e2c33e2928e707c797f2a1a586bbf78658189bf58172ff77130be2ffc9bbf7f171939be260b30eb65b46a6cf107be1c9ed5c92c99d69fe0559389600e6013601c60096016601260016001600c6017016d200351654b9773409608aaa7db1f67b518d025727bdc6e0463b2bc334b658536d84dadc47a2288da62c36b9a35bf8934e3781a4c44e91637ce5c6b2f916d76706529d728b6f5ee076013601e601960086005601c6013601d96423568ce21a850c04a77ceb9", + "nonce" : "0x59", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x2401ac5958344e85", + "code" : "0x", + "nonce" : "0x35", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x71e90493a9a98bcc", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b0085a57673c8f7d78fb870418f622e42fd686e4" : { + "balance" : "0x544ba0", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf62ef5d0c1e98204d9e8fb34174186d9491411d3641588097e9eb037429d4efb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf62ef5d0c1e98204d9e8fb34174186d9491411d3641588097e9eb037429d4efb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf62ef5d0c1e98204d9e8fb34174186d9491411d3641588097e9eb037429d4efb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf62ef5d0c1e98204d9e8fb34174186d9491411d3641588097e9eb037429d4efb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf62ef5d0c1e98204d9e8fb34174186d9491411d3641588097e9eb037429d4efb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f62ef5d0c1e98204d9e8fb34174186d9491411d3641588097e9eb037429d4efb", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x03255f99de856501", "code" : "0x621da82575e942e4fd977abdb407069cf700116e02b4f9b25d866b6d13163fff2b8ef03cf8ab5d662afb7bb5c9e68462741090bc0976c9705b40411efe39e80c20b572c5e3d75f788f9be2f0981672b8de37f9e2d1515046cb77cc3ee74646fb096eadce98908499b6fd54725f3c6a725968761ba50494d1ecaf1e787db9a052952427c4f271c28d3e25728b2b76439a3166cd0ed37f30ec2421ed38ebd3b00b89ba9208391dc274e4eefa69161a37dfff7111756dd7971065f05aa9de4867609e7d847a290d0eeb08cde2ff294ae11dd16f8a3e32494d943fa0622cc04cd7476b6d2a1008e4ad1e2c33e2928e707c797f2a1a586bbf78658189bf58172ff77130be2ffc9bbf7f171939be260b30eb65b46a6cf107be1c9ed5c92c99d69fe0559389600e6013601c60096016601260016001600c6017016d200351654b9773409608aaa7db1f67b518d025727bdc6e0463b2bc334b658536d84dadc47a2288da62c36b9a35bf8934e3781a4c44e91637ce5c6b2f916d76706529d728b6f5ee076013601e601960086005601c6013601d96423568ce21a850c04a77ceb9", "nonce" : "0x59", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2401ac5958344e85", - "code" : "", + "code" : "0x", "nonce" : "0x35", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x71e90493e6eb4c59", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +92,8 @@ ], "gasPrice" : "0xe8", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x3ced74ed" ] diff --git a/GeneralStateTests/stRandom/randomStatetest145.json b/GeneralStateTests/stRandom/randomStatetest145.json index 91e8e9a84..6ea997bde 100644 --- a/GeneralStateTests/stRandom/randomStatetest145.json +++ b/GeneralStateTests/stRandom/randomStatetest145.json @@ -2,92 +2,77 @@ "randomStatetest145" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest145Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2115970778", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000139133360005155", + "nonce" : "0", + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47533", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997883981735", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf742511c9e00d2b3400e0d597ca2cfa7e0d263b575014f12b36142bebc1cc1a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf742511c9e00d2b3400e0d597ca2cfa7e0d263b575014f12b36142bebc1cc1a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf742511c9e00d2b3400e0d597ca2cfa7e0d263b575014f12b36142bebc1cc1a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf742511c9e00d2b3400e0d597ca2cfa7e0d263b575014f12b36142bebc1cc1a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf742511c9e00d2b3400e0d597ca2cfa7e0d263b575014f12b36142bebc1cc1a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f742511c9e00d2b3400e0d597ca2cfa7e0d263b575014f12b36142bebc1cc1a0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000139133360005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4385cce0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7e1f26da" + "2115970778" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest146.json b/GeneralStateTests/stRandom/randomStatetest146.json index c3190ab5c..bfa69c54a 100644 --- a/GeneralStateTests/stRandom/randomStatetest146.json +++ b/GeneralStateTests/stRandom/randomStatetest146.json @@ -2,92 +2,76 @@ "randomStatetest146" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest146Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x434243434444424350303614f20a", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "72974", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999827072", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x905fa642806a48fa50e933dff10e4a5ab8a67e9ab59a82a56ca70d916722dca0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x515cd8699abad08dcd173cae89e9e58b11fd822f7545dcf276f1eb40c1e4fd93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7cb038e6078df23e57b705eab4969c36f24e8ca8a13cf781d22410a029823245", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7cb038e6078df23e57b705eab4969c36f24e8ca8a13cf781d22410a029823245", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x515cd8699abad08dcd173cae89e9e58b11fd822f7545dcf276f1eb40c1e4fd93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3ec3270c32b915349f7f0be6bc50eab148c225596906df7ead581b41267a9262", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x434243434444424350303614f20a", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest147.json b/GeneralStateTests/stRandom/randomStatetest147.json index 9a5723273..3cccc779c 100644 --- a/GeneralStateTests/stRandom/randomStatetest147.json +++ b/GeneralStateTests/stRandom/randomStatetest147.json @@ -2,92 +2,76 @@ "randomStatetest147" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest147Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "00000000000000000000000000007fffffffffff" : { + "balance" : "1090344298", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "15214", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998909640534", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe43c310760c26b252e3433b91fa8b143f14b6bfb0350c75bf673d5d415364573", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe43c310760c26b252e3433b91fa8b143f14b6bfb0350c75bf673d5d415364573", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xba463233d6fc930224054669afa5005e13f881984266ad54742d6483cb87995a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xba463233d6fc930224054669afa5005e13f881984266ad54742d6483cb87995a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe43c310760c26b252e3433b91fa8b143f14b6bfb0350c75bf673d5d415364573", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ba463233d6fc930224054669afa5005e13f881984266ad54742d6483cb87995a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x657ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe43659a936055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x40e55a54" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x40fd556a" + "1090344298" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest148.json b/GeneralStateTests/stRandom/randomStatetest148.json index c477269fd..5c433ad17 100644 --- a/GeneralStateTests/stRandom/randomStatetest148.json +++ b/GeneralStateTests/stRandom/randomStatetest148.json @@ -2,92 +2,77 @@ "randomStatetest148" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest148Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "811630515", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001537f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f34847e390773919b165590771644725560005155", + "nonce" : "0", + "storage" : { + "0x50000000000000000000000000000000000000000000000000000000000000" : "0x34847e390773919b1655907716447255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "44947", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999188324584", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x77a4cc50de3817adbf7379144c20b651b214aacc1c037d255fdc3c87195c0fb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x77a4cc50de3817adbf7379144c20b651b214aacc1c037d255fdc3c87195c0fb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x77a4cc50de3817adbf7379144c20b651b214aacc1c037d255fdc3c87195c0fb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x77a4cc50de3817adbf7379144c20b651b214aacc1c037d255fdc3c87195c0fb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x77a4cc50de3817adbf7379144c20b651b214aacc1c037d255fdc3c87195c0fb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "77a4cc50de3817adbf7379144c20b651b214aacc1c037d255fdc3c87195c0fb7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001537f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f34847e390773919b165590771644725560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x44f21f26" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x30607fb3" + "811630515" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest149.json b/GeneralStateTests/stRandom/randomStatetest149.json index ef0eca818..d492a14ca 100644 --- a/GeneralStateTests/stRandom/randomStatetest149.json +++ b/GeneralStateTests/stRandom/randomStatetest149.json @@ -2,92 +2,76 @@ "randomStatetest149" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest149Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1968716197", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff099055510760005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51880", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998031231969", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf052b9992c4c5d67b47396b5e0bbce60de54f56ec06cf726b1a989ae46d3199e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf052b9992c4c5d67b47396b5e0bbce60de54f56ec06cf726b1a989ae46d3199e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf052b9992c4c5d67b47396b5e0bbce60de54f56ec06cf726b1a989ae46d3199e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf052b9992c4c5d67b47396b5e0bbce60de54f56ec06cf726b1a989ae46d3199e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf052b9992c4c5d67b47396b5e0bbce60de54f56ec06cf726b1a989ae46d3199e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f052b9992c4c5d67b47396b5e0bbce60de54f56ec06cf726b1a989ae46d3199e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff099055510760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x38a59ba4" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x755839a5" + "1968716197" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest15.json b/GeneralStateTests/stRandom/randomStatetest15.json index 7d314c20d..59ae83375 100644 --- a/GeneralStateTests/stRandom/randomStatetest15.json +++ b/GeneralStateTests/stRandom/randomStatetest15.json @@ -2,92 +2,77 @@ "randomStatetest15" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest15Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1501832876", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000016f436af043189b6197733280a2f1f0385560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x436af043189b6197733280a2f1f03855" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48076", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998498119094", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x996467f7608f55b555ebfee03af8bb04ae2911e1277e43c63e5a2fd1062fe961", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x996467f7608f55b555ebfee03af8bb04ae2911e1277e43c63e5a2fd1062fe961", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x996467f7608f55b555ebfee03af8bb04ae2911e1277e43c63e5a2fd1062fe961", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x996467f7608f55b555ebfee03af8bb04ae2911e1277e43c63e5a2fd1062fe961", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x996467f7608f55b555ebfee03af8bb04ae2911e1277e43c63e5a2fd1062fe961", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "996467f7608f55b555ebfee03af8bb04ae2911e1277e43c63e5a2fd1062fe961", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000016f436af043189b6197733280a2f1f0385560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x587d8615" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x598426ac" + "1501832876" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest150.json b/GeneralStateTests/stRandom/randomStatetest150.json index dc2843758..0d94cb036 100644 --- a/GeneralStateTests/stRandom/randomStatetest150.json +++ b/GeneralStateTests/stRandom/randomStatetest150.json @@ -2,17 +2,53 @@ "randomStatetest150" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest150Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x6c44fb37", + "code" : "0x668254d76c6f24d4806677d83f3a46a1a66f20ae2688cf4b75842ac7265966f5f5ca603e6062a268aba89067dc278e1f86710462dae624ac683889038d26894af02617c06b39c4988a5a60a12c0d9ad0ca65839c92f7c75c6ad3d6a7b617ac7fbd41f5a29377ca6ad48748a94e31302254147fb3b5857568e516cb6e8aa23577af85d0e508dc17dc50e246130be577cb59826adc86af6c107fd8a98f47cccd9d22a867a43cd8ad77bbe8bb737af5acc0be67fd7b054f7281e771891dc4aad180996b9cb71c6016d0f6a9148c775e57ac8456a883eedc3182623898f32b5c83760465a2061c7652e785e7eef7a97b0aa6d6c15b5c296bcf05ee2e9b87aa60b5741b3f7d69a1df03df117b848b3a75f81c12dee2244f76e56bb261e9c75fb5ccc769db72bfaeadee3f68cf22bbca665b0647ac74c1409778c71b73ed4adaa2c6ba1c181b0747c27506478c403b3943129e79223e788bf8b81f60abecb73be035d03a8bbdfa112cd8cb2f7a1065250292740d2d72259b4d7e3ef844783da8118b72912b9f96a61f6168f160ef69d7dd3dfc7e4ef204766f789cbaf2abeceadcf5bdd8dddfef773f0a628afdf3988861662b77882a5cebffc61e75f11835b109e81f7c915a91c13b09097b792d3d59de0ef5b0f00f95ea49860917656263925da2fd6685359c6d7e4c3c4d2001a30111de14c56503788453df98a29b8715561b2c2021cf78e0ccc4701b192ebf67bb6f522656788b3d21428b50a2fa16224d926ce2ea5944760d501bfa0774238c6351dd224b743d3fc4d5a309166016a71b1c230fe9afd6479324716e71e3b27bdd3fb18cccc42f6ec973129f7958435f45da181aeb1608ed31713c33330ab4d2d4af54dd92d1df1560086014601d601f636b1d9a3573095e7baea6a6c7c4c2dfeb977efac326af552d87632aec0540f16cfb040c16bd7c3761bdb86dd6be658d2aefe157396217393663769965a66479176d702e7e2d5697681aac1beccc55825241cd77551f39526cfa77838faa9c4759aafa5c64df5e9199976f35f8298acd398d1913c1fd2ddacbbeac7cc29daee12c057385808f19d07110f30cfd900a130b0a713468bceaf4236153ab6c7bdc39cf86d0a5b03684624d187473b42a2968f1128872724b3d42218dbac11f5a9492651f09a866f61a72535c373274618d5914163abc7481bb7789394e62f247e78e7f83af55a5686926972af7c6519658aee40a564e3c2950f874def7a2110af0526f75629b20a108e1cfba0db03fcdee497ee2f8bcf78ef14317", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x2aed0974", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b31031fb83", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -25,77 +61,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1575ae5ec82d3531c91a4a88b000c41a091437788756bb4ec5b173e6eb61ac7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1575ae5ec82d3531c91a4a88b000c41a091437788756bb4ec5b173e6eb61ac7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x91fa6c25306677bce7d72beb5e71a5b6f92288071f8aba0371959b7df362daf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x91fa6c25306677bce7d72beb5e71a5b6f92288071f8aba0371959b7df362daf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1575ae5ec82d3531c91a4a88b000c41a091437788756bb4ec5b173e6eb61ac7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "91fa6c25306677bce7d72beb5e71a5b6f92288071f8aba0371959b7df362daf4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x668254d76c6f24d4806677d83f3a46a1a66f20ae2688cf4b75842ac7265966f5f5ca603e6062a268aba89067dc278e1f86710462dae624ac683889038d26894af02617c06b39c4988a5a60a12c0d9ad0ca65839c92f7c75c6ad3d6a7b617ac7fbd41f5a29377ca6ad48748a94e31302254147fb3b5857568e516cb6e8aa23577af85d0e508dc17dc50e246130be577cb59826adc86af6c107fd8a98f47cccd9d22a867a43cd8ad77bbe8bb737af5acc0be67fd7b054f7281e771891dc4aad180996b9cb71c6016d0f6a9148c775e57ac8456a883eedc3182623898f32b5c83760465a2061c7652e785e7eef7a97b0aa6d6c15b5c296bcf05ee2e9b87aa60b5741b3f7d69a1df03df117b848b3a75f81c12dee2244f76e56bb261e9c75fb5ccc769db72bfaeadee3f68cf22bbca665b0647ac74c1409778c71b73ed4adaa2c6ba1c181b0747c27506478c403b3943129e79223e788bf8b81f60abecb73be035d03a8bbdfa112cd8cb2f7a1065250292740d2d72259b4d7e3ef844783da8118b72912b9f96a61f6168f160ef69d7dd3dfc7e4ef204766f789cbaf2abeceadcf5bdd8dddfef773f0a628afdf3988861662b77882a5cebffc61e75f11835b109e81f7c915a91c13b09097b792d3d59de0ef5b0f00f95ea49860917656263925da2fd6685359c6d7e4c3c4d2001a30111de14c56503788453df98a29b8715561b2c2021cf78e0ccc4701b192ebf67bb6f522656788b3d21428b50a2fa16224d926ce2ea5944760d501bfa0774238c6351dd224b743d3fc4d5a309166016a71b1c230fe9afd6479324716e71e3b27bdd3fb18cccc42f6ec973129f7958435f45da181aeb1608ed31713c33330ab4d2d4af54dd92d1df1560086014601d601f636b1d9a3573095e7baea6a6c7c4c2dfeb977efac326af552d87632aec0540f16cfb040c16bd7c3761bdb86dd6be658d2aefe157396217393663769965a66479176d702e7e2d5697681aac1beccc55825241cd77551f39526cfa77838faa9c4759aafa5c64df5e9199976f35f8298acd398d1913c1fd2ddacbbeac7cc29daee12c057385808f19d07110f30cfd900a130b0a713468bceaf4236153ab6c7bdc39cf86d0a5b03684624d187473b42a2968f1128872724b3d42218dbac11f5a9492651f09a866f61a72535c373274618d5914163abc7481bb7789394e62f247e78e7f83af55a5686926972af7c6519658aee40a564e3c2950f874def7a2110af0526f75629b20a108e1cfba0db03fcdee497ee2f8bcf78ef14317", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -110,8 +94,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x6c44fb37" ] diff --git a/GeneralStateTests/stRandom/randomStatetest151.json b/GeneralStateTests/stRandom/randomStatetest151.json index 479b9b95a..36fe68b77 100644 --- a/GeneralStateTests/stRandom/randomStatetest151.json +++ b/GeneralStateTests/stRandom/randomStatetest151.json @@ -2,92 +2,76 @@ "randomStatetest151" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest151Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41424143445a42f35b10773574016c9f", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "332075", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999567971", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0xfd87625e181210729a2eb90f115a5d8071e58b87b3ea32f95c85842cf2cdc2f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xfd87625e181210729a2eb90f115a5d8071e58b87b3ea32f95c85842cf2cdc2f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfd87625e181210729a2eb90f115a5d8071e58b87b3ea32f95c85842cf2cdc2f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfd87625e181210729a2eb90f115a5d8071e58b87b3ea32f95c85842cf2cdc2f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfd87625e181210729a2eb90f115a5d8071e58b87b3ea32f95c85842cf2cdc2f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8464ad6046be49963917e36af7d10ff41bc25f298dcb87c1e1a464bd05238f0b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41424143445a42f35b10773574016c9f", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest153.json b/GeneralStateTests/stRandom/randomStatetest153.json index dd0bc1e02..db1253c4c 100644 --- a/GeneralStateTests/stRandom/randomStatetest153.json +++ b/GeneralStateTests/stRandom/randomStatetest153.json @@ -2,92 +2,78 @@ "randomStatetest153" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest153Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x44420b4442432055", + "nonce" : "0", + "storage" : { + "0xae72e2bf2302ebcd309e003e5be58830f96deddaf87bb89eeea159388bfe3ec1" : "0x20000", + "0xbc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41449", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858597", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x45f392e82332370031c662d55b9ee70d85c62d31df64009cf84ad73708ad6cb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x45f392e82332370031c662d55b9ee70d85c62d31df64009cf84ad73708ad6cb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x45f392e82332370031c662d55b9ee70d85c62d31df64009cf84ad73708ad6cb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x45f392e82332370031c662d55b9ee70d85c62d31df64009cf84ad73708ad6cb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x45f392e82332370031c662d55b9ee70d85c62d31df64009cf84ad73708ad6cb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "740e980fa1c72637521f848a07aeb5d66e7ec3c59b94b9e3b948d10267169c5b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x44420b4442432055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +83,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest154.json b/GeneralStateTests/stRandom/randomStatetest154.json index ab4d5baac..65e76a631 100644 --- a/GeneralStateTests/stRandom/randomStatetest154.json +++ b/GeneralStateTests/stRandom/randomStatetest154.json @@ -2,17 +2,53 @@ "randomStatetest154" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest154Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x651c295b", + "code" : "0x7db1267c8bba268d1408f7b3e269afee3fea86c5bc8aec8108fd6aaa954f5173b7d0e2328333e94698e0d570db9b316cba0adbae609d611ba1a2326004600d6005600f632de40a2773095e7baea6a6c7c4c2dfeb977efac326af552d87635c2491eef1", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x5c258845", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b2e6224e8e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -25,77 +61,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x67a71fe25a1677173043ee32485da59869927271f9f4110a6bb8533517b2550a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x67a71fe25a1677173043ee32485da59869927271f9f4110a6bb8533517b2550a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb0be04688838e7890b6244c7d2b72d886fd8e9472d8b8129468f63b18507f7ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb0be04688838e7890b6244c7d2b72d886fd8e9472d8b8129468f63b18507f7ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x67a71fe25a1677173043ee32485da59869927271f9f4110a6bb8533517b2550a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b0be04688838e7890b6244c7d2b72d886fd8e9472d8b8129468f63b18507f7ef", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7db1267c8bba268d1408f7b3e269afee3fea86c5bc8aec8108fd6aaa954f5173b7d0e2328333e94698e0d570db9b316cba0adbae609d611ba1a2326004600d6005600f632de40a2773095e7baea6a6c7c4c2dfeb977efac326af552d87635c2491eef1", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -110,8 +94,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x651c295b" ] diff --git a/GeneralStateTests/stRandom/randomStatetest155.json b/GeneralStateTests/stRandom/randomStatetest155.json index 118ee3c1e..e5a8646f9 100644 --- a/GeneralStateTests/stRandom/randomStatetest155.json +++ b/GeneralStateTests/stRandom/randomStatetest155.json @@ -2,92 +2,77 @@ "randomStatetest155" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest155Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "579536172", + "code" : "0x457f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000006f3494f39b6ca29473a19958030891015560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x3494f39b6ca29473a199580308910155" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51545", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999420412329", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x86cc448a167296701af57783f34699eb2f48a8d2be9381b09cd6b088e206f75d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x86cc448a167296701af57783f34699eb2f48a8d2be9381b09cd6b088e206f75d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x86cc448a167296701af57783f34699eb2f48a8d2be9381b09cd6b088e206f75d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x86cc448a167296701af57783f34699eb2f48a8d2be9381b09cd6b088e206f75d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x86cc448a167296701af57783f34699eb2f48a8d2be9381b09cd6b088e206f75d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "86cc448a167296701af57783f34699eb2f48a8d2be9381b09cd6b088e206f75d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000006f3494f39b6ca29473a19958030891015560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x064d0860" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x228b052c" + "579536172" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest156.json b/GeneralStateTests/stRandom/randomStatetest156.json index f5e07a876..fce84cddc 100644 --- a/GeneralStateTests/stRandom/randomStatetest156.json +++ b/GeneralStateTests/stRandom/randomStatetest156.json @@ -2,92 +2,77 @@ "randomStatetest156" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest156Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2147378193", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3506f813982583141966b389c159aa48b3a8860005155", + "nonce" : "0", + "storage" : { + "0x" : "0x813982583141966b389c159aa48b3a88" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46288", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997852575565", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdc52cf79f5dbf5639335a2c3827f1575bbe9d393b551c39e09c743e30d440b96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdc52cf79f5dbf5639335a2c3827f1575bbe9d393b551c39e09c743e30d440b96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc52cf79f5dbf5639335a2c3827f1575bbe9d393b551c39e09c743e30d440b96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc52cf79f5dbf5639335a2c3827f1575bbe9d393b551c39e09c743e30d440b96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdc52cf79f5dbf5639335a2c3827f1575bbe9d393b551c39e09c743e30d440b96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "dc52cf79f5dbf5639335a2c3827f1575bbe9d393b551c39e09c743e30d440b96", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3506f813982583141966b389c159aa48b3a8860005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x244eb85c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7ffe6411" + "2147378193" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest157.json b/GeneralStateTests/stRandom/randomStatetest157.json index 94d75713b..cd9be4047 100644 --- a/GeneralStateTests/stRandom/randomStatetest157.json +++ b/GeneralStateTests/stRandom/randomStatetest157.json @@ -2,92 +2,76 @@ "randomStatetest157" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest157Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "391059071", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0966ff351691689162f371a38d9b789e4360005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "30390", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999608910585", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x098e4302ae5a61cfcca3600b95291da958757cdaf77cdd1a08e31946d9370007", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x098e4302ae5a61cfcca3600b95291da958757cdaf77cdd1a08e31946d9370007", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x098e4302ae5a61cfcca3600b95291da958757cdaf77cdd1a08e31946d9370007", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x098e4302ae5a61cfcca3600b95291da958757cdaf77cdd1a08e31946d9370007", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x098e4302ae5a61cfcca3600b95291da958757cdaf77cdd1a08e31946d9370007", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "098e4302ae5a61cfcca3600b95291da958757cdaf77cdd1a08e31946d9370007", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0966ff351691689162f371a38d9b789e4360005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x4b1fcfd3" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x174f167f" + "391059071" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest158.json b/GeneralStateTests/stRandom/randomStatetest158.json index a44bfd9df..de132f22c 100644 --- a/GeneralStateTests/stRandom/randomStatetest158.json +++ b/GeneralStateTests/stRandom/randomStatetest158.json @@ -2,91 +2,76 @@ "randomStatetest158" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest158Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x383bfc76", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe435060005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xc223", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b36f274195", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe2b29a1bf24efbe0a7ccafaa9333ac2711ff15e5d0ce472adb6cc9393ee75a39", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe2b29a1bf24efbe0a7ccafaa9333ac2711ff15e5d0ce472adb6cc9393ee75a39", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe2b29a1bf24efbe0a7ccafaa9333ac2711ff15e5d0ce472adb6cc9393ee75a39", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe2b29a1bf24efbe0a7ccafaa9333ac2711ff15e5d0ce472adb6cc9393ee75a39", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe2b29a1bf24efbe0a7ccafaa9333ac2711ff15e5d0ce472adb6cc9393ee75a39", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e2b29a1bf24efbe0a7ccafaa9333ac2711ff15e5d0ce472adb6cc9393ee75a39", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe435060005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x383bfc76" ] diff --git a/GeneralStateTests/stRandom/randomStatetest159.json b/GeneralStateTests/stRandom/randomStatetest159.json index 79dbec883..032209489 100644 --- a/GeneralStateTests/stRandom/randomStatetest159.json +++ b/GeneralStateTests/stRandom/randomStatetest159.json @@ -2,17 +2,54 @@ "randomStatetest159" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest159Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x24a7152f", + "code" : "0x324260e172acf6051580ff4e3ba75da449e7ab2b705cf75873b252caf4b51def86cf4988747e4b77d541c09d316acfebf3871d3a1944a5b975670f11d63a7d9c9b49750a0734d7313f746ba5fba6f3ff04148f4f39e4a28cc271e1ae0b89f2ad1413af2317c6a9628006d4157cdf7a3f30103f20611fe88431b16a79be995278aec271b56bc32543196c650621b66f1bfc718c0d9360cfb17a079aeca76a0b08cb4f0e5789426a6a26c3bef3710be80e4d646135f26076a178e17952f1667fa85f3b72ffa4c95bda9db87e2b8409a9b1c9e27346e5b9a49fd3689f943925eb4618577675acf6bf7b1b665940c32ef9086a95914496bc8bb76245fa2dc9cd3e29618e568966b2893ecd2e84766a8cf184a772e70b3e042b9584601e600b600760136304b1e2f273095e7baea6a6c7c4c2dfeb977efac326af552d876339570738f16df327f570c11aa84a7a5480b98c5175cbd00120239df2d03db2fdd9c233df848ead9d3c84d4556f6030a17e0f41dfce8be36a92b0d5e0d67a71c146187edefc7923a8aad22ca228ecee824c2d7c237ace7e52fd62bd649662a4fe5f78a0b34d84a28c14c9fea0f18d1d55870173546b3b99e17cae467e2f1667b7c9445b11382bf9d7ff632d1ccdc973ba913d9ebbb219ac7aa0f3b579caa81065e433d2b8cf8cbfb998ec52fe1eaea6d87bc7728315cc653ccf904948918741", + "nonce" : "0x00", + "storage" : { + "0xcbd00120239df2d03db2fdd9c233df848ead9d3c84d4" : "0xf327f570c11aa84a7a5480b98c51" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x395a871d", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3496263e2", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -24,77 +61,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8247112219ff68633ac3ff90375b37ebba80b8b879cd5884f2e66b99790d5d00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8247112219ff68633ac3ff90375b37ebba80b8b879cd5884f2e66b99790d5d00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3c123087c3fd11ad6272f2f49d21d2d82f00d862952e6209ecaa5f8824096133", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3c123087c3fd11ad6272f2f49d21d2d82f00d862952e6209ecaa5f8824096133", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8247112219ff68633ac3ff90375b37ebba80b8b879cd5884f2e66b99790d5d00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3c123087c3fd11ad6272f2f49d21d2d82f00d862952e6209ecaa5f8824096133", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x324260e172acf6051580ff4e3ba75da449e7ab2b705cf75873b252caf4b51def86cf4988747e4b77d541c09d316acfebf3871d3a1944a5b975670f11d63a7d9c9b49750a0734d7313f746ba5fba6f3ff04148f4f39e4a28cc271e1ae0b89f2ad1413af2317c6a9628006d4157cdf7a3f30103f20611fe88431b16a79be995278aec271b56bc32543196c650621b66f1bfc718c0d9360cfb17a079aeca76a0b08cb4f0e5789426a6a26c3bef3710be80e4d646135f26076a178e17952f1667fa85f3b72ffa4c95bda9db87e2b8409a9b1c9e27346e5b9a49fd3689f943925eb4618577675acf6bf7b1b665940c32ef9086a95914496bc8bb76245fa2dc9cd3e29618e568966b2893ecd2e84766a8cf184a772e70b3e042b9584601e600b600760136304b1e2f273095e7baea6a6c7c4c2dfeb977efac326af552d876339570738f16df327f570c11aa84a7a5480b98c5175cbd00120239df2d03db2fdd9c233df848ead9d3c84d4556f6030a17e0f41dfce8be36a92b0d5e0d67a71c146187edefc7923a8aad22ca228ecee824c2d7c237ace7e52fd62bd649662a4fe5f78a0b34d84a28c14c9fea0f18d1d55870173546b3b99e17cae467e2f1667b7c9445b11382bf9d7ff632d1ccdc973ba913d9ebbb219ac7aa0f3b579caa81065e433d2b8cf8cbfb998ec52fe1eaea6d87bc7728315cc653ccf904948918741", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -109,8 +94,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x24a7152f" ] diff --git a/GeneralStateTests/stRandom/randomStatetest16.json b/GeneralStateTests/stRandom/randomStatetest16.json index d2a304d13..714ba1df2 100644 --- a/GeneralStateTests/stRandom/randomStatetest16.json +++ b/GeneralStateTests/stRandom/randomStatetest16.json @@ -2,92 +2,76 @@ "randomStatetest16" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest16Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000000557f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005531848f7aa4516d7d7578797e", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1364142729", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998635857317", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb7ca2e84bd3b13715250040d78ad901a0192745e626f3a95fe0069405e85a8a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb7ca2e84bd3b13715250040d78ad901a0192745e626f3a95fe0069405e85a8a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb7ca2e84bd3b13715250040d78ad901a0192745e626f3a95fe0069405e85a8a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb7ca2e84bd3b13715250040d78ad901a0192745e626f3a95fe0069405e85a8a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb7ca2e84bd3b13715250040d78ad901a0192745e626f3a95fe0069405e85a8a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b7ca2e84bd3b13715250040d78ad901a0192745e626f3a95fe0069405e85a8a3", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000000557f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005531848f7aa4516d7d7578797e", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x514f2a5b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3e6a2aaa" + "1047145130" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest160.json b/GeneralStateTests/stRandom/randomStatetest160.json index ae0b860f6..6dd7531b7 100644 --- a/GeneralStateTests/stRandom/randomStatetest160.json +++ b/GeneralStateTests/stRandom/randomStatetest160.json @@ -2,92 +2,77 @@ "randomStatetest160" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest160Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x4242434444454443525520307555", + "nonce" : "0", + "storage" : { + "0x7fffffffffffffff" : "0x20000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "86249", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999813797", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4af0bd285326d5da920237f05dce19b8e135dec25b84d40684b118eb08a16f60", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4af0bd285326d5da920237f05dce19b8e135dec25b84d40684b118eb08a16f60", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4af0bd285326d5da920237f05dce19b8e135dec25b84d40684b118eb08a16f60", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4af0bd285326d5da920237f05dce19b8e135dec25b84d40684b118eb08a16f60", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4af0bd285326d5da920237f05dce19b8e135dec25b84d40684b118eb08a16f60", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3a637ce7ca3e580b4456f8508a8c38a150b2ca2490e0c1307791698b011f0a40", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x4242434444454443525520307555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest161.json b/GeneralStateTests/stRandom/randomStatetest161.json index facb89990..6f61fca99 100644 --- a/GeneralStateTests/stRandom/randomStatetest161.json +++ b/GeneralStateTests/stRandom/randomStatetest161.json @@ -2,92 +2,77 @@ "randomStatetest161" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest161Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "757362865", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001416f458a458076526052650a418c9b40863c60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x458a458076526052650a418c9b40863c" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "43406", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999242593775", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8aa9d034992ee5a8d58cec7ace35e3fc4740ff02306731aae27652250e88e8d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8aa9d034992ee5a8d58cec7ace35e3fc4740ff02306731aae27652250e88e8d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8aa9d034992ee5a8d58cec7ace35e3fc4740ff02306731aae27652250e88e8d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8aa9d034992ee5a8d58cec7ace35e3fc4740ff02306731aae27652250e88e8d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8aa9d034992ee5a8d58cec7ace35e3fc4740ff02306731aae27652250e88e8d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8aa9d034992ee5a8d58cec7ace35e3fc4740ff02306731aae27652250e88e8d2", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001416f458a458076526052650a418c9b40863c60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x49091753" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2d2470b1" + "757362865" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest162.json b/GeneralStateTests/stRandom/randomStatetest162.json index 77c540c4c..b648d72a2 100644 --- a/GeneralStateTests/stRandom/randomStatetest162.json +++ b/GeneralStateTests/stRandom/randomStatetest162.json @@ -2,92 +2,77 @@ "randomStatetest162" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest162Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "725006509", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f355a7f614497339e3b63878b3698045560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x355a7f614497339e3b63878b36980455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49498", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999274944039", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa36aae668193f97cb0f1525fdb606f3179d57dbb0bfed41d0ff9cc31ff97d2a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa36aae668193f97cb0f1525fdb606f3179d57dbb0bfed41d0ff9cc31ff97d2a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa36aae668193f97cb0f1525fdb606f3179d57dbb0bfed41d0ff9cc31ff97d2a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa36aae668193f97cb0f1525fdb606f3179d57dbb0bfed41d0ff9cc31ff97d2a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa36aae668193f97cb0f1525fdb606f3179d57dbb0bfed41d0ff9cc31ff97d2a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a36aae668193f97cb0f1525fdb606f3179d57dbb0bfed41d0ff9cc31ff97d2a9", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f355a7f614497339e3b63878b3698045560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6a56e368" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2b36b8ad" + "725006509" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest163.json b/GeneralStateTests/stRandom/randomStatetest163.json index 9ea6bcf23..70a97847e 100644 --- a/GeneralStateTests/stRandom/randomStatetest163.json +++ b/GeneralStateTests/stRandom/randomStatetest163.json @@ -2,17 +2,53 @@ "randomStatetest163" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest163Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1579124913", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000000034577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000426259cb6142a1196e3168c986758aa4", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "113735807", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998307139326", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -24,78 +60,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd1525021b99d833333eff698fe8865b01cf5d958b8aa38474797634098dd13e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd1525021b99d833333eff698fe8865b01cf5d958b8aa38474797634098dd13e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd1525021b99d833333eff698fe8865b01cf5d958b8aa38474797634098dd13e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd1525021b99d833333eff698fe8865b01cf5d958b8aa38474797634098dd13e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd1525021b99d833333eff698fe8865b01cf5d958b8aa38474797634098dd13e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "634fc8a01590172b79cba0ea677dd15e0c634dc950a9e7a4199148cd6cd749a8", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000000034577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000426259cb6142a1196e3168c986758aa4", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -107,12 +91,12 @@ "gasLimit" : [ "0x16bc578c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5e1f88b1" + "1579124913" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest164.json b/GeneralStateTests/stRandom/randomStatetest164.json index dd6f909b6..db62ab055 100644 --- a/GeneralStateTests/stRandom/randomStatetest164.json +++ b/GeneralStateTests/stRandom/randomStatetest164.json @@ -2,92 +2,78 @@ "randomStatetest164" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest164Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1836140782", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000831305395560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "68439", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998163790825", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa4f469654c9c9e7d18e88f5f6104c692c923ab91f74271c4108239d714509e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa4f469654c9c9e7d18e88f5f6104c692c923ab91f74271c4108239d714509e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa4f469654c9c9e7d18e88f5f6104c692c923ab91f74271c4108239d714509e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa4f469654c9c9e7d18e88f5f6104c692c923ab91f74271c4108239d714509e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa4f469654c9c9e7d18e88f5f6104c692c923ab91f74271c4108239d714509e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a4f469654c9c9e7d18e88f5f6104c692c923ab91f74271c4108239d714509e76", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000831305395560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x5bb752f0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6d7148ee" + "1836140782" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest166.json b/GeneralStateTests/stRandom/randomStatetest166.json index 54e2144b0..5741458be 100644 --- a/GeneralStateTests/stRandom/randomStatetest166.json +++ b/GeneralStateTests/stRandom/randomStatetest166.json @@ -2,92 +2,77 @@ "randomStatetest166" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest166Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1614644579", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff817f0000000000000000000000010000000000000000000000000000000000000000417f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350456f8eb7099d9f160532785143c5937e185560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x8eb7099d9f160532785143c5937e1855" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "44952", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998385310515", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2c0c1fddb7ccc81a8ac1635694689d2775bb05535736a3229dff753dc7926b23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2c0c1fddb7ccc81a8ac1635694689d2775bb05535736a3229dff753dc7926b23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2c0c1fddb7ccc81a8ac1635694689d2775bb05535736a3229dff753dc7926b23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2c0c1fddb7ccc81a8ac1635694689d2775bb05535736a3229dff753dc7926b23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2c0c1fddb7ccc81a8ac1635694689d2775bb05535736a3229dff753dc7926b23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2c0c1fddb7ccc81a8ac1635694689d2775bb05535736a3229dff753dc7926b23", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff817f0000000000000000000000010000000000000000000000000000000000000000417f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350456f8eb7099d9f160532785143c5937e185560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x63271159" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x603d8563" + "1614644579" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest167.json b/GeneralStateTests/stRandom/randomStatetest167.json index 23a61bf01..26bf292aa 100644 --- a/GeneralStateTests/stRandom/randomStatetest167.json +++ b/GeneralStateTests/stRandom/randomStatetest167.json @@ -2,92 +2,77 @@ "randomStatetest167" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest167Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "428826795", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001437f0000000000000000000000000000000000000000000000000000000000000001027f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fa00b875630178a439384941395369e5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xa00b875630178a439384941395369e55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51035", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999571122216", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xcdac8134821914d3619b7478c17582f027ada7ef1f31069d57cf60aae0d35107", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcdac8134821914d3619b7478c17582f027ada7ef1f31069d57cf60aae0d35107", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcdac8134821914d3619b7478c17582f027ada7ef1f31069d57cf60aae0d35107", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcdac8134821914d3619b7478c17582f027ada7ef1f31069d57cf60aae0d35107", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcdac8134821914d3619b7478c17582f027ada7ef1f31069d57cf60aae0d35107", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "cdac8134821914d3619b7478c17582f027ada7ef1f31069d57cf60aae0d35107", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001437f0000000000000000000000000000000000000000000000000000000000000001027f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6fa00b875630178a439384941395369e5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5de3730a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x198f60ab" + "428826795" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest169.json b/GeneralStateTests/stRandom/randomStatetest169.json index 2c0da7798..09bda0ff1 100644 --- a/GeneralStateTests/stRandom/randomStatetest169.json +++ b/GeneralStateTests/stRandom/randomStatetest169.json @@ -2,91 +2,76 @@ "randomStatetest169" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest169Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x33c6014b", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xc396", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3739d3b4d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf1f5f06ca3269f5e4e7d172828216e2089156370c90bf41ec84bdc04de644a6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf1f5f06ca3269f5e4e7d172828216e2089156370c90bf41ec84bdc04de644a6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf1f5f06ca3269f5e4e7d172828216e2089156370c90bf41ec84bdc04de644a6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf1f5f06ca3269f5e4e7d172828216e2089156370c90bf41ec84bdc04de644a6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf1f5f06ca3269f5e4e7d172828216e2089156370c90bf41ec84bdc04de644a6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f1f5f06ca3269f5e4e7d172828216e2089156370c90bf41ec84bdc04de644a6f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x33c6014b" ] diff --git a/GeneralStateTests/stRandom/randomStatetest17.json b/GeneralStateTests/stRandom/randomStatetest17.json index 46d185ede..e843b8d96 100644 --- a/GeneralStateTests/stRandom/randomStatetest17.json +++ b/GeneralStateTests/stRandom/randomStatetest17.json @@ -2,92 +2,79 @@ "randomStatetest17" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest17Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1639312514", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001430a7f000000000000000000000000000000000000000000000000000000000000000106813b375560005155", + "nonce" : "0", + "storage" : { + "0x01" : "0x00", + "0x03e8" : "0x01", + "0x7f000000000000000000000000000000000000000000000000000000000000c3" : "0xc350" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "77175", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998360610357", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8a46586c5856c34b96a01fa070f539dd1d988f9e199227c3fc83b9ef12a5e9e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8942c691cb6eefd395f15bd22dca25c203ac92e3f928771b56572ac93ef0154e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5ab322367fa24477a8f529158e78b499368a42ae0f5cf5ae55e2efe53d20768c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5ab322367fa24477a8f529158e78b499368a42ae0f5cf5ae55e2efe53d20768c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8942c691cb6eefd395f15bd22dca25c203ac92e3f928771b56572ac93ef0154e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7d8b170c77c90552f75573996daf7d7e6435be0f5ed785cbe1945247eec00d5a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001430a7f000000000000000000000000000000000000000000000000000000000000000106813b375560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +86,12 @@ "gasLimit" : [ "0x0f1dce69" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x61b5ec82" + "1639312514" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest170.json b/GeneralStateTests/stRandom/randomStatetest170.json index fcf26668f..f3bef2d75 100644 --- a/GeneralStateTests/stRandom/randomStatetest170.json +++ b/GeneralStateTests/stRandom/randomStatetest170.json @@ -2,92 +2,77 @@ "randomStatetest170" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest170Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x4445413155", + "nonce" : "0", + "storage" : { + "0x2e" : "0x7fffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41140", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858906", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x667c440334c129c625965bba816971a7ee40d83ce0005fab936f4ee6d12214d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x667c440334c129c625965bba816971a7ee40d83ce0005fab936f4ee6d12214d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x972180d2364e9221835b72a691de8d60022bbe9e803f787189b4bd01ec80ed04", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x972180d2364e9221835b72a691de8d60022bbe9e803f787189b4bd01ec80ed04", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x667c440334c129c625965bba816971a7ee40d83ce0005fab936f4ee6d12214d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "04fdf576eb44698e2f838c29d9bc0d0de446d98dce824d5d23b62098e233a840", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x4445413155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest171.json b/GeneralStateTests/stRandom/randomStatetest171.json index 57f7602b3..adc40ce48 100644 --- a/GeneralStateTests/stRandom/randomStatetest171.json +++ b/GeneralStateTests/stRandom/randomStatetest171.json @@ -2,92 +2,76 @@ "randomStatetest171" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest171Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1726364132", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5197ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "38034", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998273597880", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xfe459a91926fc4812fbfc2049af9eb19105b69912799a5af28d799aba9c0fd02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xfe459a91926fc4812fbfc2049af9eb19105b69912799a5af28d799aba9c0fd02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfe459a91926fc4812fbfc2049af9eb19105b69912799a5af28d799aba9c0fd02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfe459a91926fc4812fbfc2049af9eb19105b69912799a5af28d799aba9c0fd02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfe459a91926fc4812fbfc2049af9eb19105b69912799a5af28d799aba9c0fd02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "fe459a91926fc4812fbfc2049af9eb19105b69912799a5af28d799aba9c0fd02", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5197ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x6580cd08" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x66e639e4" + "1726364132" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest172.json b/GeneralStateTests/stRandom/randomStatetest172.json index 2ddccfcc7..7cbc6c32a 100644 --- a/GeneralStateTests/stRandom/randomStatetest172.json +++ b/GeneralStateTests/stRandom/randomStatetest172.json @@ -2,92 +2,76 @@ "randomStatetest172" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest172Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "354059144", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0960005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "40267", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999645900635", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa0150b6a8a102e4b4ce08e818dc0bcfd9c29085dd6b57e42a67dce61a0bc234b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa0150b6a8a102e4b4ce08e818dc0bcfd9c29085dd6b57e42a67dce61a0bc234b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa0150b6a8a102e4b4ce08e818dc0bcfd9c29085dd6b57e42a67dce61a0bc234b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa0150b6a8a102e4b4ce08e818dc0bcfd9c29085dd6b57e42a67dce61a0bc234b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa0150b6a8a102e4b4ce08e818dc0bcfd9c29085dd6b57e42a67dce61a0bc234b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a0150b6a8a102e4b4ce08e818dc0bcfd9c29085dd6b57e42a67dce61a0bc234b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x3fdd64bd" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x151a8388" + "354059144" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest173.json b/GeneralStateTests/stRandom/randomStatetest173.json index 5372f8ac6..a8ec34336 100644 --- a/GeneralStateTests/stRandom/randomStatetest173.json +++ b/GeneralStateTests/stRandom/randomStatetest173.json @@ -2,92 +2,76 @@ "randomStatetest173" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest173Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "6bacfb1469f9a4d5674a85b75f951d72d7a58e4a" : { + "balance" : "1285346393", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "16002", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998714637651", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x81c13a0589b8429b662c2f0b26b986497e229410db5c48dbbe735d5c0675cce3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x81c13a0589b8429b662c2f0b26b986497e229410db5c48dbbe735d5c0675cce3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa6a2fc29db027bfc0c7769731aa05f5b5646316a81375cbb1eb62d19ef56c1a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa6a2fc29db027bfc0c7769731aa05f5b5646316a81375cbb1eb62d19ef56c1a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x81c13a0589b8429b662c2f0b26b986497e229410db5c48dbbe735d5c0675cce3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a6a2fc29db027bfc0c7769731aa05f5b5646316a81375cbb1eb62d19ef56c1a6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b509ff979443703ca35560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x55db56d1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4c9cd459" + "1285346393" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest174.json b/GeneralStateTests/stRandom/randomStatetest174.json index c6a478e80..7335ef753 100644 --- a/GeneralStateTests/stRandom/randomStatetest174.json +++ b/GeneralStateTests/stRandom/randomStatetest174.json @@ -2,92 +2,77 @@ "randomStatetest174" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest174Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x434155", + "nonce" : "0", + "storage" : { + "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41118", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858928", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa20fbc90c81796bde809669fc82c96bac3658e6e819ca866ce636f1609d803a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa20fbc90c81796bde809669fc82c96bac3658e6e819ca866ce636f1609d803a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa20fbc90c81796bde809669fc82c96bac3658e6e819ca866ce636f1609d803a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa20fbc90c81796bde809669fc82c96bac3658e6e819ca866ce636f1609d803a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa20fbc90c81796bde809669fc82c96bac3658e6e819ca866ce636f1609d803a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "80031762584d8f082da0ae0e4fe2898198897f08d0a3499a7c6099d376ea389a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x434155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest175.json b/GeneralStateTests/stRandom/randomStatetest175.json index 38d8d4de3..a47c92fcc 100644 --- a/GeneralStateTests/stRandom/randomStatetest175.json +++ b/GeneralStateTests/stRandom/randomStatetest175.json @@ -2,92 +2,77 @@ "randomStatetest175" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest175Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2139752886", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f6985f2837e09689844171a0235833c5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x6985f2837e09689844171a0235833c55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51226", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997860195934", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x17936ba7e7d066c0303e4fed891734ea1c10eebd28515324a22f326d474aa9a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x17936ba7e7d066c0303e4fed891734ea1c10eebd28515324a22f326d474aa9a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x17936ba7e7d066c0303e4fed891734ea1c10eebd28515324a22f326d474aa9a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x17936ba7e7d066c0303e4fed891734ea1c10eebd28515324a22f326d474aa9a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x17936ba7e7d066c0303e4fed891734ea1c10eebd28515324a22f326d474aa9a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "17936ba7e7d066c0303e4fed891734ea1c10eebd28515324a22f326d474aa9a6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f6985f2837e09689844171a0235833c5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6f6815cb" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7f8a09b6" + "2139752886" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest176.json b/GeneralStateTests/stRandom/randomStatetest176.json index 14ba1558c..5b16ac05f 100644 --- a/GeneralStateTests/stRandom/randomStatetest176.json +++ b/GeneralStateTests/stRandom/randomStatetest176.json @@ -2,92 +2,76 @@ "randomStatetest176" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest176Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "242920391", + "code" : "0x327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350427f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff041469988517f6889d92799e74664160005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "29110", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999757050545", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x66980db101b2e820fdc3418ff5b01df768fcc0a3f1f21c8b089f5c5b3e9f2a8b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x66980db101b2e820fdc3418ff5b01df768fcc0a3f1f21c8b089f5c5b3e9f2a8b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x66980db101b2e820fdc3418ff5b01df768fcc0a3f1f21c8b089f5c5b3e9f2a8b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x66980db101b2e820fdc3418ff5b01df768fcc0a3f1f21c8b089f5c5b3e9f2a8b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x66980db101b2e820fdc3418ff5b01df768fcc0a3f1f21c8b089f5c5b3e9f2a8b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "66980db101b2e820fdc3418ff5b01df768fcc0a3f1f21c8b089f5c5b3e9f2a8b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350427f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff041469988517f6889d92799e74664160005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x5cf09c2a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0e7aabc7" + "242920391" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest177.json b/GeneralStateTests/stRandom/randomStatetest177.json index 451d4a2a7..b34af58da 100644 --- a/GeneralStateTests/stRandom/randomStatetest177.json +++ b/GeneralStateTests/stRandom/randomStatetest177.json @@ -2,91 +2,75 @@ "randomStatetest177" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest177Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x7e24654d920bee1c2af8b3225f6035ea04b87e1d3f2486057268ed05d8d6e5a67f3da4409848b450c9ab9713bf10ec5124e50fda175accc13d0db75bbc03a25a066d85332a97eae6e7219bc62ce53f23690f1df7f7b11c1659165b7c438533bc1f73a59ae2c28e633d8c971763576dd25386518678a15c64a2682c68bf3c1a7433af2e6dd0276f494254235fe7b28b1f997661eba4767c05f37a8b9b7980106e2bbe8744bed6d0f782ac6a99e07d9486451ab20e48c9e99f083973d5a10a57f4c3e7e3fa3bfd63a39006f35f7325ae8b67348d74c87e78d6dc699541fdf8d085697e58b02f9fef3f78554901cc888449b92fe07e74fb3069f7be725f408005886e73e720275f04f63284f6f10b6df25694b3a55936d06ed8c18d03d868d30b7766bd0d6a111f734650113a9f6b31ef3be38904ccd66a304bbf877e9d6ccc3e98fa65a685b0bf181c6dd67c9db728914ff2977b8c19193f67b9053f72c819b5bc5542945bd6a9079965d91f47a11f3862d346cb6b70d29eca71b0d12d01996b89763f13059617d671ddc626d93a3e3fda99999484470e34277f9ac904a6be6b8b9f0a91e98e2759a946222e419d34089491db069bbeeea7d19868e6fef55cd7440fbbdd7bf7cab153de2f407fc2c1f51952d5d5388159f73c98deb0a3f75d04eb70cee4f3dd886b6ba2ab3d1e110db841c50767a4e0ed4abca1bd1d6688861c4bb169fa8b63d253f1a4636a3979396965ae9c16c2197c57851d68f1ee6fff3c92e794d07cc6d2f5b964448fee1c3f52921cd138bfe26f57a3ce26ae8e622c80fcfb7f414b5750048e67dd2c715bdf907a881ef7a77dc8b166b413ebb4261bda628c26666d7ec3d2d20bdc7e117960da38d995574327fc1b63764875b839f395793a937b5f2793db93b23b7160bb44cf7bf515a85769d5f51851260f073969b185817c3e5b658753947f6ae534b0e68afa57a476ff52028737e7d342c1ddc7c5dc786fe6216838882c6f6e8519b16b2d9451ea2f048765576af461aab462031f6a64f0ae07fa9a64d4772252eb9e6aa14429a7e2a1d43482699065e44695fbea176d63d01d22231d221b6f8dfda47f5164a47454ab396f17257ddec269f67ed7c6d17ffac1c61372aaf587427eee43772c5f28fde9d395b65bf2d77e4eaa635bea61396414a53508797e2506ed2f921f29bf2fda1796f4396c4edb6f6ecc6d79fd82d9838a512df1454ce72268d8a32e0971c718b6836e4bcb788766f266a3edfdd24686274f684c4b0a7fd7082159766f4670a09a9e231bf61fe5f955a75b8870744ec89c81940d46be921c40917862e1c186679f354a704fd5537ceb310616acf9779c43c8f585c064fafa775d279d62aec380625fc16d601ef067eddffdf0f1359f386970fe2eb95c063421601a7a5f9256a6398651be88998deb83d16edd603992a27f758bda8c1bf974e49a52cf19c9bc32a79db4778535677e3caeae7f2f6ac54f147d2729c30d694bcb622c13106c3382d4c27bc4ee55eadb4921d97965e605bd3daa1c233230119dce876049813474dc4b3ec1d0ea8d73d182beb19cd3c8f198578d863907a60fd633a65872d93e47dc134fc815d9800bad3f2d58bb97b5776f42800f1f182951ba5aced03a7c3abd859969483189606297788fbf5565010d13f07077752867293dbfe29b7346020ef70d18cacd7508ccb3731b39", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x585b6403", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b34f089c2b", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x35be6da6c9ec9648acf14171b9d9a2798a7143ba751a2374c3c2678452e2c0de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x35be6da6c9ec9648acf14171b9d9a2798a7143ba751a2374c3c2678452e2c0de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x35be6da6c9ec9648acf14171b9d9a2798a7143ba751a2374c3c2678452e2c0de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x35be6da6c9ec9648acf14171b9d9a2798a7143ba751a2374c3c2678452e2c0de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x35be6da6c9ec9648acf14171b9d9a2798a7143ba751a2374c3c2678452e2c0de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "35be6da6c9ec9648acf14171b9d9a2798a7143ba751a2374c3c2678452e2c0de", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7e24654d920bee1c2af8b3225f6035ea04b87e1d3f2486057268ed05d8d6e5a67f3da4409848b450c9ab9713bf10ec5124e50fda175accc13d0db75bbc03a25a066d85332a97eae6e7219bc62ce53f23690f1df7f7b11c1659165b7c438533bc1f73a59ae2c28e633d8c971763576dd25386518678a15c64a2682c68bf3c1a7433af2e6dd0276f494254235fe7b28b1f997661eba4767c05f37a8b9b7980106e2bbe8744bed6d0f782ac6a99e07d9486451ab20e48c9e99f083973d5a10a57f4c3e7e3fa3bfd63a39006f35f7325ae8b67348d74c87e78d6dc699541fdf8d085697e58b02f9fef3f78554901cc888449b92fe07e74fb3069f7be725f408005886e73e720275f04f63284f6f10b6df25694b3a55936d06ed8c18d03d868d30b7766bd0d6a111f734650113a9f6b31ef3be38904ccd66a304bbf877e9d6ccc3e98fa65a685b0bf181c6dd67c9db728914ff2977b8c19193f67b9053f72c819b5bc5542945bd6a9079965d91f47a11f3862d346cb6b70d29eca71b0d12d01996b89763f13059617d671ddc626d93a3e3fda99999484470e34277f9ac904a6be6b8b9f0a91e98e2759a946222e419d34089491db069bbeeea7d19868e6fef55cd7440fbbdd7bf7cab153de2f407fc2c1f51952d5d5388159f73c98deb0a3f75d04eb70cee4f3dd886b6ba2ab3d1e110db841c50767a4e0ed4abca1bd1d6688861c4bb169fa8b63d253f1a4636a3979396965ae9c16c2197c57851d68f1ee6fff3c92e794d07cc6d2f5b964448fee1c3f52921cd138bfe26f57a3ce26ae8e622c80fcfb7f414b5750048e67dd2c715bdf907a881ef7a77dc8b166b413ebb4261bda628c26666d7ec3d2d20bdc7e117960da38d995574327fc1b63764875b839f395793a937b5f2793db93b23b7160bb44cf7bf515a85769d5f51851260f073969b185817c3e5b658753947f6ae534b0e68afa57a476ff52028737e7d342c1ddc7c5dc786fe6216838882c6f6e8519b16b2d9451ea2f048765576af461aab462031f6a64f0ae07fa9a64d4772252eb9e6aa14429a7e2a1d43482699065e44695fbea176d63d01d22231d221b6f8dfda47f5164a47454ab396f17257ddec269f67ed7c6d17ffac1c61372aaf587427eee43772c5f28fde9d395b65bf2d77e4eaa635bea61396414a53508797e2506ed2f921f29bf2fda1796f4396c4edb6f6ecc6d79fd82d9838a512df1454ce72268d8a32e0971c718b6836e4bcb788766f266a3edfdd24686274f684c4b0a7fd7082159766f4670a09a9e231bf61fe5f955a75b8870744ec89c81940d46be921c40917862e1c186679f354a704fd5537ceb310616acf9779c43c8f585c064fafa775d279d62aec380625fc16d601ef067eddffdf0f1359f386970fe2eb95c063421601a7a5f9256a6398651be88998deb83d16edd603992a27f758bda8c1bf974e49a52cf19c9bc32a79db4778535677e3caeae7f2f6ac54f147d2729c30d694bcb622c13106c3382d4c27bc4ee55eadb4921d97965e605bd3daa1c233230119dce876049813474dc4b3ec1d0ea8d73d182beb19cd3c8f198578d863907a60fd633a65872d93e47dc134fc815d9800bad3f2d58bb97b5776f42800f1f182951ba5aced03a7c3abd859969483189606297788fbf5565010d13f07077752867293dbfe29b7346020ef70d18cacd7508ccb3731b39", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x72f740ab" ] diff --git a/GeneralStateTests/stRandom/randomStatetest178.json b/GeneralStateTests/stRandom/randomStatetest178.json index 280dd83e4..bfdd556cf 100644 --- a/GeneralStateTests/stRandom/randomStatetest178.json +++ b/GeneralStateTests/stRandom/randomStatetest178.json @@ -2,17 +2,53 @@ "randomStatetest178" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest178Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x6f33bb2d", + "code" : "0x7d342beabe599e4bc177fd97d36df48d50650ba6129a9a83d4cf809ec21452357c620167f530c3265be9887f6e5b8186decdc00a6a801e5f56dd8d9d36a4806dbccc299e4bbf46ad577e25b5b1fc76b6999cb23a6a03c4035e36b8494135ee170647395da00b6e0a64c43f3358b8bdcf593c89fb70b865ef153b5195c77959256beb4f932095eb8ac80bc2c050f6f550a362aac77f5c4b197151df039d64b77dca22eb8fd4b8cf50fb85a36f1d909d1919a47fe97de5526726b4a47b866b7b13471056439457cd7cbc5060d978056ff5dd24a1f49e50b9f5924f473b2dc5306d67054ca575d0603e616291a3601460106009601f6338a57ddc73095e7baea6a6c7c4c2dfeb977efac326af552d87630e3319c8f133", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x0e348803", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b329fbbcfe", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -26,77 +62,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xcdd6ba6ff4c86bb41a0f085d755fba7298503822e55a705debc543a91b4328a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcdd6ba6ff4c86bb41a0f085d755fba7298503822e55a705debc543a91b4328a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6d68155b52ba65e9d30aa550a76d891125522e06055e44caf525b35f64ad7789", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6d68155b52ba65e9d30aa550a76d891125522e06055e44caf525b35f64ad7789", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcdd6ba6ff4c86bb41a0f085d755fba7298503822e55a705debc543a91b4328a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6d68155b52ba65e9d30aa550a76d891125522e06055e44caf525b35f64ad7789", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7d342beabe599e4bc177fd97d36df48d50650ba6129a9a83d4cf809ec21452357c620167f530c3265be9887f6e5b8186decdc00a6a801e5f56dd8d9d36a4806dbccc299e4bbf46ad577e25b5b1fc76b6999cb23a6a03c4035e36b8494135ee170647395da00b6e0a64c43f3358b8bdcf593c89fb70b865ef153b5195c77959256beb4f932095eb8ac80bc2c050f6f550a362aac77f5c4b197151df039d64b77dca22eb8fd4b8cf50fb85a36f1d909d1919a47fe97de5526726b4a47b866b7b13471056439457cd7cbc5060d978056ff5dd24a1f49e50b9f5924f473b2dc5306d67054ca575d0603e616291a3601460106009601f6338a57ddc73095e7baea6a6c7c4c2dfeb977efac326af552d87630e3319c8f133", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -111,8 +95,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x6f33bb2d" ] diff --git a/GeneralStateTests/stRandom/randomStatetest179.json b/GeneralStateTests/stRandom/randomStatetest179.json index 040e26ac3..46f580a71 100644 --- a/GeneralStateTests/stRandom/randomStatetest179.json +++ b/GeneralStateTests/stRandom/randomStatetest179.json @@ -2,92 +2,77 @@ "randomStatetest179" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest179Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1584198892", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f515480126a50a173506e06676212925560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x515480126a50a173506e066762129255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "54682", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998415746472", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x979443162d328c546cb8d04f07c27cf4dba0b9bb680145a50ab7469fa89949f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x979443162d328c546cb8d04f07c27cf4dba0b9bb680145a50ab7469fa89949f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x979443162d328c546cb8d04f07c27cf4dba0b9bb680145a50ab7469fa89949f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x979443162d328c546cb8d04f07c27cf4dba0b9bb680145a50ab7469fa89949f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x979443162d328c546cb8d04f07c27cf4dba0b9bb680145a50ab7469fa89949f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "979443162d328c546cb8d04f07c27cf4dba0b9bb680145a50ab7469fa89949f7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f515480126a50a173506e06676212925560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x099776d2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5e6cf4ec" + "1584198892" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest18.json b/GeneralStateTests/stRandom/randomStatetest18.json index 3943dbf01..009f488f4 100644 --- a/GeneralStateTests/stRandom/randomStatetest18.json +++ b/GeneralStateTests/stRandom/randomStatetest18.json @@ -2,91 +2,75 @@ "randomStatetest18" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest18Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001077f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3504419860b9754998d503105a033436e67133a60005155", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x3f263119", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3683dcf15", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x83d3dca909b55515e4a851828b28e38cac53e65c0db3b53997a2c0dda1222de7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x83d3dca909b55515e4a851828b28e38cac53e65c0db3b53997a2c0dda1222de7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x83d3dca909b55515e4a851828b28e38cac53e65c0db3b53997a2c0dda1222de7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x83d3dca909b55515e4a851828b28e38cac53e65c0db3b53997a2c0dda1222de7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x83d3dca909b55515e4a851828b28e38cac53e65c0db3b53997a2c0dda1222de7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "83d3dca909b55515e4a851828b28e38cac53e65c0db3b53997a2c0dda1222de7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001077f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3504419860b9754998d503105a033436e67133a60005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x6ec35ec4" ] diff --git a/GeneralStateTests/stRandom/randomStatetest180.json b/GeneralStateTests/stRandom/randomStatetest180.json index 9f1521d97..25e967276 100644 --- a/GeneralStateTests/stRandom/randomStatetest180.json +++ b/GeneralStateTests/stRandom/randomStatetest180.json @@ -2,92 +2,77 @@ "randomStatetest180" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest180Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "566466109", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001447f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f11576b693c128a9e0820609c050a219d60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x11576b693c128a9e0820609c050a219d" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45078", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999433488859", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5b8ba0872e8d65efc0279023f0867fba0d70fdf5c4d81b122ac307c2c1ddcfd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5b8ba0872e8d65efc0279023f0867fba0d70fdf5c4d81b122ac307c2c1ddcfd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5b8ba0872e8d65efc0279023f0867fba0d70fdf5c4d81b122ac307c2c1ddcfd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5b8ba0872e8d65efc0279023f0867fba0d70fdf5c4d81b122ac307c2c1ddcfd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5b8ba0872e8d65efc0279023f0867fba0d70fdf5c4d81b122ac307c2c1ddcfd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5b8ba0872e8d65efc0279023f0867fba0d70fdf5c4d81b122ac307c2c1ddcfd9", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001447f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f11576b693c128a9e0820609c050a219d60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x2d4b9e14" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x21c3963d" + "566466109" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest183.json b/GeneralStateTests/stRandom/randomStatetest183.json index 462b7c919..efcc99a7b 100644 --- a/GeneralStateTests/stRandom/randomStatetest183.json +++ b/GeneralStateTests/stRandom/randomStatetest183.json @@ -2,92 +2,77 @@ "randomStatetest183" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest183Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1159080385", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5436f4134547075687854849d7b646586305560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x4134547075687854849d7b6465863055" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46923", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998840872738", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xaca7cdeac06aeb692d6a82ee2d4c46b5e0817b2c65351183b0f56f0706d7685d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xaca7cdeac06aeb692d6a82ee2d4c46b5e0817b2c65351183b0f56f0706d7685d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaca7cdeac06aeb692d6a82ee2d4c46b5e0817b2c65351183b0f56f0706d7685d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaca7cdeac06aeb692d6a82ee2d4c46b5e0817b2c65351183b0f56f0706d7685d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaca7cdeac06aeb692d6a82ee2d4c46b5e0817b2c65351183b0f56f0706d7685d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "aca7cdeac06aeb692d6a82ee2d4c46b5e0817b2c65351183b0f56f0706d7685d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5436f4134547075687854849d7b646586305560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x2027bd7f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x451629c1" + "1159080385" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest184.json b/GeneralStateTests/stRandom/randomStatetest184.json index 35b21e1ea..9ed1e9088 100644 --- a/GeneralStateTests/stRandom/randomStatetest184.json +++ b/GeneralStateTests/stRandom/randomStatetest184.json @@ -2,91 +2,75 @@ "randomStatetest184" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest184Filler.json" }, "env" : { - "currentCoinbase" : "0x6d6e40885310545835a5b582dbc23ef026404bda", + "currentCoinbase" : "6d6e40885310545835a5b582dbc23ef026404bda", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x2b7fe66d", "currentNumber" : "0x01", - "currentTimestamp" : "0x2710", - "previousHash" : "0xa8228e05d900b890136bcc55628b479e172795042a90e18b673189b5f3a672fc" + "currentTimestamp" : "10000", + "previousHash" : "a8228e05d900b890136bcc55628b479e172795042a90e18b673189b5f3a672fc" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x070a217c02c8f2d4", + "code" : "0x6f823a02877cef7c1afb60663009def564608c557bad2ae05769b991313726edbfa0881d9cc955b0f5154751da315696ea7ce130184b64f2507582c502d450349ff24fb8aeb2a46146687b666bd7bd0364946cb720c76d483f5afea0049251fd9793c4b0376afbb4ebcdc42fdd42edcd4b619cec787638009cea26a1abe570e3186ab790b7dc7db36e4cda2570b0847adf6e39579c7c43a4ac976cd507d493cdfaebe09936078e31c71c4665d34a4b816b8004", + "nonce" : "0x75", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x9740421ff0ff3ae3", + "code" : "0x", + "nonce" : "0x1d", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xc1142f2b8e8eb058", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf95be1e4c7788641348454fd9ff7b21956f61a979e8d7f8e55cec444c5931e8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf95be1e4c7788641348454fd9ff7b21956f61a979e8d7f8e55cec444c5931e8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf95be1e4c7788641348454fd9ff7b21956f61a979e8d7f8e55cec444c5931e8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf95be1e4c7788641348454fd9ff7b21956f61a979e8d7f8e55cec444c5931e8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf95be1e4c7788641348454fd9ff7b21956f61a979e8d7f8e55cec444c5931e8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f95be1e4c7788641348454fd9ff7b21956f61a979e8d7f8e55cec444c5931e8c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x070a217c02c8f2d4", "code" : "0x6f823a02877cef7c1afb60663009def564608c557bad2ae05769b991313726edbfa0881d9cc955b0f5154751da315696ea7ce130184b64f2507582c502d450349ff24fb8aeb2a46146687b666bd7bd0364946cb720c76d483f5afea0049251fd9793c4b0376afbb4ebcdc42fdd42edcd4b619cec787638009cea26a1abe570e3186ab790b7dc7db36e4cda2570b0847adf6e39579c7c43a4ac976cd507d493cdfaebe09936078e31c71c4665d34a4b816b8004", "nonce" : "0x75", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x9740421ff0ff3ae3", - "code" : "", + "code" : "0x", "nonce" : "0x1d", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xc1142f2b8e8eb058", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x1c", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x6d1dd024" ] diff --git a/GeneralStateTests/stRandom/randomStatetest185.json b/GeneralStateTests/stRandom/randomStatetest185.json index 3bba67212..2e8bec355 100644 --- a/GeneralStateTests/stRandom/randomStatetest185.json +++ b/GeneralStateTests/stRandom/randomStatetest185.json @@ -2,17 +2,53 @@ "randomStatetest185" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest185Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1159525186", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff411a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000162805a8d3aa3", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "203072399", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998637402461", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -26,78 +62,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb6c678eb2e9a6f91c61482bc0bc4ceb8a34def5f8e9e77d1074c117013575d1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb6c678eb2e9a6f91c61482bc0bc4ceb8a34def5f8e9e77d1074c117013575d1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb6c678eb2e9a6f91c61482bc0bc4ceb8a34def5f8e9e77d1074c117013575d1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb6c678eb2e9a6f91c61482bc0bc4ceb8a34def5f8e9e77d1074c117013575d1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb6c678eb2e9a6f91c61482bc0bc4ceb8a34def5f8e9e77d1074c117013575d1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b6c678eb2e9a6f91c61482bc0bc4ceb8a34def5f8e9e77d1074c117013575d1b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff411a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000162805a8d3aa3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -109,12 +93,12 @@ "gasLimit" : [ "0x6ab0d01f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x451cf342" + "1159525186" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest187.json b/GeneralStateTests/stRandom/randomStatetest187.json index 84c8ae84c..e203568bd 100644 --- a/GeneralStateTests/stRandom/randomStatetest187.json +++ b/GeneralStateTests/stRandom/randomStatetest187.json @@ -2,92 +2,77 @@ "randomStatetest187" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest187Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "925780098", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f75988036a0562096036b04518877199d60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x75988036a0562096036b04518877199d" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "44751", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999074175197", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9493b52cb370a32b423bd65a009758edba290000d5d10c05ffcbfadad6541391", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9493b52cb370a32b423bd65a009758edba290000d5d10c05ffcbfadad6541391", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9493b52cb370a32b423bd65a009758edba290000d5d10c05ffcbfadad6541391", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9493b52cb370a32b423bd65a009758edba290000d5d10c05ffcbfadad6541391", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9493b52cb370a32b423bd65a009758edba290000d5d10c05ffcbfadad6541391", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9493b52cb370a32b423bd65a009758edba290000d5d10c05ffcbfadad6541391", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f75988036a0562096036b04518877199d60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x316eeeb1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x372e4882" + "925780098" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest188.json b/GeneralStateTests/stRandom/randomStatetest188.json index 0ca5ef207..e497c40fd 100644 --- a/GeneralStateTests/stRandom/randomStatetest188.json +++ b/GeneralStateTests/stRandom/randomStatetest188.json @@ -2,91 +2,76 @@ "randomStatetest188" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest188Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x49195164", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff817f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4286687859f383797187945560005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7859f3837971879455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xbe44", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b35e49f086", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc1218271a72dee1fa981d6d570f9e767b3079e85343cf6fd36bda073066bedd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc1218271a72dee1fa981d6d570f9e767b3079e85343cf6fd36bda073066bedd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc1218271a72dee1fa981d6d570f9e767b3079e85343cf6fd36bda073066bedd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc1218271a72dee1fa981d6d570f9e767b3079e85343cf6fd36bda073066bedd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc1218271a72dee1fa981d6d570f9e767b3079e85343cf6fd36bda073066bedd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c1218271a72dee1fa981d6d570f9e767b3079e85343cf6fd36bda073066bedd9", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff817f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4286687859f383797187945560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x49195164" ] diff --git a/GeneralStateTests/stRandom/randomStatetest189.json b/GeneralStateTests/stRandom/randomStatetest189.json index 60aa9908b..a875620f8 100644 --- a/GeneralStateTests/stRandom/randomStatetest189.json +++ b/GeneralStateTests/stRandom/randomStatetest189.json @@ -2,92 +2,76 @@ "randomStatetest189" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest189Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000035900bf3740474765060005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "801808417", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999198191629", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdc7517940d60bb7c00dc93b4ae33818ee8bc2410454fa42d97d52e10d4578405", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdc7517940d60bb7c00dc93b4ae33818ee8bc2410454fa42d97d52e10d4578405", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc7517940d60bb7c00dc93b4ae33818ee8bc2410454fa42d97d52e10d4578405", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc7517940d60bb7c00dc93b4ae33818ee8bc2410454fa42d97d52e10d4578405", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdc7517940d60bb7c00dc93b4ae33818ee8bc2410454fa42d97d52e10d4578405", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "dc7517940d60bb7c00dc93b4ae33818ee8bc2410454fa42d97d52e10d4578405", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000035900bf3740474765060005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x2fca9ff3" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x410469a9" + "1090808233" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest19.json b/GeneralStateTests/stRandom/randomStatetest19.json index 95b4c37e7..d719332c7 100644 --- a/GeneralStateTests/stRandom/randomStatetest19.json +++ b/GeneralStateTests/stRandom/randomStatetest19.json @@ -2,92 +2,77 @@ "randomStatetest19" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest19Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "500004062", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f0000000000000000000000000000000000000000000000000000000000000001587f000000000000000000000000000000000000000000000000000000000000c3506fff59876660063b7c8df1ff088a84145560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xff59876660063b7c8df1ff088a841455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48919", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999499947065", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x49ee22c0527664c88382f55997285699a62b944a5e9ffcb9193446a67d471564", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x49ee22c0527664c88382f55997285699a62b944a5e9ffcb9193446a67d471564", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x49ee22c0527664c88382f55997285699a62b944a5e9ffcb9193446a67d471564", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x49ee22c0527664c88382f55997285699a62b944a5e9ffcb9193446a67d471564", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x49ee22c0527664c88382f55997285699a62b944a5e9ffcb9193446a67d471564", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "49ee22c0527664c88382f55997285699a62b944a5e9ffcb9193446a67d471564", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f0000000000000000000000000000000000000000000000000000000000000001587f000000000000000000000000000000000000000000000000000000000000c3506fff59876660063b7c8df1ff088a84145560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6d929716" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1dcd74de" + "500004062" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest190.json b/GeneralStateTests/stRandom/randomStatetest190.json index 8eb37e837..e9174c1e5 100644 --- a/GeneralStateTests/stRandom/randomStatetest190.json +++ b/GeneralStateTests/stRandom/randomStatetest190.json @@ -2,92 +2,76 @@ "randomStatetest190" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest190Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "94912880", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0960005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "37003", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999905050163", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x121bcf97270c98447d15d1e604674842742526be841ff83dc9cbe051a7aec00e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x121bcf97270c98447d15d1e604674842742526be841ff83dc9cbe051a7aec00e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x121bcf97270c98447d15d1e604674842742526be841ff83dc9cbe051a7aec00e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x121bcf97270c98447d15d1e604674842742526be841ff83dc9cbe051a7aec00e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x121bcf97270c98447d15d1e604674842742526be841ff83dc9cbe051a7aec00e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "121bcf97270c98447d15d1e604674842742526be841ff83dc9cbe051a7aec00e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x22da0c9a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x05a84170" + "94912880" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest191.json b/GeneralStateTests/stRandom/randomStatetest191.json index 879ff0c8d..5b855b638 100644 --- a/GeneralStateTests/stRandom/randomStatetest191.json +++ b/GeneralStateTests/stRandom/randomStatetest191.json @@ -2,92 +2,77 @@ "randomStatetest191" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest191Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "385910599", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000010000000000000000000000000000000000000000447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f678f0443457084700b645760018a105560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x678f0443457084700b645760018a1055" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "53657", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999614035790", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc24a8492943408a1c04903e75bd3154b4c8adecd88f1127735b2352893ed41e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc24a8492943408a1c04903e75bd3154b4c8adecd88f1127735b2352893ed41e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc24a8492943408a1c04903e75bd3154b4c8adecd88f1127735b2352893ed41e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc24a8492943408a1c04903e75bd3154b4c8adecd88f1127735b2352893ed41e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc24a8492943408a1c04903e75bd3154b4c8adecd88f1127735b2352893ed41e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c24a8492943408a1c04903e75bd3154b4c8adecd88f1127735b2352893ed41e4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000010000000000000000000000000000000000000000447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f678f0443457084700b645760018a105560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x56030329" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x17008747" + "385910599" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest192.json b/GeneralStateTests/stRandom/randomStatetest192.json index 332868e48..a393553ed 100644 --- a/GeneralStateTests/stRandom/randomStatetest192.json +++ b/GeneralStateTests/stRandom/randomStatetest192.json @@ -2,92 +2,77 @@ "randomStatetest192" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest192Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1168450397", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff347f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0460005155", + "nonce" : "0", + "storage" : { + "0x" : "0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50008", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998831499641", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x65a42e14fdb1a6dfd9f85106374988042436f18c271fce9935d737cc0e6cd2bd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x65a42e14fdb1a6dfd9f85106374988042436f18c271fce9935d737cc0e6cd2bd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x65a42e14fdb1a6dfd9f85106374988042436f18c271fce9935d737cc0e6cd2bd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x65a42e14fdb1a6dfd9f85106374988042436f18c271fce9935d737cc0e6cd2bd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x65a42e14fdb1a6dfd9f85106374988042436f18c271fce9935d737cc0e6cd2bd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "65a42e14fdb1a6dfd9f85106374988042436f18c271fce9935d737cc0e6cd2bd", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff347f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x79ba31d0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x45a5235d" + "1168450397" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest194.json b/GeneralStateTests/stRandom/randomStatetest194.json index f2c1cfb96..719af5828 100644 --- a/GeneralStateTests/stRandom/randomStatetest194.json +++ b/GeneralStateTests/stRandom/randomStatetest194.json @@ -2,92 +2,77 @@ "randomStatetest194" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest194Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "827862267", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff097f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b55560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "54820", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999172082959", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x23a241ac2f0eb56bcf53100974ac24b8e6eeb569cc205d94be181471a70ba98d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x23a241ac2f0eb56bcf53100974ac24b8e6eeb569cc205d94be181471a70ba98d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x23a241ac2f0eb56bcf53100974ac24b8e6eeb569cc205d94be181471a70ba98d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x23a241ac2f0eb56bcf53100974ac24b8e6eeb569cc205d94be181471a70ba98d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x23a241ac2f0eb56bcf53100974ac24b8e6eeb569cc205d94be181471a70ba98d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "23a241ac2f0eb56bcf53100974ac24b8e6eeb569cc205d94be181471a70ba98d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff097f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b55560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x37a091f8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x31582cfb" + "827862267" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest195.json b/GeneralStateTests/stRandom/randomStatetest195.json index 975b27a17..5efe62d58 100644 --- a/GeneralStateTests/stRandom/randomStatetest195.json +++ b/GeneralStateTests/stRandom/randomStatetest195.json @@ -2,92 +2,77 @@ "randomStatetest195" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest195Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "307405855", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097f000000000000000000000001000000000000000000000000000000000000000055", + "nonce" : "0", + "storage" : { + "0x010000000000000000000000000000000000000000" : "0xfffffffffffffffffffffffe0000000000000000000000010000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47314", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999692546877", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2641f6f1de59bea560a7e4fe62bc91e9195c1647c16b1bd5d47a81d0f932c07c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2641f6f1de59bea560a7e4fe62bc91e9195c1647c16b1bd5d47a81d0f932c07c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2641f6f1de59bea560a7e4fe62bc91e9195c1647c16b1bd5d47a81d0f932c07c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2641f6f1de59bea560a7e4fe62bc91e9195c1647c16b1bd5d47a81d0f932c07c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2641f6f1de59bea560a7e4fe62bc91e9195c1647c16b1bd5d47a81d0f932c07c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2641f6f1de59bea560a7e4fe62bc91e9195c1647c16b1bd5d47a81d0f932c07c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097f000000000000000000000001000000000000000000000000000000000000000055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0613064a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1252a41f" + "307405855" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest196.json b/GeneralStateTests/stRandom/randomStatetest196.json index d031bbd78..7770d667d 100644 --- a/GeneralStateTests/stRandom/randomStatetest196.json +++ b/GeneralStateTests/stRandom/randomStatetest196.json @@ -2,92 +2,77 @@ "randomStatetest196" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest196Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "672785598", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000003703659c5b3a6d7b9a93543660005155", + "nonce" : "0", + "storage" : { + "0x" : "0xf4" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48201", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999327166247", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x516589e02f1f22ddf5d78e4397bf1635235e40c62ab66ce03347265b838a20fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x516589e02f1f22ddf5d78e4397bf1635235e40c62ab66ce03347265b838a20fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd19233a2f08df5a09dc2d94ee9045507be3974f88ac4e83cf51217688465d3a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd19233a2f08df5a09dc2d94ee9045507be3974f88ac4e83cf51217688465d3a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x516589e02f1f22ddf5d78e4397bf1635235e40c62ab66ce03347265b838a20fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d19233a2f08df5a09dc2d94ee9045507be3974f88ac4e83cf51217688465d3a2", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000003703659c5b3a6d7b9a93543660005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4904551d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2819e4be" + "672785598" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest197.json b/GeneralStateTests/stRandom/randomStatetest197.json index 197aab718..398bf625b 100644 --- a/GeneralStateTests/stRandom/randomStatetest197.json +++ b/GeneralStateTests/stRandom/randomStatetest197.json @@ -2,92 +2,76 @@ "randomStatetest197" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest197Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1542389267", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000016e6a078e5652549f57423955", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "27740", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998457583039", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x03be16281312d1cd04b333e3102b99dbcd72c92b3e9aecb4ec1b05777f14fd14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x03be16281312d1cd04b333e3102b99dbcd72c92b3e9aecb4ec1b05777f14fd14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x03be16281312d1cd04b333e3102b99dbcd72c92b3e9aecb4ec1b05777f14fd14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x03be16281312d1cd04b333e3102b99dbcd72c92b3e9aecb4ec1b05777f14fd14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x03be16281312d1cd04b333e3102b99dbcd72c92b3e9aecb4ec1b05777f14fd14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "03be16281312d1cd04b333e3102b99dbcd72c92b3e9aecb4ec1b05777f14fd14", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000016e6a078e5652549f57423955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x527cfd5b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5beefe13" + "1542389267" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest198.json b/GeneralStateTests/stRandom/randomStatetest198.json index 66799ff07..93f5733b4 100644 --- a/GeneralStateTests/stRandom/randomStatetest198.json +++ b/GeneralStateTests/stRandom/randomStatetest198.json @@ -2,92 +2,76 @@ "randomStatetest198" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest198Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "968197125", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "15659", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999031787262", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1855d6cbea0be125a786cc89babd5bbf27e006d49c7dd568155dd86422d60de9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1855d6cbea0be125a786cc89babd5bbf27e006d49c7dd568155dd86422d60de9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x95de823e82fd518551406d5a4b6bd5f5dbb758c96eb5f94cebc4c4ce001fbcde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x95de823e82fd518551406d5a4b6bd5f5dbb758c96eb5f94cebc4c4ce001fbcde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1855d6cbea0be125a786cc89babd5bbf27e006d49c7dd568155dd86422d60de9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "95de823e82fd518551406d5a4b6bd5f5dbb758c96eb5f94cebc4c4ce001fbcde", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x42417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09ff614044129a0169a2689415", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x45b9fb1b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x39b58405" + "968197125" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest199.json b/GeneralStateTests/stRandom/randomStatetest199.json index 5390da7e2..7463c0a6c 100644 --- a/GeneralStateTests/stRandom/randomStatetest199.json +++ b/GeneralStateTests/stRandom/randomStatetest199.json @@ -2,92 +2,77 @@ "randomStatetest199" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest199Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x30424543074242413155", + "nonce" : "0", + "storage" : { + "0x2e" : "0x03e8" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41153", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858893", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd73e20f1c303010e95ac9d12955aec0834ac33e32c5f75cbcdc98ba212e95780", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd73e20f1c303010e95ac9d12955aec0834ac33e32c5f75cbcdc98ba212e95780", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe628eb2b662c23233d1a758f5d45b889e9718294f7f6021abd3a85cc8b21fdcc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe628eb2b662c23233d1a758f5d45b889e9718294f7f6021abd3a85cc8b21fdcc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd73e20f1c303010e95ac9d12955aec0834ac33e32c5f75cbcdc98ba212e95780", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "985613a688952db98721dc3f6c83daa9805abf1a834edd3554ccba008c88178f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x30424543074242413155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest2.json b/GeneralStateTests/stRandom/randomStatetest2.json index eeb268c5b..cd23aba40 100644 --- a/GeneralStateTests/stRandom/randomStatetest2.json +++ b/GeneralStateTests/stRandom/randomStatetest2.json @@ -2,92 +2,77 @@ "randomStatetest2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest2Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2083830597", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b558437f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000016f3412a47c889e8da06a04049f0498885560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x3412a47c889e8da06a04049f04988855" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48280", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997916121169", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5e3d919936800a697b30985da2a52c46473599816555ed8f3a82179b6c62cf55", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5e3d919936800a697b30985da2a52c46473599816555ed8f3a82179b6c62cf55", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5e3d919936800a697b30985da2a52c46473599816555ed8f3a82179b6c62cf55", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5e3d919936800a697b30985da2a52c46473599816555ed8f3a82179b6c62cf55", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5e3d919936800a697b30985da2a52c46473599816555ed8f3a82179b6c62cf55", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5e3d919936800a697b30985da2a52c46473599816555ed8f3a82179b6c62cf55", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b558437f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000016f3412a47c889e8da06a04049f0498885560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5b03398e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7c34bb45" + "2083830597" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest20.json b/GeneralStateTests/stRandom/randomStatetest20.json index b9b47b0f6..ff718fa2d 100644 --- a/GeneralStateTests/stRandom/randomStatetest20.json +++ b/GeneralStateTests/stRandom/randomStatetest20.json @@ -2,92 +2,76 @@ "randomStatetest20" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest20Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x31417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0315208a675944747f7430661519049a55", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "704316238", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999295683808", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xddb8f27abb51685caa793be133df9db3912648c02498b74a0ae874294acce6f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xddb8f27abb51685caa793be133df9db3912648c02498b74a0ae874294acce6f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xddb8f27abb51685caa793be133df9db3912648c02498b74a0ae874294acce6f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xddb8f27abb51685caa793be133df9db3912648c02498b74a0ae874294acce6f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xddb8f27abb51685caa793be133df9db3912648c02498b74a0ae874294acce6f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ddb8f27abb51685caa793be133df9db3912648c02498b74a0ae874294acce6f0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x31417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0315208a675944747f7430661519049a55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x29fb0320" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x68d133b4" + "1758540724" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest200.json b/GeneralStateTests/stRandom/randomStatetest200.json index 4e29b0f48..73344432d 100644 --- a/GeneralStateTests/stRandom/randomStatetest200.json +++ b/GeneralStateTests/stRandom/randomStatetest200.json @@ -2,92 +2,77 @@ "randomStatetest200" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest200Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1062273821", + "code" : "0x437f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5346f42051af2a24050039e9d3a678b028a0a8055", + "nonce" : "0", + "storage" : { + "0x42051af2a24050039e9d3a678b028a0a" : "0x42051af2a24050039e9d3a678b028a0a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45964", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998937680261", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x66fbb4daae0cecad6c862629c9d971a0cbd1b524d6211e27299066b7868121f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x66fbb4daae0cecad6c862629c9d971a0cbd1b524d6211e27299066b7868121f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x66fbb4daae0cecad6c862629c9d971a0cbd1b524d6211e27299066b7868121f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x66fbb4daae0cecad6c862629c9d971a0cbd1b524d6211e27299066b7868121f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x66fbb4daae0cecad6c862629c9d971a0cbd1b524d6211e27299066b7868121f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "66fbb4daae0cecad6c862629c9d971a0cbd1b524d6211e27299066b7868121f0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x437f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5346f42051af2a24050039e9d3a678b028a0a8055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x138a126b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3f51031d" + "1062273821" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest201.json b/GeneralStateTests/stRandom/randomStatetest201.json index 3fd391f69..9d1dbeb9b 100644 --- a/GeneralStateTests/stRandom/randomStatetest201.json +++ b/GeneralStateTests/stRandom/randomStatetest201.json @@ -2,92 +2,76 @@ "randomStatetest201" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest201Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "953592918", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "15654", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999046391474", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1db08acc59707893ff39f8cf8a00b0e92b956621a22b86c59a8330b5685065fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1db08acc59707893ff39f8cf8a00b0e92b956621a22b86c59a8330b5685065fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6a2eb09095715512587eb5384b208fbaaaae45aca31ea6ccd82178bb45763dca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6a2eb09095715512587eb5384b208fbaaaae45aca31ea6ccd82178bb45763dca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1db08acc59707893ff39f8cf8a00b0e92b956621a22b86c59a8330b5685065fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6a2eb09095715512587eb5384b208fbaaaae45aca31ea6ccd82178bb45763dca", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09ff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff8b8263974074da449e6861039960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x49308968" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x38d6ac56" + "953592918" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest202.json b/GeneralStateTests/stRandom/randomStatetest202.json index 1d4cceb77..07c353877 100644 --- a/GeneralStateTests/stRandom/randomStatetest202.json +++ b/GeneralStateTests/stRandom/randomStatetest202.json @@ -2,91 +2,76 @@ "randomStatetest202" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest202Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x3158e7cd", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000557f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6750a3190486f0", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xc350" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xadea", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3760a6a77", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf90c0fced4f364c533d8fd2639665219dc2e076e94d3dc3a04a25691a21bad31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf90c0fced4f364c533d8fd2639665219dc2e076e94d3dc3a04a25691a21bad31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf90c0fced4f364c533d8fd2639665219dc2e076e94d3dc3a04a25691a21bad31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf90c0fced4f364c533d8fd2639665219dc2e076e94d3dc3a04a25691a21bad31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf90c0fced4f364c533d8fd2639665219dc2e076e94d3dc3a04a25691a21bad31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f90c0fced4f364c533d8fd2639665219dc2e076e94d3dc3a04a25691a21bad31", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000557f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6750a3190486f0", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x3158e7cd" ] diff --git a/GeneralStateTests/stRandom/randomStatetest204.json b/GeneralStateTests/stRandom/randomStatetest204.json index e678bd38c..a69dd9eb2 100644 --- a/GeneralStateTests/stRandom/randomStatetest204.json +++ b/GeneralStateTests/stRandom/randomStatetest204.json @@ -2,92 +2,77 @@ "randomStatetest204" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest204Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1983843477", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff098255", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffff000000000000000000000000ffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47713", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998016108856", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x965e311cc7b4deea0189d01a04b478531f94245d5f8f76e29797f26f589e03f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x965e311cc7b4deea0189d01a04b478531f94245d5f8f76e29797f26f589e03f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x965e311cc7b4deea0189d01a04b478531f94245d5f8f76e29797f26f589e03f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x965e311cc7b4deea0189d01a04b478531f94245d5f8f76e29797f26f589e03f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x965e311cc7b4deea0189d01a04b478531f94245d5f8f76e29797f26f589e03f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "965e311cc7b4deea0189d01a04b478531f94245d5f8f76e29797f26f589e03f2", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff098255", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4d39e437" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x763f0c95" + "1983843477" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest205.json b/GeneralStateTests/stRandom/randomStatetest205.json index c3dd34c2f..d60e1bfb2 100644 --- a/GeneralStateTests/stRandom/randomStatetest205.json +++ b/GeneralStateTests/stRandom/randomStatetest205.json @@ -2,17 +2,53 @@ "randomStatetest205" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest205Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x4dd39b8a", + "code" : "0x3360b261edefa0326fdc74d570982966277b49cdb30a453fa06c34a7423da44ba2d04341af08c478b17a57318ab10ab43b3744333b0aa8864ac27b3fd022e380056735a5fcda3e9fdc25695972a076884de6d6b6b06dd45416c8110bae3c70576b433a4672777847e81823024ddd1292b929ad28e64a732b74c0ae1941d5936ecd35738e2f279273788f4aaf19907a532a6b0f117c32b6cb967aae8bdfcf86e2d4d64599986abcf65a20754f5a816c58ed669138f6a0448670b906bbf1eb145ced896c578de5aa27769006b1a784e84b6316d4e60c7053b0b6550c70a177cb7a3e88d4e83fb1897a09c2161ff6cc2679c178292687137854da672e316c66ef03dc9ac37e8e430b7c64d1939bf67383c4bafeb2f0471fe896b7c0e114bf6f152b266cc769ae4d38f3df618f5eeb9085601f601060086016632c019e2e73095e7baea6a6c7c4c2dfeb977efac326af552d87626b8a0ef179e6b62e86237845e9605d61219d97c1d0145516f5355fe73384e87a6a87cc6d2378c81797ac3746bc562e2fd1145e14781307bc4ada39732e9d0e8725fde75c5abc313c11e3238c7cd9b7186a6a14f8d5c3cad9da5339446ad1311ccc67a0691559157a674825358b301ac42d7bcae31beb8b0849903402175ca3740f3fd690ad66287d6bf67a98c09e6de5717596052d30f4b9bb8046a6b67ef51b1b13c496e97bf9a2e67aeca97fa10a266f8cf22c10cc0375b514b25de466a146576b2cb565754efc80d4b8aa5497aa0fb4cbab90ee57298d322474d276366e04eab856c9f6070c80701fa30596dd0b6ea5bc38ba64e1d16aff1b8c61caa379064465a9308dbb1465294ddcb5fa32833e4ffb049c71761ed93472c7e58f171c6c8b51e2ec704d34897b80466e826b0c1ce2488511cbb1aaad26b075ed5ebf070be6e14eaa6b973423bcb2e0541307d88ff66d1b7e29fffb10218ca75bf3f9957d6ee27a0945278d5f9303b3e3f28a325a7f17905f7467c4afcbb3a43dbbd37e9591e3f5a82841ee9cb8b23f68b4572e8cd96d0f7daacbd3ab3bd5a8f427baf6ea7ae70d98d3948eafb74e2e4a158ac116c5219403c9073a457409c6e464bae32b2c856b15bda1b2176295fd1cecfe7d794ab2692061aa79387004112272204198437fc78d1dbe0e8932ce6f47828a2bf4df47446291b99d92a90de3623954589d36", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x6c6bb7", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b35923f8ed", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -23,77 +59,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb5fac9b1e98bf61ea3e2941b164af8616942180daee8e54dbbbd4717107b2c2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb5fac9b1e98bf61ea3e2941b164af8616942180daee8e54dbbbd4717107b2c2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x000743567a98a4c6c0d76bf44d693c0ad22d944ad46c578bd97e450e71da755b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x000743567a98a4c6c0d76bf44d693c0ad22d944ad46c578bd97e450e71da755b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb5fac9b1e98bf61ea3e2941b164af8616942180daee8e54dbbbd4717107b2c2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "000743567a98a4c6c0d76bf44d693c0ad22d944ad46c578bd97e450e71da755b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x3360b261edefa0326fdc74d570982966277b49cdb30a453fa06c34a7423da44ba2d04341af08c478b17a57318ab10ab43b3744333b0aa8864ac27b3fd022e380056735a5fcda3e9fdc25695972a076884de6d6b6b06dd45416c8110bae3c70576b433a4672777847e81823024ddd1292b929ad28e64a732b74c0ae1941d5936ecd35738e2f279273788f4aaf19907a532a6b0f117c32b6cb967aae8bdfcf86e2d4d64599986abcf65a20754f5a816c58ed669138f6a0448670b906bbf1eb145ced896c578de5aa27769006b1a784e84b6316d4e60c7053b0b6550c70a177cb7a3e88d4e83fb1897a09c2161ff6cc2679c178292687137854da672e316c66ef03dc9ac37e8e430b7c64d1939bf67383c4bafeb2f0471fe896b7c0e114bf6f152b266cc769ae4d38f3df618f5eeb9085601f601060086016632c019e2e73095e7baea6a6c7c4c2dfeb977efac326af552d87626b8a0ef179e6b62e86237845e9605d61219d97c1d0145516f5355fe73384e87a6a87cc6d2378c81797ac3746bc562e2fd1145e14781307bc4ada39732e9d0e8725fde75c5abc313c11e3238c7cd9b7186a6a14f8d5c3cad9da5339446ad1311ccc67a0691559157a674825358b301ac42d7bcae31beb8b0849903402175ca3740f3fd690ad66287d6bf67a98c09e6de5717596052d30f4b9bb8046a6b67ef51b1b13c496e97bf9a2e67aeca97fa10a266f8cf22c10cc0375b514b25de466a146576b2cb565754efc80d4b8aa5497aa0fb4cbab90ee57298d322474d276366e04eab856c9f6070c80701fa30596dd0b6ea5bc38ba64e1d16aff1b8c61caa379064465a9308dbb1465294ddcb5fa32833e4ffb049c71761ed93472c7e58f171c6c8b51e2ec704d34897b80466e826b0c1ce2488511cbb1aaad26b075ed5ebf070be6e14eaa6b973423bcb2e0541307d88ff66d1b7e29fffb10218ca75bf3f9957d6ee27a0945278d5f9303b3e3f28a325a7f17905f7467c4afcbb3a43dbbd37e9591e3f5a82841ee9cb8b23f68b4572e8cd96d0f7daacbd3ab3bd5a8f427baf6ea7ae70d98d3948eafb74e2e4a158ac116c5219403c9073a457409c6e464bae32b2c856b15bda1b2176295fd1cecfe7d794ab2692061aa79387004112272204198437fc78d1dbe0e8932ce6f47828a2bf4df47446291b99d92a90de3623954589d36", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -108,8 +92,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x4dd39b8a" ] diff --git a/GeneralStateTests/stRandom/randomStatetest206.json b/GeneralStateTests/stRandom/randomStatetest206.json index 1b072d0b2..084c453bd 100644 --- a/GeneralStateTests/stRandom/randomStatetest206.json +++ b/GeneralStateTests/stRandom/randomStatetest206.json @@ -2,92 +2,77 @@ "randomStatetest206" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest206Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2091011439", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5427f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f45736d8e806138378d62087320313c5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x45736d8e806138378d62087320313c55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48408", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997908940199", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb072519f8633ab8a74923551afd7b437f76c1ab0b9d5f7150becf467ac4b3117", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb072519f8633ab8a74923551afd7b437f76c1ab0b9d5f7150becf467ac4b3117", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb072519f8633ab8a74923551afd7b437f76c1ab0b9d5f7150becf467ac4b3117", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb072519f8633ab8a74923551afd7b437f76c1ab0b9d5f7150becf467ac4b3117", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb072519f8633ab8a74923551afd7b437f76c1ab0b9d5f7150becf467ac4b3117", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b072519f8633ab8a74923551afd7b437f76c1ab0b9d5f7150becf467ac4b3117", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5427f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f45736d8e806138378d62087320313c5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x516e1a90" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7ca24d6f" + "2091011439" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest207.json b/GeneralStateTests/stRandom/randomStatetest207.json index 13941a9e2..ba2b78fd6 100644 --- a/GeneralStateTests/stRandom/randomStatetest207.json +++ b/GeneralStateTests/stRandom/randomStatetest207.json @@ -2,92 +2,77 @@ "randomStatetest207" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest207Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x43413160439155", + "nonce" : "0", + "storage" : { + "0x01" : "0x2e" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41144", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858902", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc901dc3eb7466bd88f0512d41576281e7d5bb38057efa363384f526721198f3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc901dc3eb7466bd88f0512d41576281e7d5bb38057efa363384f526721198f3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9780a444ca6f188ebee8520aec9c32f75dc312fae48de0c57eb5912fc88bfc70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9780a444ca6f188ebee8520aec9c32f75dc312fae48de0c57eb5912fc88bfc70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc901dc3eb7466bd88f0512d41576281e7d5bb38057efa363384f526721198f3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "173e6538b20664191b0c50b6f109291642fd91245f2bb0f4e9c2ae4ada26c90d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x43413160439155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest208.json b/GeneralStateTests/stRandom/randomStatetest208.json index 77eec0e28..7bf511a54 100644 --- a/GeneralStateTests/stRandom/randomStatetest208.json +++ b/GeneralStateTests/stRandom/randomStatetest208.json @@ -2,92 +2,77 @@ "randomStatetest208" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest208Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2144690611", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0960005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffd000000000000000100000001" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51619", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997855257816", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe25612e31c35071e64dd11713edba222945c00f21d6c5f8523d98fceaf99a2ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe25612e31c35071e64dd11713edba222945c00f21d6c5f8523d98fceaf99a2ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe25612e31c35071e64dd11713edba222945c00f21d6c5f8523d98fceaf99a2ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe25612e31c35071e64dd11713edba222945c00f21d6c5f8523d98fceaf99a2ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe25612e31c35071e64dd11713edba222945c00f21d6c5f8523d98fceaf99a2ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e25612e31c35071e64dd11713edba222945c00f21d6c5f8523d98fceaf99a2ef", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5534566d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7fd561b3" + "2144690611" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest209.json b/GeneralStateTests/stRandom/randomStatetest209.json index 6630c5bde..6d9af9c12 100644 --- a/GeneralStateTests/stRandom/randomStatetest209.json +++ b/GeneralStateTests/stRandom/randomStatetest209.json @@ -2,92 +2,76 @@ "randomStatetest209" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest209Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "833511346", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0951537d3c6474623b781181a355", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "27745", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999166460955", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5f0c6af0d310152770dd13cff103cfa1ac49b780162e8c51f7f1e2df77e29cc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5f0c6af0d310152770dd13cff103cfa1ac49b780162e8c51f7f1e2df77e29cc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5f0c6af0d310152770dd13cff103cfa1ac49b780162e8c51f7f1e2df77e29cc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5f0c6af0d310152770dd13cff103cfa1ac49b780162e8c51f7f1e2df77e29cc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5f0c6af0d310152770dd13cff103cfa1ac49b780162e8c51f7f1e2df77e29cc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5f0c6af0d310152770dd13cff103cfa1ac49b780162e8c51f7f1e2df77e29cc3", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0951537d3c6474623b781181a355", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x44953718" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x31ae5fb2" + "833511346" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest210.json b/GeneralStateTests/stRandom/randomStatetest210.json index 748a780fa..0738ccf25 100644 --- a/GeneralStateTests/stRandom/randomStatetest210.json +++ b/GeneralStateTests/stRandom/randomStatetest210.json @@ -2,92 +2,77 @@ "randomStatetest210" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest210Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1780157802", + "code" : "0x457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0960005155", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffff000000000000000000000001fffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48417", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998219793827", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x348f5b98bc3aa5be1f7161e6a11dea7bd3c0ae53e4a06e0d96aebc74c389eb58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x348f5b98bc3aa5be1f7161e6a11dea7bd3c0ae53e4a06e0d96aebc74c389eb58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x348f5b98bc3aa5be1f7161e6a11dea7bd3c0ae53e4a06e0d96aebc74c389eb58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x348f5b98bc3aa5be1f7161e6a11dea7bd3c0ae53e4a06e0d96aebc74c389eb58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x348f5b98bc3aa5be1f7161e6a11dea7bd3c0ae53e4a06e0d96aebc74c389eb58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "348f5b98bc3aa5be1f7161e6a11dea7bd3c0ae53e4a06e0d96aebc74c389eb58", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x56c7e888" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6a1b0d6a" + "1780157802" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest211.json b/GeneralStateTests/stRandom/randomStatetest211.json index 9289ed93e..f26af4cf6 100644 --- a/GeneralStateTests/stRandom/randomStatetest211.json +++ b/GeneralStateTests/stRandom/randomStatetest211.json @@ -2,17 +2,53 @@ "randomStatetest211" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest211Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x5c537837", + "code" : "0x7e7a980b5b1c50ebb63d8e2211d3a79e841ee5e5946b7969dfb6ca1309c99e8f68d4ee9a50996902ee4e6937e1d07ad872cf04eb2a61fc336025a3648d5818a6457dc24f19f38d3deebb09968c812740339c6df46af95b7b0283acb1944a8ca37fbaaafeac115b9ec5adc16fea5a3a828d3483e495506a790ca75d8238ebbed6477c213d0177c10b33b6cf9362273973809ac39f11dffee928f3fb18e975186fb4a74e56142d4431bfa392dd5f71d32b6c40a2bd0beb6a8b24fc592b25f0680306f11e049124ec396ea3858d3339145af8c1c16747bea056639a7faf446cd9c7bf446ed2de67f1665adc479874053c2c53f0fc53a12af3c1951fdc7a5d20aee8f96874f392a4aa2a84a99c9390ab4bd4c39f521a2b91c2ea90", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x099bbd", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b34b06ec3a", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -26,77 +62,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa7ec1630296c75179b3fbbcef7d7da9e8107138477598c1091d434d02bd749ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa7ec1630296c75179b3fbbcef7d7da9e8107138477598c1091d434d02bd749ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa7ec1630296c75179b3fbbcef7d7da9e8107138477598c1091d434d02bd749ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa7ec1630296c75179b3fbbcef7d7da9e8107138477598c1091d434d02bd749ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa7ec1630296c75179b3fbbcef7d7da9e8107138477598c1091d434d02bd749ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a7ec1630296c75179b3fbbcef7d7da9e8107138477598c1091d434d02bd749ca", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7e7a980b5b1c50ebb63d8e2211d3a79e841ee5e5946b7969dfb6ca1309c99e8f68d4ee9a50996902ee4e6937e1d07ad872cf04eb2a61fc336025a3648d5818a6457dc24f19f38d3deebb09968c812740339c6df46af95b7b0283acb1944a8ca37fbaaafeac115b9ec5adc16fea5a3a828d3483e495506a790ca75d8238ebbed6477c213d0177c10b33b6cf9362273973809ac39f11dffee928f3fb18e975186fb4a74e56142d4431bfa392dd5f71d32b6c40a2bd0beb6a8b24fc592b25f0680306f11e049124ec396ea3858d3339145af8c1c16747bea056639a7faf446cd9c7bf446ed2de67f1665adc479874053c2c53f0fc53a12af3c1951fdc7a5d20aee8f96874f392a4aa2a84a99c9390ab4bd4c39f521a2b91c2ea90", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -111,8 +95,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x5c537837" ] diff --git a/GeneralStateTests/stRandom/randomStatetest212.json b/GeneralStateTests/stRandom/randomStatetest212.json index 91865e057..73059a649 100644 --- a/GeneralStateTests/stRandom/randomStatetest212.json +++ b/GeneralStateTests/stRandom/randomStatetest212.json @@ -2,92 +2,76 @@ "randomStatetest212" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest212Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "49732651", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "17236", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999950250159", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe851fd489413672973d4ecb012164a90d0bdbb72cefd56e57c8c1c969ee061cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe851fd489413672973d4ecb012164a90d0bdbb72cefd56e57c8c1c969ee061cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaa851aa84f2699ce3f4444082f98afbc7b80adf81f985a303b6e6f7b89923ed0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaa851aa84f2699ce3f4444082f98afbc7b80adf81f985a303b6e6f7b89923ed0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe851fd489413672973d4ecb012164a90d0bdbb72cefd56e57c8c1c969ee061cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "aa851aa84f2699ce3f4444082f98afbc7b80adf81f985a303b6e6f7b89923ed0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06180908ff3a68f28e61990a525560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x417ddd1e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x02f6dc2b" + "49732651" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest214.json b/GeneralStateTests/stRandom/randomStatetest214.json index daa19f8ad..b6b7e5606 100644 --- a/GeneralStateTests/stRandom/randomStatetest214.json +++ b/GeneralStateTests/stRandom/randomStatetest214.json @@ -2,92 +2,77 @@ "randomStatetest214" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest214Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2101620901", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff150a6f7b056b335a15a48d7b8841163a50396360005155", + "nonce" : "0", + "storage" : { + "0x" : "0x7b056b335a15a48d7b8841163a503963" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48168", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997898330977", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x82022bb552f8a9ca289770c5ec05ee620c785cc3c95ddbca5641d863550048d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4137060ef2900ba0acb0cbe26e668f768a97cce53194c02bd33d0ccc2312c482", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x82022bb552f8a9ca289770c5ec05ee620c785cc3c95ddbca5641d863550048d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x82022bb552f8a9ca289770c5ec05ee620c785cc3c95ddbca5641d863550048d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4137060ef2900ba0acb0cbe26e668f768a97cce53194c02bd33d0ccc2312c482", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "82022bb552f8a9ca289770c5ec05ee620c785cc3c95ddbca5641d863550048d6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff150a6f7b056b335a15a48d7b8841163a50396360005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1092050b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7d4430a5" + "2101620901" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest215.json b/GeneralStateTests/stRandom/randomStatetest215.json index a0faf240a..229f13e2f 100644 --- a/GeneralStateTests/stRandom/randomStatetest215.json +++ b/GeneralStateTests/stRandom/randomStatetest215.json @@ -2,92 +2,77 @@ "randomStatetest215" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest215Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "812357921", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff446f728f4f1065583139780a981510173b9c60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x728f4f1065583139780a981510173b9c" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49942", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999187592183", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xda21f6b52e36209db16266df5600bf8f45fa462b46ec248f735e4fd734792349", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xda21f6b52e36209db16266df5600bf8f45fa462b46ec248f735e4fd734792349", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xda21f6b52e36209db16266df5600bf8f45fa462b46ec248f735e4fd734792349", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xda21f6b52e36209db16266df5600bf8f45fa462b46ec248f735e4fd734792349", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xda21f6b52e36209db16266df5600bf8f45fa462b46ec248f735e4fd734792349", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "da21f6b52e36209db16266df5600bf8f45fa462b46ec248f735e4fd734792349", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff446f728f4f1065583139780a981510173b9c60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x36f5a3d2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x306b9921" + "812357921" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest216.json b/GeneralStateTests/stRandom/randomStatetest216.json index 62af47d2d..eb970c95b 100644 --- a/GeneralStateTests/stRandom/randomStatetest216.json +++ b/GeneralStateTests/stRandom/randomStatetest216.json @@ -2,92 +2,77 @@ "randomStatetest216" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest216Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "679576029", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350447f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506d766d67fe0785320899130644945560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x766d67fe07853208991306449455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47313", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999320376704", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1fd62a58329ce462edac2a08724b7f2defd5c55ef226f52574c6d5802abf626f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1fd62a58329ce462edac2a08724b7f2defd5c55ef226f52574c6d5802abf626f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1fd62a58329ce462edac2a08724b7f2defd5c55ef226f52574c6d5802abf626f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1fd62a58329ce462edac2a08724b7f2defd5c55ef226f52574c6d5802abf626f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1fd62a58329ce462edac2a08724b7f2defd5c55ef226f52574c6d5802abf626f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1fd62a58329ce462edac2a08724b7f2defd5c55ef226f52574c6d5802abf626f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350447f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506d766d67fe0785320899130644945560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x08befbe7" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x288181dd" + "679576029" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest217.json b/GeneralStateTests/stRandom/randomStatetest217.json index 71c939c58..d2d600c8a 100644 --- a/GeneralStateTests/stRandom/randomStatetest217.json +++ b/GeneralStateTests/stRandom/randomStatetest217.json @@ -2,92 +2,77 @@ "randomStatetest217" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest217Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "473066872", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001377f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c35060005155", + "nonce" : "0", + "storage" : { + "0x7f000000000000000000000000000000000000000000000000000000000000" : "0xc350" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "57177", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999526875997", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x26489279c86c67abc74e4226919d533de9ad89534331e2beb284ba94916183e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x26489279c86c67abc74e4226919d533de9ad89534331e2beb284ba94916183e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x26489279c86c67abc74e4226919d533de9ad89534331e2beb284ba94916183e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x26489279c86c67abc74e4226919d533de9ad89534331e2beb284ba94916183e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x26489279c86c67abc74e4226919d533de9ad89534331e2beb284ba94916183e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "26489279c86c67abc74e4226919d533de9ad89534331e2beb284ba94916183e2", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001377f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c35060005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3023ee24" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1c326d78" + "473066872" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest219.json b/GeneralStateTests/stRandom/randomStatetest219.json index d698a00c9..567fbe59c 100644 --- a/GeneralStateTests/stRandom/randomStatetest219.json +++ b/GeneralStateTests/stRandom/randomStatetest219.json @@ -2,92 +2,77 @@ "randomStatetest219" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest219Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "73663722", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3506f6253443a4104027144577f339983205560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x6253443a4104027144577f3399832055" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45209", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999926291115", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1cb4f2a66f53dfed332c100f9d3d70716f3c30408c4ef19776cea3770357a17c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1cb4f2a66f53dfed332c100f9d3d70716f3c30408c4ef19776cea3770357a17c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1cb4f2a66f53dfed332c100f9d3d70716f3c30408c4ef19776cea3770357a17c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1cb4f2a66f53dfed332c100f9d3d70716f3c30408c4ef19776cea3770357a17c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1cb4f2a66f53dfed332c100f9d3d70716f3c30408c4ef19776cea3770357a17c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1cb4f2a66f53dfed332c100f9d3d70716f3c30408c4ef19776cea3770357a17c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3506f6253443a4104027144577f339983205560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x647e4cf8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x046404ea" + "73663722" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest22.json b/GeneralStateTests/stRandom/randomStatetest22.json index b9dab5482..e564d1782 100644 --- a/GeneralStateTests/stRandom/randomStatetest22.json +++ b/GeneralStateTests/stRandom/randomStatetest22.json @@ -2,92 +2,76 @@ "randomStatetest22" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest22Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "000000000000417fffffffffffffffffffffffff" : { + "balance" : "1814313700", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "14710", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998185671636", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5887798a31f38be5d859a9ea6398c8d77bf9ecbaebbcc2d38bc0e3ca8bc43957", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5887798a31f38be5d859a9ea6398c8d77bf9ecbaebbcc2d38bc0e3ca8bc43957", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x53b61b0ec6357529a26cd0a546e75b1340a1f29fabfdb407d641c7ddcfb708a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x53b61b0ec6357529a26cd0a546e75b1340a1f29fabfdb407d641c7ddcfb708a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5887798a31f38be5d859a9ea6398c8d77bf9ecbaebbcc2d38bc0e3ca8bc43957", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "53b61b0ec6357529a26cd0a546e75b1340a1f29fabfdb407d641c7ddcfb708a7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x6d417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e969f926084143c7960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x60e16136" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6c243ae4" + "1814313700" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest220.json b/GeneralStateTests/stRandom/randomStatetest220.json index ae410f21a..4f3500688 100644 --- a/GeneralStateTests/stRandom/randomStatetest220.json +++ b/GeneralStateTests/stRandom/randomStatetest220.json @@ -2,92 +2,77 @@ "randomStatetest220" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest220Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "207355039", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000016f420380a03c4282a3540a1a333a843a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x420380a03c4282a3540a1a333a843a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49356", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999792595651", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1e9ada2361bd2e5fc1575142ea9d6414a81fdb42b55feb63854173dab54c319a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1e9ada2361bd2e5fc1575142ea9d6414a81fdb42b55feb63854173dab54c319a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1e9ada2361bd2e5fc1575142ea9d6414a81fdb42b55feb63854173dab54c319a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1e9ada2361bd2e5fc1575142ea9d6414a81fdb42b55feb63854173dab54c319a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1e9ada2361bd2e5fc1575142ea9d6414a81fdb42b55feb63854173dab54c319a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1e9ada2361bd2e5fc1575142ea9d6414a81fdb42b55feb63854173dab54c319a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000016f420380a03c4282a3540a1a333a843a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x137092c2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0c5bfc9f" + "207355039" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest221.json b/GeneralStateTests/stRandom/randomStatetest221.json index 8d7d30476..de16abf43 100644 --- a/GeneralStateTests/stRandom/randomStatetest221.json +++ b/GeneralStateTests/stRandom/randomStatetest221.json @@ -2,92 +2,77 @@ "randomStatetest221" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest221Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1862685167", + "code" : "0x457f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f977789947e197f828151867a73771a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x977789947e197f828151867a73771a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48338", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998137266541", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x51d61f0deee2340041d04d482b3990d4920044d70afd59352a8e97a36abb9520", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x51d61f0deee2340041d04d482b3990d4920044d70afd59352a8e97a36abb9520", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x51d61f0deee2340041d04d482b3990d4920044d70afd59352a8e97a36abb9520", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x51d61f0deee2340041d04d482b3990d4920044d70afd59352a8e97a36abb9520", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x51d61f0deee2340041d04d482b3990d4920044d70afd59352a8e97a36abb9520", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "51d61f0deee2340041d04d482b3990d4920044d70afd59352a8e97a36abb9520", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f977789947e197f828151867a73771a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3247a673" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6f0651ef" + "1862685167" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest222.json b/GeneralStateTests/stRandom/randomStatetest222.json index 814ac6d3a..7928f3568 100644 --- a/GeneralStateTests/stRandom/randomStatetest222.json +++ b/GeneralStateTests/stRandom/randomStatetest222.json @@ -2,92 +2,77 @@ "randomStatetest222" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest222Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1727622047", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000001000000000000000000000000000000000000000043397f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3508160005155", + "nonce" : "0", + "storage" : { + "0x" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "58335", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998272319664", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x938eec74e2fc81c2cceb4427493bac7ac36228dc358fc191691d6367642a7423", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x938eec74e2fc81c2cceb4427493bac7ac36228dc358fc191691d6367642a7423", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x938eec74e2fc81c2cceb4427493bac7ac36228dc358fc191691d6367642a7423", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x938eec74e2fc81c2cceb4427493bac7ac36228dc358fc191691d6367642a7423", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x938eec74e2fc81c2cceb4427493bac7ac36228dc358fc191691d6367642a7423", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "938eec74e2fc81c2cceb4427493bac7ac36228dc358fc191691d6367642a7423", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000001000000000000000000000000000000000000000043397f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3508160005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x36cd506d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x66f96b9f" + "1727622047" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest223.json b/GeneralStateTests/stRandom/randomStatetest223.json index dd9c59497..262ca9ca3 100644 --- a/GeneralStateTests/stRandom/randomStatetest223.json +++ b/GeneralStateTests/stRandom/randomStatetest223.json @@ -2,91 +2,77 @@ "randomStatetest223" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest223Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x245d7b33", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001631075803033455560005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x10758030", + "0x7fffffffffffffff" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x0104da", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b383058021", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x56be8574c8111e7a378bd4bb6056c8f7ce2dd530bc8bb7c42e635d12484dd9f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x56be8574c8111e7a378bd4bb6056c8f7ce2dd530bc8bb7c42e635d12484dd9f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x56be8574c8111e7a378bd4bb6056c8f7ce2dd530bc8bb7c42e635d12484dd9f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x56be8574c8111e7a378bd4bb6056c8f7ce2dd530bc8bb7c42e635d12484dd9f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x56be8574c8111e7a378bd4bb6056c8f7ce2dd530bc8bb7c42e635d12484dd9f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "83db91420b09afa49ca7cbe4a31449b0c8167ac17f4e615fa306f66fc8ead236", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001631075803033455560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +87,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x245d7b33" ] diff --git a/GeneralStateTests/stRandom/randomStatetest225.json b/GeneralStateTests/stRandom/randomStatetest225.json index 0df14e5e6..5c0c89e30 100644 --- a/GeneralStateTests/stRandom/randomStatetest225.json +++ b/GeneralStateTests/stRandom/randomStatetest225.json @@ -2,92 +2,77 @@ "randomStatetest225" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest225Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "159749189", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff506f69786c858e0703566f95f8993111901960005155", + "nonce" : "0", + "storage" : { + "0x" : "0x69786c858e0703566f95f89931119019" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "53782", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999840197075", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x902d24fae31a8038e3a7a43f6f5c3a309e5e53cd578f6e22af62bdc64914d96a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x902d24fae31a8038e3a7a43f6f5c3a309e5e53cd578f6e22af62bdc64914d96a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x902d24fae31a8038e3a7a43f6f5c3a309e5e53cd578f6e22af62bdc64914d96a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x902d24fae31a8038e3a7a43f6f5c3a309e5e53cd578f6e22af62bdc64914d96a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x902d24fae31a8038e3a7a43f6f5c3a309e5e53cd578f6e22af62bdc64914d96a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "902d24fae31a8038e3a7a43f6f5c3a309e5e53cd578f6e22af62bdc64914d96a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff506f69786c858e0703566f95f8993111901960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x25d6c447" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x09859445" + "159749189" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest226.json b/GeneralStateTests/stRandom/randomStatetest226.json index 233289217..1d1223f64 100644 --- a/GeneralStateTests/stRandom/randomStatetest226.json +++ b/GeneralStateTests/stRandom/randomStatetest226.json @@ -2,91 +2,76 @@ "randomStatetest226" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest226Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x1c91b9d0", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5a605560005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xc6a4", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b38ad17fba", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xcaf56509c0e62bd8cbe90daa3c0d0ce026a4482f60fa4d88846d94b6b9001b5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcaf56509c0e62bd8cbe90daa3c0d0ce026a4482f60fa4d88846d94b6b9001b5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcaf56509c0e62bd8cbe90daa3c0d0ce026a4482f60fa4d88846d94b6b9001b5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcaf56509c0e62bd8cbe90daa3c0d0ce026a4482f60fa4d88846d94b6b9001b5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcaf56509c0e62bd8cbe90daa3c0d0ce026a4482f60fa4d88846d94b6b9001b5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "caf56509c0e62bd8cbe90daa3c0d0ce026a4482f60fa4d88846d94b6b9001b5f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5a605560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x1c91b9d0" ] diff --git a/GeneralStateTests/stRandom/randomStatetest227.json b/GeneralStateTests/stRandom/randomStatetest227.json index 15d5f722c..90c807b43 100644 --- a/GeneralStateTests/stRandom/randomStatetest227.json +++ b/GeneralStateTests/stRandom/randomStatetest227.json @@ -2,92 +2,77 @@ "randomStatetest227" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest227Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1176634565", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f108fa27475689e44993a528752a152335955", + "nonce" : "0", + "storage" : { + "0x" : "0x108fa27475689e44993a528752a15233" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49421", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998823316060", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8fe48b64e997e6f8b1c8c85c33a610d5496af7b64e0dee5b709bed7d5486a8ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8fe48b64e997e6f8b1c8c85c33a610d5496af7b64e0dee5b709bed7d5486a8ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8fe48b64e997e6f8b1c8c85c33a610d5496af7b64e0dee5b709bed7d5486a8ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8fe48b64e997e6f8b1c8c85c33a610d5496af7b64e0dee5b709bed7d5486a8ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8fe48b64e997e6f8b1c8c85c33a610d5496af7b64e0dee5b709bed7d5486a8ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8fe48b64e997e6f8b1c8c85c33a610d5496af7b64e0dee5b709bed7d5486a8ae", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f108fa27475689e44993a528752a152335955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x2d195619" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x462204c5" + "1176634565" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest228.json b/GeneralStateTests/stRandom/randomStatetest228.json index 846c4de51..640ea9d88 100644 --- a/GeneralStateTests/stRandom/randomStatetest228.json +++ b/GeneralStateTests/stRandom/randomStatetest228.json @@ -2,92 +2,77 @@ "randomStatetest228" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest228Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41434543454541443b5455", + "nonce" : "0", + "storage" : { + "0x" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41200", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858846", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x113610ea39e84355710fe2dbd83ce9148fe511a2af21aa679f075d25c769ebaa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x113610ea39e84355710fe2dbd83ce9148fe511a2af21aa679f075d25c769ebaa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x567a8e4b4ae0c146b8e8b1fa7281df52329f0dd0a4917cc9e6ee53291b266204", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x567a8e4b4ae0c146b8e8b1fa7281df52329f0dd0a4917cc9e6ee53291b266204", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x113610ea39e84355710fe2dbd83ce9148fe511a2af21aa679f075d25c769ebaa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "567a8e4b4ae0c146b8e8b1fa7281df52329f0dd0a4917cc9e6ee53291b266204", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41434543454541443b5455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest229.json b/GeneralStateTests/stRandom/randomStatetest229.json index 9815bc60a..1dcf0e4c5 100644 --- a/GeneralStateTests/stRandom/randomStatetest229.json +++ b/GeneralStateTests/stRandom/randomStatetest229.json @@ -2,92 +2,78 @@ "randomStatetest229" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest229Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x42434145410844455055", + "nonce" : "0", + "storage" : { + "0x051d6a3cd647" : "0x00", + "0x20000" : "0x0000000000000000000000000000000000000000000000007fffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41138", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858908", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3ec331ff538940e6657801ada99688b9ab097a06cf26a923f8eca37477667f49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3ec331ff538940e6657801ada99688b9ab097a06cf26a923f8eca37477667f49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3ec331ff538940e6657801ada99688b9ab097a06cf26a923f8eca37477667f49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3ec331ff538940e6657801ada99688b9ab097a06cf26a923f8eca37477667f49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3ec331ff538940e6657801ada99688b9ab097a06cf26a923f8eca37477667f49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5c4dd6f4b5275c7a901bbf0109b8320691e642e4d199a3b66a45a720a6211eac", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x42434145410844455055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +83,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest23.json b/GeneralStateTests/stRandom/randomStatetest23.json index bf619f837..8e8293864 100644 --- a/GeneralStateTests/stRandom/randomStatetest23.json +++ b/GeneralStateTests/stRandom/randomStatetest23.json @@ -2,92 +2,77 @@ "randomStatetest23" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest23Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "667758155", + "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f89418c1076f1544315601489386c915560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x89418c1076f1544315601489386c9155" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48452", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999332193439", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd83aa6a74f4d3a8f93b4d6ac6a2b8f7bd6566fd43d52947addf153bd8dde5054", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd83aa6a74f4d3a8f93b4d6ac6a2b8f7bd6566fd43d52947addf153bd8dde5054", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd83aa6a74f4d3a8f93b4d6ac6a2b8f7bd6566fd43d52947addf153bd8dde5054", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd83aa6a74f4d3a8f93b4d6ac6a2b8f7bd6566fd43d52947addf153bd8dde5054", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd83aa6a74f4d3a8f93b4d6ac6a2b8f7bd6566fd43d52947addf153bd8dde5054", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d83aa6a74f4d3a8f93b4d6ac6a2b8f7bd6566fd43d52947addf153bd8dde5054", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f89418c1076f1544315601489386c915560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0430d0b2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x27cd2e4b" + "667758155" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest230.json b/GeneralStateTests/stRandom/randomStatetest230.json index a0f0d7259..41175cdf1 100644 --- a/GeneralStateTests/stRandom/randomStatetest230.json +++ b/GeneralStateTests/stRandom/randomStatetest230.json @@ -2,92 +2,76 @@ "randomStatetest230" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest230Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "856911811", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350427f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0960005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "35779", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999143052456", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc359b6e3bcf98d71b3bb4c8bfaa31cb7c2c6939fd8eed215cb008fad55ce45e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc359b6e3bcf98d71b3bb4c8bfaa31cb7c2c6939fd8eed215cb008fad55ce45e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc359b6e3bcf98d71b3bb4c8bfaa31cb7c2c6939fd8eed215cb008fad55ce45e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc359b6e3bcf98d71b3bb4c8bfaa31cb7c2c6939fd8eed215cb008fad55ce45e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc359b6e3bcf98d71b3bb4c8bfaa31cb7c2c6939fd8eed215cb008fad55ce45e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c359b6e3bcf98d71b3bb4c8bfaa31cb7c2c6939fd8eed215cb008fad55ce45e4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350427f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x762004ae" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x33136fc3" + "856911811" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest231.json b/GeneralStateTests/stRandom/randomStatetest231.json index 4e5c890c4..b6593d023 100644 --- a/GeneralStateTests/stRandom/randomStatetest231.json +++ b/GeneralStateTests/stRandom/randomStatetest231.json @@ -2,92 +2,77 @@ "randomStatetest231" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest231Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1271549054", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f7b98a491727a089df3365353329e805560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x7b98a491727a089df3365353329e8055" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48730", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998728402262", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8db26c4474e668e3b4e48ff049891de3ca8a69a392345ea00d03f68ece3516fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8db26c4474e668e3b4e48ff049891de3ca8a69a392345ea00d03f68ece3516fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8db26c4474e668e3b4e48ff049891de3ca8a69a392345ea00d03f68ece3516fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8db26c4474e668e3b4e48ff049891de3ca8a69a392345ea00d03f68ece3516fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8db26c4474e668e3b4e48ff049891de3ca8a69a392345ea00d03f68ece3516fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8db26c4474e668e3b4e48ff049891de3ca8a69a392345ea00d03f68ece3516fb", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f7b98a491727a089df3365353329e805560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7629809a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4bca4c7e" + "1271549054" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest232.json b/GeneralStateTests/stRandom/randomStatetest232.json index a99cf3523..d73eda009 100644 --- a/GeneralStateTests/stRandom/randomStatetest232.json +++ b/GeneralStateTests/stRandom/randomStatetest232.json @@ -2,92 +2,76 @@ "randomStatetest232" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest232Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "2122038787", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "15676", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997877945583", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa1e2f7a9535450d801c57495f093fc9ed5af0161aa3becc21de454f15552d5de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa1e2f7a9535450d801c57495f093fc9ed5af0161aa3becc21de454f15552d5de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x27d1145fe6adad506e5dd26c63a3e94813c89c5db7a011aab5daa85bdc7c01cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x27d1145fe6adad506e5dd26c63a3e94813c89c5db7a011aab5daa85bdc7c01cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa1e2f7a9535450d801c57495f093fc9ed5af0161aa3becc21de454f15552d5de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "27d1145fe6adad506e5dd26c63a3e94813c89c5db7a011aab5daa85bdc7c01cf", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0945415883ff9d7760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x4d30a31a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7e7bbe03" + "2122038787" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest233.json b/GeneralStateTests/stRandom/randomStatetest233.json index 4a7ef7c34..2272fc8d6 100644 --- a/GeneralStateTests/stRandom/randomStatetest233.json +++ b/GeneralStateTests/stRandom/randomStatetest233.json @@ -2,92 +2,76 @@ "randomStatetest233" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest233Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42057f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff517f000000000000000000000001000000000000000000000000000000000000000065715460005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "385557369", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999614442677", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x89a81299ddb2523582de6db7dad040f4b94a648c7a9183c3f0c016daffff3efb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x89a81299ddb2523582de6db7dad040f4b94a648c7a9183c3f0c016daffff3efb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x89a81299ddb2523582de6db7dad040f4b94a648c7a9183c3f0c016daffff3efb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x89a81299ddb2523582de6db7dad040f4b94a648c7a9183c3f0c016daffff3efb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x89a81299ddb2523582de6db7dad040f4b94a648c7a9183c3f0c016daffff3efb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "89a81299ddb2523582de6db7dad040f4b94a648c7a9183c3f0c016daffff3efb", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42057f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff517f000000000000000000000001000000000000000000000000000000000000000065715460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x16fb234b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x77b5363e" + "2008364606" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest236.json b/GeneralStateTests/stRandom/randomStatetest236.json index ed09fae4b..d7405bd60 100644 --- a/GeneralStateTests/stRandom/randomStatetest236.json +++ b/GeneralStateTests/stRandom/randomStatetest236.json @@ -2,92 +2,78 @@ "randomStatetest236" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest236Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1566255112", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000004339185560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "66822", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998433678112", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7305a504ba858583fd34aa6e9d17e06a60a83b36d5189d2d63be84cda8694875", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7305a504ba858583fd34aa6e9d17e06a60a83b36d5189d2d63be84cda8694875", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7305a504ba858583fd34aa6e9d17e06a60a83b36d5189d2d63be84cda8694875", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7305a504ba858583fd34aa6e9d17e06a60a83b36d5189d2d63be84cda8694875", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7305a504ba858583fd34aa6e9d17e06a60a83b36d5189d2d63be84cda8694875", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7305a504ba858583fd34aa6e9d17e06a60a83b36d5189d2d63be84cda8694875", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000004339185560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x26ab5372" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5d5b2808" + "1566255112" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest237.json b/GeneralStateTests/stRandom/randomStatetest237.json index e1998aa69..3377105e5 100644 --- a/GeneralStateTests/stRandom/randomStatetest237.json +++ b/GeneralStateTests/stRandom/randomStatetest237.json @@ -2,92 +2,78 @@ "randomStatetest237" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest237Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "978542004", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001537f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000000039385560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "0xef" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "80518", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999021377524", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x797091462e4a20ef75f83fb80a13c0a7254ec703e2d0ae425f1ebfaaafd84695", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x797091462e4a20ef75f83fb80a13c0a7254ec703e2d0ae425f1ebfaaafd84695", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x797091462e4a20ef75f83fb80a13c0a7254ec703e2d0ae425f1ebfaaafd84695", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x797091462e4a20ef75f83fb80a13c0a7254ec703e2d0ae425f1ebfaaafd84695", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x797091462e4a20ef75f83fb80a13c0a7254ec703e2d0ae425f1ebfaaafd84695", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "797091462e4a20ef75f83fb80a13c0a7254ec703e2d0ae425f1ebfaaafd84695", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001537f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000000039385560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x02aaddc3" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3a535db4" + "978542004" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest238.json b/GeneralStateTests/stRandom/randomStatetest238.json index 255fa8cc0..fe43932d7 100644 --- a/GeneralStateTests/stRandom/randomStatetest238.json +++ b/GeneralStateTests/stRandom/randomStatetest238.json @@ -2,92 +2,77 @@ "randomStatetest238" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest238Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "267928924", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f7c748813587e990566719934f342316c60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x7c748813587e990566719934f342316c" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48847", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999732022275", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x551e646555c4197f3218ec3ad0b8d5ed55003cb5ee9720ca0acea5945f1f60cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x551e646555c4197f3218ec3ad0b8d5ed55003cb5ee9720ca0acea5945f1f60cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x551e646555c4197f3218ec3ad0b8d5ed55003cb5ee9720ca0acea5945f1f60cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x551e646555c4197f3218ec3ad0b8d5ed55003cb5ee9720ca0acea5945f1f60cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x551e646555c4197f3218ec3ad0b8d5ed55003cb5ee9720ca0acea5945f1f60cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "551e646555c4197f3218ec3ad0b8d5ed55003cb5ee9720ca0acea5945f1f60cd", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f7c748813587e990566719934f342316c60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x22423c20" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0ff8455c" + "267928924" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest24.json b/GeneralStateTests/stRandom/randomStatetest24.json index 62c3f046e..cd25819c9 100644 --- a/GeneralStateTests/stRandom/randomStatetest24.json +++ b/GeneralStateTests/stRandom/randomStatetest24.json @@ -2,92 +2,76 @@ "randomStatetest24" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest24Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x41417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff459d7f0000000000000000000000000000000000000000000000000000000000000001817f000000000000000000000000000000000000000000000000000000000000c35095418211337b0530435560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "719647680", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999280352366", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb319385cfc5c92f37a91028cf8d74e58564275ccb12105334c98468f56d7259a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb319385cfc5c92f37a91028cf8d74e58564275ccb12105334c98468f56d7259a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb319385cfc5c92f37a91028cf8d74e58564275ccb12105334c98468f56d7259a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb319385cfc5c92f37a91028cf8d74e58564275ccb12105334c98468f56d7259a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb319385cfc5c92f37a91028cf8d74e58564275ccb12105334c98468f56d7259a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b319385cfc5c92f37a91028cf8d74e58564275ccb12105334c98468f56d7259a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x41417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff459d7f0000000000000000000000000000000000000000000000000000000000000001817f000000000000000000000000000000000000000000000000000000000000c35095418211337b0530435560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x2ae4f392" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x664165b5" + "1715561909" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest241.json b/GeneralStateTests/stRandom/randomStatetest241.json index d58b03f62..1ab648f66 100644 --- a/GeneralStateTests/stRandom/randomStatetest241.json +++ b/GeneralStateTests/stRandom/randomStatetest241.json @@ -2,92 +2,78 @@ "randomStatetest241" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest241Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41421942450855678a044455", + "nonce" : "0", + "storage" : { + "0x8000000000000000" : "0", + "0x80000000000003e7" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41136", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858910", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2f72e484017ca8242e1662e1739956ff9f8f6ca7e0c91465650dd5c879372040", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2f72e484017ca8242e1662e1739956ff9f8f6ca7e0c91465650dd5c879372040", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2f72e484017ca8242e1662e1739956ff9f8f6ca7e0c91465650dd5c879372040", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2f72e484017ca8242e1662e1739956ff9f8f6ca7e0c91465650dd5c879372040", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2f72e484017ca8242e1662e1739956ff9f8f6ca7e0c91465650dd5c879372040", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9324d0729794da968cacf9da923ee21d1122dd28449c2964ce6f3de9f3df4eb9", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41421942450855678a044455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +83,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest242.json b/GeneralStateTests/stRandom/randomStatetest242.json index 243737bcd..0ad1f4a24 100644 --- a/GeneralStateTests/stRandom/randomStatetest242.json +++ b/GeneralStateTests/stRandom/randomStatetest242.json @@ -2,92 +2,77 @@ "randomStatetest242" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest242Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2110467172", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0860005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "53147", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997889479727", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6ef9be2c66e97b5db4ce78d5ecf32ac169cb713671a381f46351de237427f712", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6ef9be2c66e97b5db4ce78d5ecf32ac169cb713671a381f46351de237427f712", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6ef9be2c66e97b5db4ce78d5ecf32ac169cb713671a381f46351de237427f712", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6ef9be2c66e97b5db4ce78d5ecf32ac169cb713671a381f46351de237427f712", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6ef9be2c66e97b5db4ce78d5ecf32ac169cb713671a381f46351de237427f712", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6ef9be2c66e97b5db4ce78d5ecf32ac169cb713671a381f46351de237427f712", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0860005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7d3b2ec5" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7dcb2c64" + "2110467172" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest243.json b/GeneralStateTests/stRandom/randomStatetest243.json index 82a39dc13..3d016d3f8 100644 --- a/GeneralStateTests/stRandom/randomStatetest243.json +++ b/GeneralStateTests/stRandom/randomStatetest243.json @@ -2,92 +2,73 @@ "randomStatetest243" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest243Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xbefe0b5734c3aeb88c8325fed50ed53b2fa521643bf32edb8a2ee696e2038490", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "77136812", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3506f4245446640764068625545586684905560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x42454466407640686255455866849055" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "42736", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999922820498", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbefe0b5734c3aeb88c8325fed50ed53b2fa521643bf32edb8a2ee696e2038490", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbefe0b5734c3aeb88c8325fed50ed53b2fa521643bf32edb8a2ee696e2038490", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbefe0b5734c3aeb88c8325fed50ed53b2fa521643bf32edb8a2ee696e2038490", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbefe0b5734c3aeb88c8325fed50ed53b2fa521643bf32edb8a2ee696e2038490", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, - "postStateRoot" : "befe0b5734c3aeb88c8325fed50ed53b2fa521643bf32edb8a2ee696e2038490", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3506f4245446640764068625545586684905560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +80,12 @@ "gasLimit" : [ "0x11036354" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x049903ac" + "77136812" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest244.json b/GeneralStateTests/stRandom/randomStatetest244.json index 5bc373287..314c6948f 100644 --- a/GeneralStateTests/stRandom/randomStatetest244.json +++ b/GeneralStateTests/stRandom/randomStatetest244.json @@ -2,92 +2,77 @@ "randomStatetest244" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest244Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x4542074343424141315155", + "nonce" : "0", + "storage" : { + "0x" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41165", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858881", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x48ef2e2677e17cf4c43d096c5851bc734f5806a095b96df6f2ead520a5ca5d72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x48ef2e2677e17cf4c43d096c5851bc734f5806a095b96df6f2ead520a5ca5d72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x876d77beb54ba85ddf56589c9947d67ceaa9efc383795013bfb3720ad99a9bbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x876d77beb54ba85ddf56589c9947d67ceaa9efc383795013bfb3720ad99a9bbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x48ef2e2677e17cf4c43d096c5851bc734f5806a095b96df6f2ead520a5ca5d72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "876d77beb54ba85ddf56589c9947d67ceaa9efc383795013bfb3720ad99a9bbe", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x4542074343424141315155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest245.json b/GeneralStateTests/stRandom/randomStatetest245.json index 5071a2b8c..c37279c63 100644 --- a/GeneralStateTests/stRandom/randomStatetest245.json +++ b/GeneralStateTests/stRandom/randomStatetest245.json @@ -2,92 +2,78 @@ "randomStatetest245" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest245Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "278621847", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff157f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0469877c39141650434587895560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0x877c3914165043458789" : "0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "72175", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999721306024", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xff97d6cc5dec86a6a49d0a49a81d5958f29b0e0b82c79a1fdee4e6d5ee0b385e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xff97d6cc5dec86a6a49d0a49a81d5958f29b0e0b82c79a1fdee4e6d5ee0b385e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xff97d6cc5dec86a6a49d0a49a81d5958f29b0e0b82c79a1fdee4e6d5ee0b385e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xff97d6cc5dec86a6a49d0a49a81d5958f29b0e0b82c79a1fdee4e6d5ee0b385e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xff97d6cc5dec86a6a49d0a49a81d5958f29b0e0b82c79a1fdee4e6d5ee0b385e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ff97d6cc5dec86a6a49d0a49a81d5958f29b0e0b82c79a1fdee4e6d5ee0b385e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff157f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0469877c39141650434587895560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x4b9c3fb3" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x109b6e97" + "278621847" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest246.json b/GeneralStateTests/stRandom/randomStatetest246.json index 7451c1bc2..9bd6d1704 100644 --- a/GeneralStateTests/stRandom/randomStatetest246.json +++ b/GeneralStateTests/stRandom/randomStatetest246.json @@ -2,92 +2,78 @@ "randomStatetest246" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest246Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x434241314441434293170955", + "nonce" : "0", + "storage" : { + "0xd9250a4f8c" : "0x00", + "0xe03b" : "0x03e8" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41162", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858884", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe6356e31f92da5bd4220e189f3fcb5378dbc9e2c7a6fa11f053e3e613a22eaa0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe6356e31f92da5bd4220e189f3fcb5378dbc9e2c7a6fa11f053e3e613a22eaa0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x90feb2075015e6ab898eb64698b5e7b3b41bc6a847e0ae5b3f0b19f11203e015", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x90feb2075015e6ab898eb64698b5e7b3b41bc6a847e0ae5b3f0b19f11203e015", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe6356e31f92da5bd4220e189f3fcb5378dbc9e2c7a6fa11f053e3e613a22eaa0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f70420ecb168239279a2ff60e0c85aa7b7bdd5dea046627c123f8965159fda04", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x434241314441434293170955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +83,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest247.json b/GeneralStateTests/stRandom/randomStatetest247.json index 9ef2fd5c3..b185cb28a 100644 --- a/GeneralStateTests/stRandom/randomStatetest247.json +++ b/GeneralStateTests/stRandom/randomStatetest247.json @@ -2,92 +2,77 @@ "randomStatetest247" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest247Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1135930745", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0460005155", + "nonce" : "0", + "storage" : { + "0x" : "0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51296", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998864018005", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4c4262926ad2e0b2a709de1752c3384d85986af2586e88d0e9d3a2174095a05f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4c4262926ad2e0b2a709de1752c3384d85986af2586e88d0e9d3a2174095a05f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4c4262926ad2e0b2a709de1752c3384d85986af2586e88d0e9d3a2174095a05f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4c4262926ad2e0b2a709de1752c3384d85986af2586e88d0e9d3a2174095a05f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4c4262926ad2e0b2a709de1752c3384d85986af2586e88d0e9d3a2174095a05f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "4c4262926ad2e0b2a709de1752c3384d85986af2586e88d0e9d3a2174095a05f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x25cef0ca" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x43b4ed79" + "1135930745" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest248.json b/GeneralStateTests/stRandom/randomStatetest248.json index 0c25591de..04811a0e1 100644 --- a/GeneralStateTests/stRandom/randomStatetest248.json +++ b/GeneralStateTests/stRandom/randomStatetest248.json @@ -2,92 +2,77 @@ "randomStatetest248" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest248Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "549769638", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8636f2599055", + "nonce" : "0", + "storage" : { + "0x" : "0xc360" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "65459", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999450164949", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x603b1abdbe0de42d125e99573bddc780216eb63aef1a560c7775bde349e4f440", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x603b1abdbe0de42d125e99573bddc780216eb63aef1a560c7775bde349e4f440", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbae76e2729692bbeb8c29d5577071c6ae382645fcbb40e340cff51c35673b597", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbae76e2729692bbeb8c29d5577071c6ae382645fcbb40e340cff51c35673b597", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x603b1abdbe0de42d125e99573bddc780216eb63aef1a560c7775bde349e4f440", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "bae76e2729692bbeb8c29d5577071c6ae382645fcbb40e340cff51c35673b597", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001427f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8636f2599055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x2fbe208d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x20c4d1a6" + "549769638" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest249.json b/GeneralStateTests/stRandom/randomStatetest249.json index b94423ed5..4bfb143d7 100644 --- a/GeneralStateTests/stRandom/randomStatetest249.json +++ b/GeneralStateTests/stRandom/randomStatetest249.json @@ -2,92 +2,77 @@ "randomStatetest249" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest249Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1871659531", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000012807f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000003960005155", + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "43937", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998128296578", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb994437ee114888e116a679a0fe06b3c42bce012c12ddc12657a3f54129bd663", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb994437ee114888e116a679a0fe06b3c42bce012c12ddc12657a3f54129bd663", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb994437ee114888e116a679a0fe06b3c42bce012c12ddc12657a3f54129bd663", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb994437ee114888e116a679a0fe06b3c42bce012c12ddc12657a3f54129bd663", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb994437ee114888e116a679a0fe06b3c42bce012c12ddc12657a3f54129bd663", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b994437ee114888e116a679a0fe06b3c42bce012c12ddc12657a3f54129bd663", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000012807f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000003960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4c5b7c7c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6f8f420b" + "1871659531" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest25.json b/GeneralStateTests/stRandom/randomStatetest25.json index 25b33a015..0a8db093e 100644 --- a/GeneralStateTests/stRandom/randomStatetest25.json +++ b/GeneralStateTests/stRandom/randomStatetest25.json @@ -2,91 +2,75 @@ "randomStatetest25" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest25Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x731ee4d0", + "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000010000000000000000000000000000000000000000437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6844f1389163a444405b123678749c55", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x6873", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b33444b2eb", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7b8dc9863790422e0b6796b54b923b0a1b7ab71d682312209423b17979319dcf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7b8dc9863790422e0b6796b54b923b0a1b7ab71d682312209423b17979319dcf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7b8dc9863790422e0b6796b54b923b0a1b7ab71d682312209423b17979319dcf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7b8dc9863790422e0b6796b54b923b0a1b7ab71d682312209423b17979319dcf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7b8dc9863790422e0b6796b54b923b0a1b7ab71d682312209423b17979319dcf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7b8dc9863790422e0b6796b54b923b0a1b7ab71d682312209423b17979319dcf", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000010000000000000000000000000000000000000000437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6844f1389163a444405b123678749c55", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x731ee4d0" ] diff --git a/GeneralStateTests/stRandom/randomStatetest250.json b/GeneralStateTests/stRandom/randomStatetest250.json index 3fa381ae9..b74efdb3f 100644 --- a/GeneralStateTests/stRandom/randomStatetest250.json +++ b/GeneralStateTests/stRandom/randomStatetest250.json @@ -2,92 +2,76 @@ "randomStatetest250" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest250Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5627f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56a328b186e166407917c7af102925060005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1468895792", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998531104254", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xcfbcad42dfd8524a08d45d9badd9a9db60dc4337f69d3c964f01af504f91a183", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcfbcad42dfd8524a08d45d9badd9a9db60dc4337f69d3c964f01af504f91a183", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcfbcad42dfd8524a08d45d9badd9a9db60dc4337f69d3c964f01af504f91a183", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcfbcad42dfd8524a08d45d9badd9a9db60dc4337f69d3c964f01af504f91a183", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcfbcad42dfd8524a08d45d9badd9a9db60dc4337f69d3c964f01af504f91a183", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "cfbcad42dfd8524a08d45d9badd9a9db60dc4337f69d3c964f01af504f91a183", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5627f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56a328b186e166407917c7af102925060005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x578d9202" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5b88a0f9" + "1535680761" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest251.json b/GeneralStateTests/stRandom/randomStatetest251.json index 4f4396bd6..5b35fa658 100644 --- a/GeneralStateTests/stRandom/randomStatetest251.json +++ b/GeneralStateTests/stRandom/randomStatetest251.json @@ -2,92 +2,76 @@ "randomStatetest251" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest251Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "395877699", + "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c3505b7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000006867f1", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "24761", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999604097586", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xda85203ef9f44556143339fd61425f8184b51a8a0bd7a6b132933c1064f8b7f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xda85203ef9f44556143339fd61425f8184b51a8a0bd7a6b132933c1064f8b7f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xda85203ef9f44556143339fd61425f8184b51a8a0bd7a6b132933c1064f8b7f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xda85203ef9f44556143339fd61425f8184b51a8a0bd7a6b132933c1064f8b7f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xda85203ef9f44556143339fd61425f8184b51a8a0bd7a6b132933c1064f8b7f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "da85203ef9f44556143339fd61425f8184b51a8a0bd7a6b132933c1064f8b7f2", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c3505b7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000006867f1", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x435eefa4" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x17989d43" + "395877699" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest252.json b/GeneralStateTests/stRandom/randomStatetest252.json index d2d1e3b5b..29bc5d535 100644 --- a/GeneralStateTests/stRandom/randomStatetest252.json +++ b/GeneralStateTests/stRandom/randomStatetest252.json @@ -2,92 +2,76 @@ "randomStatetest252" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest252Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x387b414543444043899e863a628b55", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "21119", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999878927", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1dab5ba92043d9382e5987e2efa9a15ae8e4bee0ee5b5b730edcd5d7d5d9c1ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1dab5ba92043d9382e5987e2efa9a15ae8e4bee0ee5b5b730edcd5d7d5d9c1ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1dab5ba92043d9382e5987e2efa9a15ae8e4bee0ee5b5b730edcd5d7d5d9c1ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1dab5ba92043d9382e5987e2efa9a15ae8e4bee0ee5b5b730edcd5d7d5d9c1ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1dab5ba92043d9382e5987e2efa9a15ae8e4bee0ee5b5b730edcd5d7d5d9c1ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1dab5ba92043d9382e5987e2efa9a15ae8e4bee0ee5b5b730edcd5d7d5d9c1ba", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x387b414543444043899e863a628b55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest254.json b/GeneralStateTests/stRandom/randomStatetest254.json index e0f68e078..360ec5959 100644 --- a/GeneralStateTests/stRandom/randomStatetest254.json +++ b/GeneralStateTests/stRandom/randomStatetest254.json @@ -2,92 +2,77 @@ "randomStatetest254" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest254Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1544798975", + "code" : "0x7f000000000000000000000001000000000000000000000000000000000000000041417f0000000000000000000000000000000000000000000000000000000000000001447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506f059b6b83f294740688598c52195a925560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x059b6b83f294740688598c52195a9255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47703", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998455153368", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x488d7e2efe45b261af7711a80c37196e8228351a2f76f3a3efcf84a933e7118a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x488d7e2efe45b261af7711a80c37196e8228351a2f76f3a3efcf84a933e7118a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x488d7e2efe45b261af7711a80c37196e8228351a2f76f3a3efcf84a933e7118a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x488d7e2efe45b261af7711a80c37196e8228351a2f76f3a3efcf84a933e7118a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x488d7e2efe45b261af7711a80c37196e8228351a2f76f3a3efcf84a933e7118a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "488d7e2efe45b261af7711a80c37196e8228351a2f76f3a3efcf84a933e7118a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000001000000000000000000000000000000000000000041417f0000000000000000000000000000000000000000000000000000000000000001447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506f059b6b83f294740688598c52195a925560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6118b302" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5c13c2ff" + "1544798975" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest257.json b/GeneralStateTests/stRandom/randomStatetest257.json index 1178221db..908e9d14c 100644 --- a/GeneralStateTests/stRandom/randomStatetest257.json +++ b/GeneralStateTests/stRandom/randomStatetest257.json @@ -2,92 +2,76 @@ "randomStatetest257" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest257Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff337f000000000000000000000000000000000000000000000000000000000000000099447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350735b9f81208b6f526655", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "2038066738", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997961933308", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb91b3d631e6b6f635a4448954b5633aa870671ea8558c44a7e1dfe6c028652a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb91b3d631e6b6f635a4448954b5633aa870671ea8558c44a7e1dfe6c028652a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb91b3d631e6b6f635a4448954b5633aa870671ea8558c44a7e1dfe6c028652a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb91b3d631e6b6f635a4448954b5633aa870671ea8558c44a7e1dfe6c028652a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb91b3d631e6b6f635a4448954b5633aa870671ea8558c44a7e1dfe6c028652a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b91b3d631e6b6f635a4448954b5633aa870671ea8558c44a7e1dfe6c028652a9", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff337f000000000000000000000000000000000000000000000000000000000000000099447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350735b9f81208b6f526655", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x797a6e04" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1ef9d4a7" + "519689383" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest259.json b/GeneralStateTests/stRandom/randomStatetest259.json index e84da42df..632aa9078 100644 --- a/GeneralStateTests/stRandom/randomStatetest259.json +++ b/GeneralStateTests/stRandom/randomStatetest259.json @@ -2,92 +2,77 @@ "randomStatetest259" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest259Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "250917223", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f04831adc0812f095449274079007095560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x04831adc0812f0954492740790070955" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47122", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999749035701", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd4764926b4a136876d9e7740ca79b6595340c39657138ba4b8cc0350272fcc44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd4764926b4a136876d9e7740ca79b6595340c39657138ba4b8cc0350272fcc44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd4764926b4a136876d9e7740ca79b6595340c39657138ba4b8cc0350272fcc44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd4764926b4a136876d9e7740ca79b6595340c39657138ba4b8cc0350272fcc44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd4764926b4a136876d9e7740ca79b6595340c39657138ba4b8cc0350272fcc44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d4764926b4a136876d9e7740ca79b6595340c39657138ba4b8cc0350272fcc44", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f04831adc0812f095449274079007095560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5fd034fd" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0ef4b167" + "250917223" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest26.json b/GeneralStateTests/stRandom/randomStatetest26.json index c9ff11526..806c8e20e 100644 --- a/GeneralStateTests/stRandom/randomStatetest26.json +++ b/GeneralStateTests/stRandom/randomStatetest26.json @@ -2,92 +2,77 @@ "randomStatetest26" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest26Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x434242445b41310755", + "nonce" : "0", + "storage" : { + "0x2e" : "0x03e8" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41150", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858896", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdea0ca00c20190e0864ffef1c17d42666582a6c7bca096dd870dacde18302588", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdea0ca00c20190e0864ffef1c17d42666582a6c7bca096dd870dacde18302588", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbd7aed55526905bcf0d828293e2d68e11b44250e3184845c768808213eb70d89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbd7aed55526905bcf0d828293e2d68e11b44250e3184845c768808213eb70d89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdea0ca00c20190e0864ffef1c17d42666582a6c7bca096dd870dacde18302588", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "fb9ed88e1653c4b51474b246e3b8a02668a6736d9d6ba6a10f224353cb8e31f2", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x434242445b41310755", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest260.json b/GeneralStateTests/stRandom/randomStatetest260.json index 871e9e07c..0c9699409 100644 --- a/GeneralStateTests/stRandom/randomStatetest260.json +++ b/GeneralStateTests/stRandom/randomStatetest260.json @@ -2,17 +2,53 @@ "randomStatetest260" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest260Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1762323696", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350f36409156a6aa261413b56f20855", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "456118", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998237220232", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -23,78 +59,26 @@ } ], "out" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0xd71ce638907117f6bdacd55d5547feb04ea50a8c2da296dc887f5bbb909540b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd71ce638907117f6bdacd55d5547feb04ea50a8c2da296dc887f5bbb909540b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd71ce638907117f6bdacd55d5547feb04ea50a8c2da296dc887f5bbb909540b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd71ce638907117f6bdacd55d5547feb04ea50a8c2da296dc887f5bbb909540b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd71ce638907117f6bdacd55d5547feb04ea50a8c2da296dc887f5bbb909540b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d71ce638907117f6bdacd55d5547feb04ea50a8c2da296dc887f5bbb909540b5", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350f36409156a6aa261413b56f20855", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -106,12 +90,12 @@ "gasLimit" : [ "0x39619002" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x690aecf0" + "1762323696" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest261.json b/GeneralStateTests/stRandom/randomStatetest261.json index 980ffda56..43a26e1b1 100644 --- a/GeneralStateTests/stRandom/randomStatetest261.json +++ b/GeneralStateTests/stRandom/randomStatetest261.json @@ -2,91 +2,75 @@ "randomStatetest261" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest261Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000000447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000001231b61993", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x5436a791", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3532d589d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9f7393391be46ce93394f3c033bcee51a83392d9e1c5b0bdc14e9907194c86d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9f7393391be46ce93394f3c033bcee51a83392d9e1c5b0bdc14e9907194c86d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9f7393391be46ce93394f3c033bcee51a83392d9e1c5b0bdc14e9907194c86d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9f7393391be46ce93394f3c033bcee51a83392d9e1c5b0bdc14e9907194c86d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9f7393391be46ce93394f3c033bcee51a83392d9e1c5b0bdc14e9907194c86d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9f7393391be46ce93394f3c033bcee51a83392d9e1c5b0bdc14e9907194c86d4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000000447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000001231b61993", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x14fb56ac" ] diff --git a/GeneralStateTests/stRandom/randomStatetest263.json b/GeneralStateTests/stRandom/randomStatetest263.json index 2e12958d3..a9afb1552 100644 --- a/GeneralStateTests/stRandom/randomStatetest263.json +++ b/GeneralStateTests/stRandom/randomStatetest263.json @@ -2,92 +2,73 @@ "randomStatetest263" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest263Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe42ed72d895b6b92d283a2650d51929dd38bd2dead7822da0cfd0fe3921b8f6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "767067244", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5807f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0418625560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x014f8b588e368f08461f9f95eb620faca1c09044bcfafae26de901d3a614f5" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "60285526", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999172647276", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe42ed72d895b6b92d283a2650d51929dd38bd2dead7822da0cfd0fe3921b8f6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe42ed72d895b6b92d283a2650d51929dd38bd2dead7822da0cfd0fe3921b8f6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe42ed72d895b6b92d283a2650d51929dd38bd2dead7822da0cfd0fe3921b8f6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe42ed72d895b6b92d283a2650d51929dd38bd2dead7822da0cfd0fe3921b8f6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, - "postStateRoot" : "e42ed72d895b6b92d283a2650d51929dd38bd2dead7822da0cfd0fe3921b8f6f", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5807f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0418625560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +80,12 @@ "gasLimit" : [ "0x79881db9" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2db8846c" + "767067244" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest264.json b/GeneralStateTests/stRandom/randomStatetest264.json index 6e47c5c9d..c4855551a 100644 --- a/GeneralStateTests/stRandom/randomStatetest264.json +++ b/GeneralStateTests/stRandom/randomStatetest264.json @@ -2,92 +2,77 @@ "randomStatetest264" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest264Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1165785335", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955", + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51865", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998834162846", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x78559176356b9df2e9c7fa3a28e771cbfb06b268118dd1971408302a19d2940a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x78559176356b9df2e9c7fa3a28e771cbfb06b268118dd1971408302a19d2940a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x78559176356b9df2e9c7fa3a28e771cbfb06b268118dd1971408302a19d2940a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x78559176356b9df2e9c7fa3a28e771cbfb06b268118dd1971408302a19d2940a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x78559176356b9df2e9c7fa3a28e771cbfb06b268118dd1971408302a19d2940a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "78559176356b9df2e9c7fa3a28e771cbfb06b268118dd1971408302a19d2940a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6464e025" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x457c78f7" + "1165785335" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest265.json b/GeneralStateTests/stRandom/randomStatetest265.json index 7966a9065..986600318 100644 --- a/GeneralStateTests/stRandom/randomStatetest265.json +++ b/GeneralStateTests/stRandom/randomStatetest265.json @@ -2,91 +2,75 @@ "randomStatetest265" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest265Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x2217865b", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3503b7f000000000000000000000000000000000000000000000000000000000000c3506a7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000745b9b824070397f921960005155", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x611e", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3854c18b5", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2d93c82e45bb07d22215880fe456d79b9014c2a35ced1127020db662e2f649bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2d93c82e45bb07d22215880fe456d79b9014c2a35ced1127020db662e2f649bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x404dde61aad41090e3d66c5d042237aed1302501a8da14fb725c3a8d1778f847", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x404dde61aad41090e3d66c5d042237aed1302501a8da14fb725c3a8d1778f847", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2d93c82e45bb07d22215880fe456d79b9014c2a35ced1127020db662e2f649bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "404dde61aad41090e3d66c5d042237aed1302501a8da14fb725c3a8d1778f847", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3503b7f000000000000000000000000000000000000000000000000000000000000c3506a7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000745b9b824070397f921960005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x2217865b" ] diff --git a/GeneralStateTests/stRandom/randomStatetest266.json b/GeneralStateTests/stRandom/randomStatetest266.json index a068a3f95..6e6adc263 100644 --- a/GeneralStateTests/stRandom/randomStatetest266.json +++ b/GeneralStateTests/stRandom/randomStatetest266.json @@ -2,92 +2,76 @@ "randomStatetest266" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest266Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x3041047f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000005555945667793459633c993060005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "2065442015", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997934558031", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xbd1b2ff89b5cf1937099243e6436c1c6b802324d1225ffd5e9c3de634ef3703a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xbd1b2ff89b5cf1937099243e6436c1c6b802324d1225ffd5e9c3de634ef3703a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbd1b2ff89b5cf1937099243e6436c1c6b802324d1225ffd5e9c3de634ef3703a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbd1b2ff89b5cf1937099243e6436c1c6b802324d1225ffd5e9c3de634ef3703a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbd1b2ff89b5cf1937099243e6436c1c6b802324d1225ffd5e9c3de634ef3703a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "bd1b2ff89b5cf1937099243e6436c1c6b802324d1225ffd5e9c3de634ef3703a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x3041047f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000005555945667793459633c993060005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x7b1c24b1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0ee31f49" + "249765705" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest267.json b/GeneralStateTests/stRandom/randomStatetest267.json index fe816c0b6..1e6bdb0e1 100644 --- a/GeneralStateTests/stRandom/randomStatetest267.json +++ b/GeneralStateTests/stRandom/randomStatetest267.json @@ -2,92 +2,77 @@ "randomStatetest267" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest267Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "256968366", + "code" : "0x447f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5a132776d398e3b7c14686a07346f60005155", + "nonce" : "0", + "storage" : { + "0xb5a132776d398e3b7c14686a07346f600051" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48133", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999742983547", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3ad2f3eb4c80cfea073f7d19dd49b560f8e1acfff2833438ec6000979255c9dc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3ad2f3eb4c80cfea073f7d19dd49b560f8e1acfff2833438ec6000979255c9dc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3ad2f3eb4c80cfea073f7d19dd49b560f8e1acfff2833438ec6000979255c9dc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3ad2f3eb4c80cfea073f7d19dd49b560f8e1acfff2833438ec6000979255c9dc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3ad2f3eb4c80cfea073f7d19dd49b560f8e1acfff2833438ec6000979255c9dc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3ad2f3eb4c80cfea073f7d19dd49b560f8e1acfff2833438ec6000979255c9dc", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x447f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5a132776d398e3b7c14686a07346f60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0a7ed73a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0f5106ae" + "256968366" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest268.json b/GeneralStateTests/stRandom/randomStatetest268.json index 6e33daf9b..e557d17f6 100644 --- a/GeneralStateTests/stRandom/randomStatetest268.json +++ b/GeneralStateTests/stRandom/randomStatetest268.json @@ -2,92 +2,77 @@ "randomStatetest268" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest268Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "593549642", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000016f7466f0a0733d8632639340634094425560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x7466f0a0733d86326393406340944255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50650", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999406399754", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdc693e02818bf20ab803905f8fbe059dcd065dbf1c3393a8fd12091bbbed1219", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdc693e02818bf20ab803905f8fbe059dcd065dbf1c3393a8fd12091bbbed1219", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc693e02818bf20ab803905f8fbe059dcd065dbf1c3393a8fd12091bbbed1219", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc693e02818bf20ab803905f8fbe059dcd065dbf1c3393a8fd12091bbbed1219", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdc693e02818bf20ab803905f8fbe059dcd065dbf1c3393a8fd12091bbbed1219", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "dc693e02818bf20ab803905f8fbe059dcd065dbf1c3393a8fd12091bbbed1219", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000016f7466f0a0733d8632639340634094425560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7ec94731" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2360d94a" + "593549642" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest269.json b/GeneralStateTests/stRandom/randomStatetest269.json index 75c2cc276..5e4f97083 100644 --- a/GeneralStateTests/stRandom/randomStatetest269.json +++ b/GeneralStateTests/stRandom/randomStatetest269.json @@ -2,92 +2,77 @@ "randomStatetest269" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest269Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1239417538", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6676029968ffa27d0455", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52474", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998760530034", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd94c703fa989aa575dda329d0b94a86404a7f8c2cec091baefdc61a95b4f419a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd94c703fa989aa575dda329d0b94a86404a7f8c2cec091baefdc61a95b4f419a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd94c703fa989aa575dda329d0b94a86404a7f8c2cec091baefdc61a95b4f419a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd94c703fa989aa575dda329d0b94a86404a7f8c2cec091baefdc61a95b4f419a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd94c703fa989aa575dda329d0b94a86404a7f8c2cec091baefdc61a95b4f419a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d94c703fa989aa575dda329d0b94a86404a7f8c2cec091baefdc61a95b4f419a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6676029968ffa27d0455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x67dad272" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x49e002c2" + "1239417538" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest27.json b/GeneralStateTests/stRandom/randomStatetest27.json index 4f786cfcf..a0252420b 100644 --- a/GeneralStateTests/stRandom/randomStatetest27.json +++ b/GeneralStateTests/stRandom/randomStatetest27.json @@ -2,92 +2,77 @@ "randomStatetest27" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest27Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "541933198", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000000960005155", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffff000000000000000000000001fffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48867", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999458017981", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf2b0e19104d0cf0a08bbcf69b6edbb4769bd7577efda21f7bcfce89b7440b929", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf2b0e19104d0cf0a08bbcf69b6edbb4769bd7577efda21f7bcfce89b7440b929", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf2b0e19104d0cf0a08bbcf69b6edbb4769bd7577efda21f7bcfce89b7440b929", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf2b0e19104d0cf0a08bbcf69b6edbb4769bd7577efda21f7bcfce89b7440b929", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf2b0e19104d0cf0a08bbcf69b6edbb4769bd7577efda21f7bcfce89b7440b929", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f2b0e19104d0cf0a08bbcf69b6edbb4769bd7577efda21f7bcfce89b7440b929", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000000960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0842a949" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x204d3e8e" + "541933198" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest270.json b/GeneralStateTests/stRandom/randomStatetest270.json index dcfe586f0..dcb1c2b59 100644 --- a/GeneralStateTests/stRandom/randomStatetest270.json +++ b/GeneralStateTests/stRandom/randomStatetest270.json @@ -2,92 +2,78 @@ "randomStatetest270" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest270Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1633146389", + "code" : "0x427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001395560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0xc350" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "81727", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998366771930", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3b43c92e4f1b3327abd8566dfa4244c3473be179137ef855b3c5eba8afb41d8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3b43c92e4f1b3327abd8566dfa4244c3473be179137ef855b3c5eba8afb41d8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3b43c92e4f1b3327abd8566dfa4244c3473be179137ef855b3c5eba8afb41d8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3b43c92e4f1b3327abd8566dfa4244c3473be179137ef855b3c5eba8afb41d8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3b43c92e4f1b3327abd8566dfa4244c3473be179137ef855b3c5eba8afb41d8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3b43c92e4f1b3327abd8566dfa4244c3473be179137ef855b3c5eba8afb41d8d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001395560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x47b15b47" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6157d615" + "1633146389" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest271.json b/GeneralStateTests/stRandom/randomStatetest271.json index 4e9def5ee..841cb5924 100644 --- a/GeneralStateTests/stRandom/randomStatetest271.json +++ b/GeneralStateTests/stRandom/randomStatetest271.json @@ -2,92 +2,76 @@ "randomStatetest271" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest271Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "193990328", + "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000001457f000000000000000000000000000000000000000000000000000000000000c350417f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000000357f00000000000000000000000000000000000000000000000000000000000000000b6d7d958a0269995560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "24276", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999805985442", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6324451a8166d889002f19b63b979bfee3f09bc36b8da54eba9aa36ad565dc8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6324451a8166d889002f19b63b979bfee3f09bc36b8da54eba9aa36ad565dc8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6324451a8166d889002f19b63b979bfee3f09bc36b8da54eba9aa36ad565dc8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6324451a8166d889002f19b63b979bfee3f09bc36b8da54eba9aa36ad565dc8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6324451a8166d889002f19b63b979bfee3f09bc36b8da54eba9aa36ad565dc8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6324451a8166d889002f19b63b979bfee3f09bc36b8da54eba9aa36ad565dc8e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000001457f000000000000000000000000000000000000000000000000000000000000c350417f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000000357f00000000000000000000000000000000000000000000000000000000000000000b6d7d958a0269995560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x238967b7" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0b900eb8" + "193990328" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest273.json b/GeneralStateTests/stRandom/randomStatetest273.json index 90517fce8..3daa739f4 100644 --- a/GeneralStateTests/stRandom/randomStatetest273.json +++ b/GeneralStateTests/stRandom/randomStatetest273.json @@ -2,92 +2,76 @@ "randomStatetest273" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest273Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1000000000000100000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "10589", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999889457", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1ec2086f63b0aa1f3d2d688fefa3d749328339374e35150e0f1266fb65802dcb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1ec2086f63b0aa1f3d2d688fefa3d749328339374e35150e0f1266fb65802dcb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5d84ed93d635f2893dc0b02c8bead33c7baf3bc075ec632795ab0641ed2039c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5d84ed93d635f2893dc0b02c8bead33c7baf3bc075ec632795ab0641ed2039c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1ec2086f63b0aa1f3d2d688fefa3d749328339374e35150e0f1266fb65802dcb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0455f96a64406f18634b9f7f441fda3b1dd6ab9aec9deed10513ce053e5b405c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x4342424343425b4495fff04285609955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest274.json b/GeneralStateTests/stRandom/randomStatetest274.json index 7668be67f..4f08d8280 100644 --- a/GeneralStateTests/stRandom/randomStatetest274.json +++ b/GeneralStateTests/stRandom/randomStatetest274.json @@ -2,92 +2,76 @@ "randomStatetest274" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest274Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffffa405457f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b588015a9a0542a13a051497514215", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "264530562", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999735469484", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x523f1bafc827465557ef569f1c1f0e047d287c61485d8ecf12a9331a4f367e52", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x523f1bafc827465557ef569f1c1f0e047d287c61485d8ecf12a9331a4f367e52", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x523f1bafc827465557ef569f1c1f0e047d287c61485d8ecf12a9331a4f367e52", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x523f1bafc827465557ef569f1c1f0e047d287c61485d8ecf12a9331a4f367e52", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x523f1bafc827465557ef569f1c1f0e047d287c61485d8ecf12a9331a4f367e52", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "523f1bafc827465557ef569f1c1f0e047d287c61485d8ecf12a9331a4f367e52", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffffa405457f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b588015a9a0542a13a051497514215", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x0fc46a54" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0b6a01e0" + "191496672" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest275.json b/GeneralStateTests/stRandom/randomStatetest275.json index 43a867326..179fef73f 100644 --- a/GeneralStateTests/stRandom/randomStatetest275.json +++ b/GeneralStateTests/stRandom/randomStatetest275.json @@ -2,92 +2,76 @@ "randomStatetest275" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest275Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "4157391", + "code" : "0x437f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000197ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09656756323c597455", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "34009", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999995808646", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb5a6f9ba236c75bba3990ca26c4d8cc06392d1f4931c3246aff22d9a1f51f98d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb5a6f9ba236c75bba3990ca26c4d8cc06392d1f4931c3246aff22d9a1f51f98d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb5a6f9ba236c75bba3990ca26c4d8cc06392d1f4931c3246aff22d9a1f51f98d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb5a6f9ba236c75bba3990ca26c4d8cc06392d1f4931c3246aff22d9a1f51f98d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb5a6f9ba236c75bba3990ca26c4d8cc06392d1f4931c3246aff22d9a1f51f98d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b5a6f9ba236c75bba3990ca26c4d8cc06392d1f4931c3246aff22d9a1f51f98d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x437f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000197ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09656756323c597455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x115932d1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3f6fcf" + "4157391" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest276.json b/GeneralStateTests/stRandom/randomStatetest276.json index 675553f72..c2c8dae7e 100644 --- a/GeneralStateTests/stRandom/randomStatetest276.json +++ b/GeneralStateTests/stRandom/randomStatetest276.json @@ -2,92 +2,77 @@ "randomStatetest276" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest276Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1026778874", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f4382349f7b370589141a31f39741a4f260005155", + "nonce" : "0", + "storage" : { + "0x" : "0x4382349f7b370589141a31f39741a4f2" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49303", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998973171869", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x678d7b89b0050819a4120ed894bf5493844e34153f04099263572d899fadf630", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x678d7b89b0050819a4120ed894bf5493844e34153f04099263572d899fadf630", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x678d7b89b0050819a4120ed894bf5493844e34153f04099263572d899fadf630", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x678d7b89b0050819a4120ed894bf5493844e34153f04099263572d899fadf630", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x678d7b89b0050819a4120ed894bf5493844e34153f04099263572d899fadf630", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "678d7b89b0050819a4120ed894bf5493844e34153f04099263572d899fadf630", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f4382349f7b370589141a31f39741a4f260005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3c61719a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3d3366fa" + "1026778874" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest278.json b/GeneralStateTests/stRandom/randomStatetest278.json index b13949f6c..2b54aed3b 100644 --- a/GeneralStateTests/stRandom/randomStatetest278.json +++ b/GeneralStateTests/stRandom/randomStatetest278.json @@ -2,92 +2,77 @@ "randomStatetest278" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest278Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1577249919", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001377f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff60005155", + "nonce" : "0", + "storage" : { + "0x7f000000000000000000000000000000000000000000000000000000000000" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "59481", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998422690646", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x579f22e4004bdb7d9901dad97944e1e6c8a6ca5bde5bc7f3e5293f6d9002cb62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x579f22e4004bdb7d9901dad97944e1e6c8a6ca5bde5bc7f3e5293f6d9002cb62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x579f22e4004bdb7d9901dad97944e1e6c8a6ca5bde5bc7f3e5293f6d9002cb62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x579f22e4004bdb7d9901dad97944e1e6c8a6ca5bde5bc7f3e5293f6d9002cb62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x579f22e4004bdb7d9901dad97944e1e6c8a6ca5bde5bc7f3e5293f6d9002cb62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "579f22e4004bdb7d9901dad97944e1e6c8a6ca5bde5bc7f3e5293f6d9002cb62", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001377f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x030e94ac" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5e02ec7f" + "1577249919" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest279.json b/GeneralStateTests/stRandom/randomStatetest279.json index 44846bfee..7f5b364a9 100644 --- a/GeneralStateTests/stRandom/randomStatetest279.json +++ b/GeneralStateTests/stRandom/randomStatetest279.json @@ -2,91 +2,76 @@ "randomStatetest279" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest279Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x4e91b038", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000010000000000000000000000000000000000000000947f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b560005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xc097", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b358d18f5f", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdf7a2395377733685e4ffd910ac50c5e14adceb1d0648200e6a35451f7ffe707", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdf7a2395377733685e4ffd910ac50c5e14adceb1d0648200e6a35451f7ffe707", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdf7a2395377733685e4ffd910ac50c5e14adceb1d0648200e6a35451f7ffe707", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdf7a2395377733685e4ffd910ac50c5e14adceb1d0648200e6a35451f7ffe707", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdf7a2395377733685e4ffd910ac50c5e14adceb1d0648200e6a35451f7ffe707", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "df7a2395377733685e4ffd910ac50c5e14adceb1d0648200e6a35451f7ffe707", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000010000000000000000000000000000000000000000947f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x4e91b038" ] diff --git a/GeneralStateTests/stRandom/randomStatetest28.json b/GeneralStateTests/stRandom/randomStatetest28.json index f0607693a..e89440993 100644 --- a/GeneralStateTests/stRandom/randomStatetest28.json +++ b/GeneralStateTests/stRandom/randomStatetest28.json @@ -2,92 +2,77 @@ "randomStatetest28" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest28Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1370440167", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f38129d68939a19a2697172926f6a67363055", + "nonce" : "0", + "storage" : { + "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : "0x38129d68939a19a2697172926f6a6736" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50828", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998629509051", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x445137f7725bc5327741f01636b4b402a7c22af2088f61c05082a1401191bbf2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x445137f7725bc5327741f01636b4b402a7c22af2088f61c05082a1401191bbf2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x445137f7725bc5327741f01636b4b402a7c22af2088f61c05082a1401191bbf2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x445137f7725bc5327741f01636b4b402a7c22af2088f61c05082a1401191bbf2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x445137f7725bc5327741f01636b4b402a7c22af2088f61c05082a1401191bbf2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "445137f7725bc5327741f01636b4b402a7c22af2088f61c05082a1401191bbf2", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f38129d68939a19a2697172926f6a67363055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1996674b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x51af41e7" + "1370440167" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest280.json b/GeneralStateTests/stRandom/randomStatetest280.json index 090d62c90..50f644ca6 100644 --- a/GeneralStateTests/stRandom/randomStatetest280.json +++ b/GeneralStateTests/stRandom/randomStatetest280.json @@ -2,92 +2,77 @@ "randomStatetest280" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest280Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "809294938", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000000143507f000000000000000000000000000000000000000000000000000000000000c350417f00000000000000000000000000000000000000000000000000000000000000006f423b3c407e7c6f16718668738d193cf260005155", + "nonce" : "0", + "storage" : { + "0x" : "0x423b3c407e7c6f16718668738d193cf2" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "43213", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999190661895", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7ea0acfbc5a2fed4628be9e955f1b65827d99945c92da7b67b9ea1b733bcf36e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7ea0acfbc5a2fed4628be9e955f1b65827d99945c92da7b67b9ea1b733bcf36e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7ea0acfbc5a2fed4628be9e955f1b65827d99945c92da7b67b9ea1b733bcf36e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7ea0acfbc5a2fed4628be9e955f1b65827d99945c92da7b67b9ea1b733bcf36e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7ea0acfbc5a2fed4628be9e955f1b65827d99945c92da7b67b9ea1b733bcf36e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7ea0acfbc5a2fed4628be9e955f1b65827d99945c92da7b67b9ea1b733bcf36e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000000143507f000000000000000000000000000000000000000000000000000000000000c350417f00000000000000000000000000000000000000000000000000000000000000006f423b3c407e7c6f16718668738d193cf260005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x2db9c369" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x303cdc5a" + "809294938" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest281.json b/GeneralStateTests/stRandom/randomStatetest281.json index 17242bd2c..624ad2b44 100644 --- a/GeneralStateTests/stRandom/randomStatetest281.json +++ b/GeneralStateTests/stRandom/randomStatetest281.json @@ -2,92 +2,77 @@ "randomStatetest281" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest281Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1714316412", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5457f000000000000000000000000000000000000000000000000000000000000c350417f00000000000000000000000000000000000000000000000000000000000000016f649a7a3457645670a27fa170639718a260005155", + "nonce" : "0", + "storage" : { + "0x" : "0x649a7a3457645670a27fa170639718a2" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45902", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998285637732", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x79576c8d2755ff19c13fb7fa1fe408be88ae2eb75812a0cc28939cb6caa03b44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x79576c8d2755ff19c13fb7fa1fe408be88ae2eb75812a0cc28939cb6caa03b44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x79576c8d2755ff19c13fb7fa1fe408be88ae2eb75812a0cc28939cb6caa03b44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x79576c8d2755ff19c13fb7fa1fe408be88ae2eb75812a0cc28939cb6caa03b44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x79576c8d2755ff19c13fb7fa1fe408be88ae2eb75812a0cc28939cb6caa03b44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "79576c8d2755ff19c13fb7fa1fe408be88ae2eb75812a0cc28939cb6caa03b44", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5457f000000000000000000000000000000000000000000000000000000000000c350417f00000000000000000000000000000000000000000000000000000000000000016f649a7a3457645670a27fa170639718a260005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0f3fa3a9" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x662e647c" + "1714316412" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest282.json b/GeneralStateTests/stRandom/randomStatetest282.json index 1f592e693..306abf799 100644 --- a/GeneralStateTests/stRandom/randomStatetest282.json +++ b/GeneralStateTests/stRandom/randomStatetest282.json @@ -2,92 +2,69 @@ "randomStatetest282" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest282Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "2067536813", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997932463233", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x0af7e489bf47e763077f315ad383eb1aeb954cb8ae3186a2899af28def3a9c25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0af7e489bf47e763077f315ad383eb1aeb954cb8ae3186a2899af28def3a9c25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x992a638ffd5a3629e809c4320c0f8ec2d1b21319f2c22be8f0eef0349534449e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x992a638ffd5a3629e809c4320c0f8ec2d1b21319f2c22be8f0eef0349534449e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0af7e489bf47e763077f315ad383eb1aeb954cb8ae3186a2899af28def3a9c25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "992a638ffd5a3629e809c4320c0f8ec2d1b21319f2c22be8f0eef0349534449e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5ff447f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff429d415560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +76,12 @@ "gasLimit" : [ "0x2939ccd0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7b3be7a8" + "2067523496" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest283.json b/GeneralStateTests/stRandom/randomStatetest283.json index df36d8e5e..e50fff6c0 100644 --- a/GeneralStateTests/stRandom/randomStatetest283.json +++ b/GeneralStateTests/stRandom/randomStatetest283.json @@ -2,92 +2,77 @@ "randomStatetest283" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest283Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1602431327", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000013960005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "62367", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998397506352", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3de67b2b42a6acc185985b6ce8d9d8324b447b4f5b0ed58871d0e5fb01bf264e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3de67b2b42a6acc185985b6ce8d9d8324b447b4f5b0ed58871d0e5fb01bf264e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3de67b2b42a6acc185985b6ce8d9d8324b447b4f5b0ed58871d0e5fb01bf264e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3de67b2b42a6acc185985b6ce8d9d8324b447b4f5b0ed58871d0e5fb01bf264e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3de67b2b42a6acc185985b6ce8d9d8324b447b4f5b0ed58871d0e5fb01bf264e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3de67b2b42a6acc185985b6ce8d9d8324b447b4f5b0ed58871d0e5fb01bf264e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000013960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x58009341" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5f83295f" + "1602431327" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest285.json b/GeneralStateTests/stRandom/randomStatetest285.json index f2723effc..f210cd9f0 100644 --- a/GeneralStateTests/stRandom/randomStatetest285.json +++ b/GeneralStateTests/stRandom/randomStatetest285.json @@ -2,92 +2,76 @@ "randomStatetest285" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest285Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x413443f3404242433389ff723810", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49583", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999850463", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0x48c91e076cd24e5f58e55f430004dcf79c3edbcc1f65b79d990ffce5182bc572", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x48c91e076cd24e5f58e55f430004dcf79c3edbcc1f65b79d990ffce5182bc572", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x48c91e076cd24e5f58e55f430004dcf79c3edbcc1f65b79d990ffce5182bc572", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x48c91e076cd24e5f58e55f430004dcf79c3edbcc1f65b79d990ffce5182bc572", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x48c91e076cd24e5f58e55f430004dcf79c3edbcc1f65b79d990ffce5182bc572", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "921517cc33b5f4267a76b110e54b0578754d4ffb748085d8b4ed4195ad2d0af9", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x413443f3404242433389ff723810", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest286.json b/GeneralStateTests/stRandom/randomStatetest286.json index f8df002a6..d90a5c32b 100644 --- a/GeneralStateTests/stRandom/randomStatetest286.json +++ b/GeneralStateTests/stRandom/randomStatetest286.json @@ -2,92 +2,77 @@ "randomStatetest286" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest286Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1522313647", + "code" : "0x5a7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000009582860460005155", + "nonce" : "0", + "storage" : { + "0x" : "0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49716", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998477636683", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3e851f3c349fe94e83a519b8b7d7b3cc6cd00f7236a82f322f31538efff23e21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3e851f3c349fe94e83a519b8b7d7b3cc6cd00f7236a82f322f31538efff23e21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3e851f3c349fe94e83a519b8b7d7b3cc6cd00f7236a82f322f31538efff23e21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3e851f3c349fe94e83a519b8b7d7b3cc6cd00f7236a82f322f31538efff23e21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3e851f3c349fe94e83a519b8b7d7b3cc6cd00f7236a82f322f31538efff23e21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3e851f3c349fe94e83a519b8b7d7b3cc6cd00f7236a82f322f31538efff23e21", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x5a7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000009582860460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7b20fbbe" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5abca9af" + "1522313647" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest287.json b/GeneralStateTests/stRandom/randomStatetest287.json index 2998b92e5..ed1a2be7f 100644 --- a/GeneralStateTests/stRandom/randomStatetest287.json +++ b/GeneralStateTests/stRandom/randomStatetest287.json @@ -2,92 +2,69 @@ "randomStatetest287" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest287Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1406947478", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998593052568", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x918e9fe708b1316d33f2a2fe6961a8a30cc81b2017fbb7b3951bf779faa7ab0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x918e9fe708b1316d33f2a2fe6961a8a30cc81b2017fbb7b3951bf779faa7ab0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x85992cbec4ce4913e401ed40cddbfa2b1bbc184286c617adde5cdf18649d75a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x85992cbec4ce4913e401ed40cddbfa2b1bbc184286c617adde5cdf18649d75a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x918e9fe708b1316d33f2a2fe6961a8a30cc81b2017fbb7b3951bf779faa7ab0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "85992cbec4ce4913e401ed40cddbfa2b1bbc184286c617adde5cdf18649d75a7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5ff7f00000000000000000000000100000000000000000000000000000000000000000759", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +76,12 @@ "gasLimit" : [ "0xeeda71" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x53dc1967" + "1406933351" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest288.json b/GeneralStateTests/stRandom/randomStatetest288.json index 0fccfe5cc..7d8cc31eb 100644 --- a/GeneralStateTests/stRandom/randomStatetest288.json +++ b/GeneralStateTests/stRandom/randomStatetest288.json @@ -2,92 +2,76 @@ "randomStatetest288" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest288Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x76404140424242458c1f11410b", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "21117", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999878929", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc5fd66cfd27414f0b06ab651ee27bfa757aab2358d1688ad57d16942674f8c5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc5fd66cfd27414f0b06ab651ee27bfa757aab2358d1688ad57d16942674f8c5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc5fd66cfd27414f0b06ab651ee27bfa757aab2358d1688ad57d16942674f8c5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc5fd66cfd27414f0b06ab651ee27bfa757aab2358d1688ad57d16942674f8c5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc5fd66cfd27414f0b06ab651ee27bfa757aab2358d1688ad57d16942674f8c5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c5fd66cfd27414f0b06ab651ee27bfa757aab2358d1688ad57d16942674f8c5e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x76404140424242458c1f11410b", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest29.json b/GeneralStateTests/stRandom/randomStatetest29.json index b235d0ed9..6ff11458a 100644 --- a/GeneralStateTests/stRandom/randomStatetest29.json +++ b/GeneralStateTests/stRandom/randomStatetest29.json @@ -2,92 +2,77 @@ "randomStatetest29" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest29Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "558543347", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48543", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999441408156", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x11e1bb4869a85ce4434200ac454467b78ddfad4c301f49ac4b5485daa0e22556", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x11e1bb4869a85ce4434200ac454467b78ddfad4c301f49ac4b5485daa0e22556", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x11e1bb4869a85ce4434200ac454467b78ddfad4c301f49ac4b5485daa0e22556", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x11e1bb4869a85ce4434200ac454467b78ddfad4c301f49ac4b5485daa0e22556", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x11e1bb4869a85ce4434200ac454467b78ddfad4c301f49ac4b5485daa0e22556", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "11e1bb4869a85ce4434200ac454467b78ddfad4c301f49ac4b5485daa0e22556", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4d5c10f8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x214ab1f3" + "558543347" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest290.json b/GeneralStateTests/stRandom/randomStatetest290.json index fe018377f..6c65176a3 100644 --- a/GeneralStateTests/stRandom/randomStatetest290.json +++ b/GeneralStateTests/stRandom/randomStatetest290.json @@ -2,92 +2,77 @@ "randomStatetest290" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest290Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1834111958", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe830960005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49884", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998165838204", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x09ff797b2ccb7ba95b2fa0e9dc51a99208e75da246528808068f60fb04179128", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x09ff797b2ccb7ba95b2fa0e9dc51a99208e75da246528808068f60fb04179128", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x09ff797b2ccb7ba95b2fa0e9dc51a99208e75da246528808068f60fb04179128", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x09ff797b2ccb7ba95b2fa0e9dc51a99208e75da246528808068f60fb04179128", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x09ff797b2ccb7ba95b2fa0e9dc51a99208e75da246528808068f60fb04179128", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "09ff797b2ccb7ba95b2fa0e9dc51a99208e75da246528808068f60fb04179128", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe830960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x324884a5" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6d5253d6" + "1834111958" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest291.json b/GeneralStateTests/stRandom/randomStatetest291.json index 05b5acde5..37f5d7fed 100644 --- a/GeneralStateTests/stRandom/randomStatetest291.json +++ b/GeneralStateTests/stRandom/randomStatetest291.json @@ -2,91 +2,77 @@ "randomStatetest291" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest291Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x3f7ada4a", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000015560005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xffffffffffffffffffffffffffffffffffffffff", + "0x01" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x0102f7", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b367e822ed", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2ac7a32edf453f27c5910d2e018b0b8825e1d849ba2bfa68fffb6899e9f57cb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2ac7a32edf453f27c5910d2e018b0b8825e1d849ba2bfa68fffb6899e9f57cb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2ac7a32edf453f27c5910d2e018b0b8825e1d849ba2bfa68fffb6899e9f57cb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2ac7a32edf453f27c5910d2e018b0b8825e1d849ba2bfa68fffb6899e9f57cb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2ac7a32edf453f27c5910d2e018b0b8825e1d849ba2bfa68fffb6899e9f57cb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2ac7a32edf453f27c5910d2e018b0b8825e1d849ba2bfa68fffb6899e9f57cb0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000015560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +87,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x3f7ada4a" ] diff --git a/GeneralStateTests/stRandom/randomStatetest292.json b/GeneralStateTests/stRandom/randomStatetest292.json index 65a86c185..3b930c2b2 100644 --- a/GeneralStateTests/stRandom/randomStatetest292.json +++ b/GeneralStateTests/stRandom/randomStatetest292.json @@ -2,92 +2,76 @@ "randomStatetest292" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest292Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000013063a09c825a338e", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1236557795", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998763442251", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1829b72b95a73eb31adf971f232abc7561961a0fc2c4714d6bd9fefb936137b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1829b72b95a73eb31adf971f232abc7561961a0fc2c4714d6bd9fefb936137b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1829b72b95a73eb31adf971f232abc7561961a0fc2c4714d6bd9fefb936137b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1829b72b95a73eb31adf971f232abc7561961a0fc2c4714d6bd9fefb936137b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1829b72b95a73eb31adf971f232abc7561961a0fc2c4714d6bd9fefb936137b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1829b72b95a73eb31adf971f232abc7561961a0fc2c4714d6bd9fefb936137b5", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000013063a09c825a338e", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x49b45fb5" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x315d53c8" + "828199880" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest293.json b/GeneralStateTests/stRandom/randomStatetest293.json index ea512506a..f815c7a95 100644 --- a/GeneralStateTests/stRandom/randomStatetest293.json +++ b/GeneralStateTests/stRandom/randomStatetest293.json @@ -2,92 +2,74 @@ "randomStatetest293" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest293Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xfada8bae596515e87eb13f4010b032184ff59e46b61c35c5f44f85d577e9957e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1022808999", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f458962699489837460090897f3056682845560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" : "0x458962699489837460090897f3056682" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "67311", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998977123736", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfada8bae596515e87eb13f4010b032184ff59e46b61c35c5f44f85d577e9957e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfada8bae596515e87eb13f4010b032184ff59e46b61c35c5f44f85d577e9957e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfada8bae596515e87eb13f4010b032184ff59e46b61c35c5f44f85d577e9957e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfada8bae596515e87eb13f4010b032184ff59e46b61c35c5f44f85d577e9957e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, - "postStateRoot" : "fada8bae596515e87eb13f4010b032184ff59e46b61c35c5f44f85d577e9957e", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f458962699489837460090897f3056682845560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +81,12 @@ "gasLimit" : [ "0x0d2d827e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3cf6d3a7" + "1022808999" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest294.json b/GeneralStateTests/stRandom/randomStatetest294.json index aa4a76888..1760f5f69 100644 --- a/GeneralStateTests/stRandom/randomStatetest294.json +++ b/GeneralStateTests/stRandom/randomStatetest294.json @@ -2,92 +2,76 @@ "randomStatetest294" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest294Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9d0718f377825843028dfa02158878", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1410816787", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998589183259", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf8bdbcffd96ce72abd3cd418b18faf596fb05e65184326457f9f3e5bc7527642", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf8bdbcffd96ce72abd3cd418b18faf596fb05e65184326457f9f3e5bc7527642", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf8bdbcffd96ce72abd3cd418b18faf596fb05e65184326457f9f3e5bc7527642", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf8bdbcffd96ce72abd3cd418b18faf596fb05e65184326457f9f3e5bc7527642", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf8bdbcffd96ce72abd3cd418b18faf596fb05e65184326457f9f3e5bc7527642", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f8bdbcffd96ce72abd3cd418b18faf596fb05e65184326457f9f3e5bc7527642", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9d0718f377825843028dfa02158878", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x54175ae5" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x67cba665" + "1741399653" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest295.json b/GeneralStateTests/stRandom/randomStatetest295.json index a135d293d..597b2b46c 100644 --- a/GeneralStateTests/stRandom/randomStatetest295.json +++ b/GeneralStateTests/stRandom/randomStatetest295.json @@ -2,92 +2,76 @@ "randomStatetest295" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest295Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b531353a0b3c8b17eb55", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1871470800", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998128529246", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x16a3262f16dda1ac45a8d1e01aeb81424c27ab65092b6590c205cece4b412cf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x16a3262f16dda1ac45a8d1e01aeb81424c27ab65092b6590c205cece4b412cf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x16a3262f16dda1ac45a8d1e01aeb81424c27ab65092b6590c205cece4b412cf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x16a3262f16dda1ac45a8d1e01aeb81424c27ab65092b6590c205cece4b412cf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x16a3262f16dda1ac45a8d1e01aeb81424c27ab65092b6590c205cece4b412cf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "16a3262f16dda1ac45a8d1e01aeb81424c27ab65092b6590c205cece4b412cf4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b531353a0b3c8b17eb55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x6f8c60a2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x23044b23" + "587483939" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest296.json b/GeneralStateTests/stRandom/randomStatetest296.json index af20190e9..4b0c7bafd 100644 --- a/GeneralStateTests/stRandom/randomStatetest296.json +++ b/GeneralStateTests/stRandom/randomStatetest296.json @@ -2,92 +2,76 @@ "randomStatetest296" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest296Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5385b9655558f510a6c73", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "995346411", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999004653635", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4c1a23fe6e433d7bda3b573e94605a4b924ab3601d81b546f0ff3f43089956f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4c1a23fe6e433d7bda3b573e94605a4b924ab3601d81b546f0ff3f43089956f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4c1a23fe6e433d7bda3b573e94605a4b924ab3601d81b546f0ff3f43089956f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4c1a23fe6e433d7bda3b573e94605a4b924ab3601d81b546f0ff3f43089956f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4c1a23fe6e433d7bda3b573e94605a4b924ab3601d81b546f0ff3f43089956f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "4c1a23fe6e433d7bda3b573e94605a4b924ab3601d81b546f0ff3f43089956f7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5385b9655558f510a6c73", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x3b53c7bd" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0b122a59" + "185739865" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest297.json b/GeneralStateTests/stRandom/randomStatetest297.json index d612ff0f2..0932beefd 100644 --- a/GeneralStateTests/stRandom/randomStatetest297.json +++ b/GeneralStateTests/stRandom/randomStatetest297.json @@ -2,92 +2,77 @@ "randomStatetest297" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest297Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2086766474", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5437f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe426f91085661509214157d9c8a777585185560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x91085661509214157d9c8a7775851855" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50136", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997913183436", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8edc079aef7f0cf7e6d3d52d2c3eccb324677be55d9c0aa15f87f1cdc39229bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8edc079aef7f0cf7e6d3d52d2c3eccb324677be55d9c0aa15f87f1cdc39229bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8edc079aef7f0cf7e6d3d52d2c3eccb324677be55d9c0aa15f87f1cdc39229bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8edc079aef7f0cf7e6d3d52d2c3eccb324677be55d9c0aa15f87f1cdc39229bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8edc079aef7f0cf7e6d3d52d2c3eccb324677be55d9c0aa15f87f1cdc39229bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8edc079aef7f0cf7e6d3d52d2c3eccb324677be55d9c0aa15f87f1cdc39229bc", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5437f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe426f91085661509214157d9c8a777585185560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0614cc9c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7c61878a" + "2086766474" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest298.json b/GeneralStateTests/stRandom/randomStatetest298.json index 9bf19997f..6d975bd46 100644 --- a/GeneralStateTests/stRandom/randomStatetest298.json +++ b/GeneralStateTests/stRandom/randomStatetest298.json @@ -2,92 +2,77 @@ "randomStatetest298" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest298Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2114938379", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3500a6f7c542006528b69ff3a7a3a0401613c5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x7c542006528b69ff3a7a3a0401613c55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46497", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997885015170", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7e503a725058cb403d3dae9a5defb7814719ead1906027e1052eee24d02519d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7e503a725058cb403d3dae9a5defb7814719ead1906027e1052eee24d02519d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7e503a725058cb403d3dae9a5defb7814719ead1906027e1052eee24d02519d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7e503a725058cb403d3dae9a5defb7814719ead1906027e1052eee24d02519d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7e503a725058cb403d3dae9a5defb7814719ead1906027e1052eee24d02519d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7e503a725058cb403d3dae9a5defb7814719ead1906027e1052eee24d02519d6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3500a6f7c542006528b69ff3a7a3a0401613c5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6b2d7597" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7e0f660b" + "2114938379" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest299.json b/GeneralStateTests/stRandom/randomStatetest299.json index 499b29759..5b0d99b23 100644 --- a/GeneralStateTests/stRandom/randomStatetest299.json +++ b/GeneralStateTests/stRandom/randomStatetest299.json @@ -2,92 +2,77 @@ "randomStatetest299" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest299Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "440906036", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f540813697adf70f20906389d128bf05560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x540813697adf70f20906389d128bf055" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "55322", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999559038688", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe94bd181433d3eeadd99d0ec50a7e227c8e8c9d46d8bcd89fda1fa82953025aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe94bd181433d3eeadd99d0ec50a7e227c8e8c9d46d8bcd89fda1fa82953025aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe94bd181433d3eeadd99d0ec50a7e227c8e8c9d46d8bcd89fda1fa82953025aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe94bd181433d3eeadd99d0ec50a7e227c8e8c9d46d8bcd89fda1fa82953025aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe94bd181433d3eeadd99d0ec50a7e227c8e8c9d46d8bcd89fda1fa82953025aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e94bd181433d3eeadd99d0ec50a7e227c8e8c9d46d8bcd89fda1fa82953025aa", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f540813697adf70f20906389d128bf05560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x05416db1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1a47b134" + "440906036" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest3.json b/GeneralStateTests/stRandom/randomStatetest3.json index ff5412e0a..95b50e7af 100644 --- a/GeneralStateTests/stRandom/randomStatetest3.json +++ b/GeneralStateTests/stRandom/randomStatetest3.json @@ -2,91 +2,76 @@ "randomStatetest3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest3Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x5eaa223f", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000000000000000000000000000000000000000c3504160005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xc215", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b348b91bda", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5c006cbf978674807a6d4fc7926703add138cde08ee901131e832947ae1fd002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5c006cbf978674807a6d4fc7926703add138cde08ee901131e832947ae1fd002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5c006cbf978674807a6d4fc7926703add138cde08ee901131e832947ae1fd002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5c006cbf978674807a6d4fc7926703add138cde08ee901131e832947ae1fd002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5c006cbf978674807a6d4fc7926703add138cde08ee901131e832947ae1fd002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5c006cbf978674807a6d4fc7926703add138cde08ee901131e832947ae1fd002", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000000000000000000000000000000000000000c3504160005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x5eaa223f" ] diff --git a/GeneralStateTests/stRandom/randomStatetest30.json b/GeneralStateTests/stRandom/randomStatetest30.json index 71b17721d..c16df6359 100644 --- a/GeneralStateTests/stRandom/randomStatetest30.json +++ b/GeneralStateTests/stRandom/randomStatetest30.json @@ -2,92 +2,77 @@ "randomStatetest30" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest30Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41314155", + "nonce" : "0", + "storage" : { + "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : "0x2e" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41138", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858908", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb96e142e4f47b46028b253ba06935ff9c89ef17b47024112f23a9153fd074777", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb96e142e4f47b46028b253ba06935ff9c89ef17b47024112f23a9153fd074777", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb2b265a8f3197237d108257414212611077d8ad4ea9d9b0f8e455d73ff6f552c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb2b265a8f3197237d108257414212611077d8ad4ea9d9b0f8e455d73ff6f552c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb96e142e4f47b46028b253ba06935ff9c89ef17b47024112f23a9153fd074777", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b2b265a8f3197237d108257414212611077d8ad4ea9d9b0f8e455d73ff6f552c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41314155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest300.json b/GeneralStateTests/stRandom/randomStatetest300.json index 9a4165468..2af3aa36a 100644 --- a/GeneralStateTests/stRandom/randomStatetest300.json +++ b/GeneralStateTests/stRandom/randomStatetest300.json @@ -2,92 +2,76 @@ "randomStatetest300" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest300Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1430892634", + "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c350757f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c35060005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "26017", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998569081395", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x54b6f50f518be844cd51ecb45b2579ce2bf90b6fe98a5efdba9d552942db757a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x54b6f50f518be844cd51ecb45b2579ce2bf90b6fe98a5efdba9d552942db757a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x54b6f50f518be844cd51ecb45b2579ce2bf90b6fe98a5efdba9d552942db757a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x54b6f50f518be844cd51ecb45b2579ce2bf90b6fe98a5efdba9d552942db757a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x54b6f50f518be844cd51ecb45b2579ce2bf90b6fe98a5efdba9d552942db757a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "54b6f50f518be844cd51ecb45b2579ce2bf90b6fe98a5efdba9d552942db757a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c350757f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c35060005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x66e1ca2f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5549b05a" + "1430892634" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest301.json b/GeneralStateTests/stRandom/randomStatetest301.json index 7b0016836..f50c1a91a 100644 --- a/GeneralStateTests/stRandom/randomStatetest301.json +++ b/GeneralStateTests/stRandom/randomStatetest301.json @@ -2,92 +2,77 @@ "randomStatetest301" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest301Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "323025358", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000003784946a737aa092f1975664518a5560005155", + "nonce" : "0", + "storage" : { + "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0x737aa092f1975664518a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "64285", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999676910403", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x416f784b98a311bba0342984f5ce4966b32979109981a04eb97f813d277c2e8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x416f784b98a311bba0342984f5ce4966b32979109981a04eb97f813d277c2e8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x416f784b98a311bba0342984f5ce4966b32979109981a04eb97f813d277c2e8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x416f784b98a311bba0342984f5ce4966b32979109981a04eb97f813d277c2e8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x416f784b98a311bba0342984f5ce4966b32979109981a04eb97f813d277c2e8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "416f784b98a311bba0342984f5ce4966b32979109981a04eb97f813d277c2e8f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000003784946a737aa092f1975664518a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x38ef9f8a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1340f9ce" + "323025358" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest302.json b/GeneralStateTests/stRandom/randomStatetest302.json index ecaed8d3f..699d18b5e 100644 --- a/GeneralStateTests/stRandom/randomStatetest302.json +++ b/GeneralStateTests/stRandom/randomStatetest302.json @@ -2,91 +2,75 @@ "randomStatetest302" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest302Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000971a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff447f00000000000000000000000000000000000000000000000000000000000000006989206c0b8a01867bf155", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x10412aa1", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b39722d58d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe5fb82c5770b521740b1410ab3d5acd21b3b7ac5665d3ef83f61f5a73c5ad50b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe5fb82c5770b521740b1410ab3d5acd21b3b7ac5665d3ef83f61f5a73c5ad50b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe5fb82c5770b521740b1410ab3d5acd21b3b7ac5665d3ef83f61f5a73c5ad50b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe5fb82c5770b521740b1410ab3d5acd21b3b7ac5665d3ef83f61f5a73c5ad50b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe5fb82c5770b521740b1410ab3d5acd21b3b7ac5665d3ef83f61f5a73c5ad50b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e5fb82c5770b521740b1410ab3d5acd21b3b7ac5665d3ef83f61f5a73c5ad50b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000971a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff447f00000000000000000000000000000000000000000000000000000000000000006989206c0b8a01867bf155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x774e407c" ] diff --git a/GeneralStateTests/stRandom/randomStatetest303.json b/GeneralStateTests/stRandom/randomStatetest303.json index ef06ebf80..837c49950 100644 --- a/GeneralStateTests/stRandom/randomStatetest303.json +++ b/GeneralStateTests/stRandom/randomStatetest303.json @@ -2,91 +2,75 @@ "randomStatetest303" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest303Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5457f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff441a35803a0ba46699913755", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x52614e74", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b35502b1ba", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x341d35dcd68e14ed391c23300e89fb48d60096e473e4e8b84589df12381e8d0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x341d35dcd68e14ed391c23300e89fb48d60096e473e4e8b84589df12381e8d0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x341d35dcd68e14ed391c23300e89fb48d60096e473e4e8b84589df12381e8d0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x341d35dcd68e14ed391c23300e89fb48d60096e473e4e8b84589df12381e8d0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x341d35dcd68e14ed391c23300e89fb48d60096e473e4e8b84589df12381e8d0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "341d35dcd68e14ed391c23300e89fb48d60096e473e4e8b84589df12381e8d0e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5457f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff441a35803a0ba46699913755", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x377df0d4" ] diff --git a/GeneralStateTests/stRandom/randomStatetest304.json b/GeneralStateTests/stRandom/randomStatetest304.json index 531d675a8..94f871d69 100644 --- a/GeneralStateTests/stRandom/randomStatetest304.json +++ b/GeneralStateTests/stRandom/randomStatetest304.json @@ -2,91 +2,71 @@ "randomStatetest304" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest304Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6cfc27db102eef174dcf122d8f31a69f009fb0d349fafc44f01c46c5475a92f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x7f0000000000000000000000010000000000000000000000000000000000000000a27f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff42070b8c5430070bf15560005155", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x2e4c7aa9", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b379178585", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x6cfc27db102eef174dcf122d8f31a69f009fb0d349fafc44f01c46c5475a92f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6cfc27db102eef174dcf122d8f31a69f009fb0d349fafc44f01c46c5475a92f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6cfc27db102eef174dcf122d8f31a69f009fb0d349fafc44f01c46c5475a92f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6cfc27db102eef174dcf122d8f31a69f009fb0d349fafc44f01c46c5475a92f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, - "postStateRoot" : "6cfc27db102eef174dcf122d8f31a69f009fb0d349fafc44f01c46c5475a92f5", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f0000000000000000000000010000000000000000000000000000000000000000a27f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff167ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff42070b8c5430070bf15560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +81,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x293d448f" ] diff --git a/GeneralStateTests/stRandom/randomStatetest305.json b/GeneralStateTests/stRandom/randomStatetest305.json index 8c9e5b2cb..e80aff930 100644 --- a/GeneralStateTests/stRandom/randomStatetest305.json +++ b/GeneralStateTests/stRandom/randomStatetest305.json @@ -2,92 +2,77 @@ "randomStatetest305" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest305Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "218159006", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000006f606e048240069c409313318736200b5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x606e048240069c409313318736200b55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "53018", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999781788022", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc44f8088f3ca403a164ca1162d3dbad4f11cbf446b96483be6a6da5607d5a72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc44f8088f3ca403a164ca1162d3dbad4f11cbf446b96483be6a6da5607d5a72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc44f8088f3ca403a164ca1162d3dbad4f11cbf446b96483be6a6da5607d5a72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc44f8088f3ca403a164ca1162d3dbad4f11cbf446b96483be6a6da5607d5a72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc44f8088f3ca403a164ca1162d3dbad4f11cbf446b96483be6a6da5607d5a72f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c44f8088f3ca403a164ca1162d3dbad4f11cbf446b96483be6a6da5607d5a72f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000006f606e048240069c409313318736200b5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x55424e44" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0d00d79e" + "218159006" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest306.json b/GeneralStateTests/stRandom/randomStatetest306.json index 7bbf7fa82..3acb60c59 100644 --- a/GeneralStateTests/stRandom/randomStatetest306.json +++ b/GeneralStateTests/stRandom/randomStatetest306.json @@ -2,17 +2,53 @@ "randomStatetest306" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest306Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x5af02372", + "code" : "0x60d36e84517b3285b0867cd4144ff5f688d60b6a07592395d95e37246c06736c78c9fa9e4b5e5db5a4b6ac4ced6dd169cda4fc3c11e9a6f0b4cec2f56019617df7a363788c155473412582d556f06c6d5864cf4be6a2d1318b8e40ba1377454cc8d0510823591dee680d7dddc8c149bfcc24c65c69e66c2b9d3e28f05faf2587c446509405759901ec0946bf3d786827225faf5da81e158cd9b2b4666f71a29fbe89f77c340dcbd7d67aedf852136b6c76affb38beb802e0af269e65c22f52807c677b5e2c7d8c473aff18fe912c7ed21ab60fe5d4916a76c93539332c6ab16b3f81b990f4b34b0228c7f5b1656bdd21d458717330e4be7d7bb91cc95818140eef086cd82d2d6f0d66c92a7ffb27125a625c77a8967268f212339508d6f60d9c93a9e201f2ae883cb9752460ec0dcb4ba3b84a4db899c29f08ef1b0f506b4f3c05601f6001601060116328b0eb5f73095e7baea6a6c7c4c2dfeb977efac326af552d87630a4eb375f17df238e15d7d51240301521f173d628e7a68d01354faaf406ce541f753db89671f6aedcf261f632e6244e8c3799a2de002f15ba4681fd3c609c0f522dfd964f95def9926f812327781b2de33196cc22776e9b26d8a0d65c57bdac987d0b3e0db66c0f1232c7add3365f209cc53592f73502d0c5889b1bbf131f8bb6a6b5e2e067b9ef676768d48b3f5790c3304e046f0a9c8a838a0596583d6258f196dcf982a9de5cec4f871470e7a6c9289615e1e7d140fdc038972916223fb8012e29350295f3919cb28a36411845930d5e91b68510faac5e0677953467cedb653f73818749e8cbaf15a5d64ba7ee5cabc98137167b924a2aac9147f159713d115e0225a84a54d6471dc7a01a7e4e814145305c9d04d2880c5be42fc6c52ced3e983d91a580a4142021b73e99c3180117914b9ad03c580a8dac862be9b599a73ccfcfb230bcffc425c13c265f3b06b8c9f104c10752740765567374c211601a5f51501d18c48081998ff7b7a8bfdf0bec9eb4385b554870a996e0cab662d991d0e5f9357f2f99f98", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x0a506396", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b342237926", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -26,77 +62,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf08f2266bb1ca985fcdff61d5623010c512034053acf9501f9de6cfc568cfca6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf08f2266bb1ca985fcdff61d5623010c512034053acf9501f9de6cfc568cfca6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3fe1453d8f9c0cb3357383e4e2d2f0136e987399786a4ea92908719995bc63a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3fe1453d8f9c0cb3357383e4e2d2f0136e987399786a4ea92908719995bc63a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf08f2266bb1ca985fcdff61d5623010c512034053acf9501f9de6cfc568cfca6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3fe1453d8f9c0cb3357383e4e2d2f0136e987399786a4ea92908719995bc63a5", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x60d36e84517b3285b0867cd4144ff5f688d60b6a07592395d95e37246c06736c78c9fa9e4b5e5db5a4b6ac4ced6dd169cda4fc3c11e9a6f0b4cec2f56019617df7a363788c155473412582d556f06c6d5864cf4be6a2d1318b8e40ba1377454cc8d0510823591dee680d7dddc8c149bfcc24c65c69e66c2b9d3e28f05faf2587c446509405759901ec0946bf3d786827225faf5da81e158cd9b2b4666f71a29fbe89f77c340dcbd7d67aedf852136b6c76affb38beb802e0af269e65c22f52807c677b5e2c7d8c473aff18fe912c7ed21ab60fe5d4916a76c93539332c6ab16b3f81b990f4b34b0228c7f5b1656bdd21d458717330e4be7d7bb91cc95818140eef086cd82d2d6f0d66c92a7ffb27125a625c77a8967268f212339508d6f60d9c93a9e201f2ae883cb9752460ec0dcb4ba3b84a4db899c29f08ef1b0f506b4f3c05601f6001601060116328b0eb5f73095e7baea6a6c7c4c2dfeb977efac326af552d87630a4eb375f17df238e15d7d51240301521f173d628e7a68d01354faaf406ce541f753db89671f6aedcf261f632e6244e8c3799a2de002f15ba4681fd3c609c0f522dfd964f95def9926f812327781b2de33196cc22776e9b26d8a0d65c57bdac987d0b3e0db66c0f1232c7add3365f209cc53592f73502d0c5889b1bbf131f8bb6a6b5e2e067b9ef676768d48b3f5790c3304e046f0a9c8a838a0596583d6258f196dcf982a9de5cec4f871470e7a6c9289615e1e7d140fdc038972916223fb8012e29350295f3919cb28a36411845930d5e91b68510faac5e0677953467cedb653f73818749e8cbaf15a5d64ba7ee5cabc98137167b924a2aac9147f159713d115e0225a84a54d6471dc7a01a7e4e814145305c9d04d2880c5be42fc6c52ced3e983d91a580a4142021b73e99c3180117914b9ad03c580a8dac862be9b599a73ccfcfb230bcffc425c13c265f3b06b8c9f104c10752740765567374c211601a5f51501d18c48081998ff7b7a8bfdf0bec9eb4385b554870a996e0cab662d991d0e5f9357f2f99f98", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -111,8 +95,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x5af02372" ] diff --git a/GeneralStateTests/stRandom/randomStatetest307.json b/GeneralStateTests/stRandom/randomStatetest307.json index 56e837dfe..e23c1d377 100644 --- a/GeneralStateTests/stRandom/randomStatetest307.json +++ b/GeneralStateTests/stRandom/randomStatetest307.json @@ -2,92 +2,91 @@ "randomStatetest307" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest307Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1254734781", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5547f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000037f055", + "nonce" : "1", + "storage" : { + "0xd2571607e241ecf590ed94b12d87c94babe36db6" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5" + } + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "balance" : "50000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "138012", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998745077253", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "0", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xef11ce1e16918296f9c991397583e071eb87b41d2dafef8a0b866f5cc2ce4c86", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5344f3d0f00b34cf8359c610bac581c9afe0aac3f980f6b2f3cdc895a2668c18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd04b66431e303267d08004a1239a4a9cdf974aeac6a40ae39e8fb6fc1e130350", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd04b66431e303267d08004a1239a4a9cdf974aeac6a40ae39e8fb6fc1e130350", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5344f3d0f00b34cf8359c610bac581c9afe0aac3f980f6b2f3cdc895a2668c18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d04b66431e303267d08004a1239a4a9cdf974aeac6a40ae39e8fb6fc1e130350", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5547f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000037f055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +98,12 @@ "gasLimit" : [ "0x1f729d33" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4aca7f0d" + "1254784781" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest308.json b/GeneralStateTests/stRandom/randomStatetest308.json index d4ca23346..d2b84d906 100644 --- a/GeneralStateTests/stRandom/randomStatetest308.json +++ b/GeneralStateTests/stRandom/randomStatetest308.json @@ -2,92 +2,77 @@ "randomStatetest308" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest308Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "23682877", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5357f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000085a01096630f38c9a60005155", + "nonce" : "0", + "storage" : { + "0x30f38c9a600051" : "0x000000000000000000000000000000005cf23fc6ffffffffffffffff461b8072" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49097", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999976268072", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x95a026865d7bef9b68198e20c174107e34ede038d24d97496b17449e6cd5d959", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x95a026865d7bef9b68198e20c174107e34ede038d24d97496b17449e6cd5d959", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x95a026865d7bef9b68198e20c174107e34ede038d24d97496b17449e6cd5d959", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x95a026865d7bef9b68198e20c174107e34ede038d24d97496b17449e6cd5d959", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x95a026865d7bef9b68198e20c174107e34ede038d24d97496b17449e6cd5d959", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2b5136571e9040874b7ee9f489478934e463fb9e74410c90e4bff0783993d3ea", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5357f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000085a01096630f38c9a60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5cf2ad64" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01695f3d" + "23682877" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest309.json b/GeneralStateTests/stRandom/randomStatetest309.json index 3d008db7e..3ff10c565 100644 --- a/GeneralStateTests/stRandom/randomStatetest309.json +++ b/GeneralStateTests/stRandom/randomStatetest309.json @@ -2,92 +2,76 @@ "randomStatetest309" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest309Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x43454545085a55", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "26132", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999873914", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9adeffd1dc5c9481f9ae5efb6960d633848bfb4b00bc7f279d56ea45f2a2298f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9adeffd1dc5c9481f9ae5efb6960d633848bfb4b00bc7f279d56ea45f2a2298f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9adeffd1dc5c9481f9ae5efb6960d633848bfb4b00bc7f279d56ea45f2a2298f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9adeffd1dc5c9481f9ae5efb6960d633848bfb4b00bc7f279d56ea45f2a2298f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9adeffd1dc5c9481f9ae5efb6960d633848bfb4b00bc7f279d56ea45f2a2298f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9adeffd1dc5c9481f9ae5efb6960d633848bfb4b00bc7f279d56ea45f2a2298f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x43454545085a55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest31.json b/GeneralStateTests/stRandom/randomStatetest31.json index bbfaafac8..ced79afb3 100644 --- a/GeneralStateTests/stRandom/randomStatetest31.json +++ b/GeneralStateTests/stRandom/randomStatetest31.json @@ -2,92 +2,78 @@ "randomStatetest31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest31Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1344810912", + "code" : "0x387f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000090375560005155", + "nonce" : "0", + "storage" : { + "0x010000000000000000000000000000000000000000" : "0xc350", + "0x387f000000000000000000000001000000000000000000000000000000000000" : "0xc350" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "77318", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998655111816", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4872c668e82ccc833ce9035f94ae7c021051c1a48667b8883eab583d3e5f1e96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4872c668e82ccc833ce9035f94ae7c021051c1a48667b8883eab583d3e5f1e96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4872c668e82ccc833ce9035f94ae7c021051c1a48667b8883eab583d3e5f1e96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4872c668e82ccc833ce9035f94ae7c021051c1a48667b8883eab583d3e5f1e96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4872c668e82ccc833ce9035f94ae7c021051c1a48667b8883eab583d3e5f1e96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "4872c668e82ccc833ce9035f94ae7c021051c1a48667b8883eab583d3e5f1e96", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x387f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000090375560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x2406346e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x50282fa0" + "1344810912" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest310.json b/GeneralStateTests/stRandom/randomStatetest310.json index 25055e368..abbb0d0ff 100644 --- a/GeneralStateTests/stRandom/randomStatetest310.json +++ b/GeneralStateTests/stRandom/randomStatetest310.json @@ -2,92 +2,77 @@ "randomStatetest310" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest310Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "460778909", + "code" : "0x44587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff59907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1a37160b6a650645597c796e9c97955560005155", + "nonce" : "0", + "storage" : { + "0x44587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0x650645597c796e9c979555" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "62819", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999539158318", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x003fa0e50c8def5b82816519bf4473b0a5e7822d1c29157ef51c4e543d9f5cb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x003fa0e50c8def5b82816519bf4473b0a5e7822d1c29157ef51c4e543d9f5cb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x003fa0e50c8def5b82816519bf4473b0a5e7822d1c29157ef51c4e543d9f5cb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x003fa0e50c8def5b82816519bf4473b0a5e7822d1c29157ef51c4e543d9f5cb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x003fa0e50c8def5b82816519bf4473b0a5e7822d1c29157ef51c4e543d9f5cb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "003fa0e50c8def5b82816519bf4473b0a5e7822d1c29157ef51c4e543d9f5cb9", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x44587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff59907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1a37160b6a650645597c796e9c97955560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1a37e2dd" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1b76ed9d" + "460778909" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest311.json b/GeneralStateTests/stRandom/randomStatetest311.json index a3471f3b1..ec23abd88 100644 --- a/GeneralStateTests/stRandom/randomStatetest311.json +++ b/GeneralStateTests/stRandom/randomStatetest311.json @@ -2,92 +2,77 @@ "randomStatetest311" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest311Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "97322261", + "code" : "0x447f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f13971264a1197d72ff18971902387b5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x13971264a1197d72ff18971902387b55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46930", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999902630855", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1ff85a391e539effce05663166f44cd4df2d6c61eb28efbc185d029300ca5a6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1ff85a391e539effce05663166f44cd4df2d6c61eb28efbc185d029300ca5a6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1ff85a391e539effce05663166f44cd4df2d6c61eb28efbc185d029300ca5a6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1ff85a391e539effce05663166f44cd4df2d6c61eb28efbc185d029300ca5a6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1ff85a391e539effce05663166f44cd4df2d6c61eb28efbc185d029300ca5a6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1ff85a391e539effce05663166f44cd4df2d6c61eb28efbc185d029300ca5a6c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x447f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f13971264a1197d72ff18971902387b5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7a558581" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x05cd0515" + "97322261" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest312.json b/GeneralStateTests/stRandom/randomStatetest312.json index 6cdc13109..58d434cac 100644 --- a/GeneralStateTests/stRandom/randomStatetest312.json +++ b/GeneralStateTests/stRandom/randomStatetest312.json @@ -2,92 +2,76 @@ "randomStatetest312" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest312Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "992438124", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000000187b55", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "27124", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999007534798", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4229d22eba45964985613259c569942393f6cb51bf3b409442acee73e0ed778a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4229d22eba45964985613259c569942393f6cb51bf3b409442acee73e0ed778a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4229d22eba45964985613259c569942393f6cb51bf3b409442acee73e0ed778a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4229d22eba45964985613259c569942393f6cb51bf3b409442acee73e0ed778a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4229d22eba45964985613259c569942393f6cb51bf3b409442acee73e0ed778a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "4229d22eba45964985613259c569942393f6cb51bf3b409442acee73e0ed778a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000000187b55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x4e58e928" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3b27676c" + "992438124" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest313.json b/GeneralStateTests/stRandom/randomStatetest313.json index a4bcf67ff..c40883dac 100644 --- a/GeneralStateTests/stRandom/randomStatetest313.json +++ b/GeneralStateTests/stRandom/randomStatetest313.json @@ -2,92 +2,76 @@ "randomStatetest313" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest313Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x0b7f00000000000000000000000000000000000000000000000000000000000000013c7f000000000000000000000000000000000000000000000000000000000000c350a345457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8287a3208c8c5a60005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1213823124", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998786176922", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf356f55e90b79b2b441790436315fe7067f1db8a9e00061266cfc67af7a0ae28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf356f55e90b79b2b441790436315fe7067f1db8a9e00061266cfc67af7a0ae28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf356f55e90b79b2b441790436315fe7067f1db8a9e00061266cfc67af7a0ae28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf356f55e90b79b2b441790436315fe7067f1db8a9e00061266cfc67af7a0ae28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf356f55e90b79b2b441790436315fe7067f1db8a9e00061266cfc67af7a0ae28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f356f55e90b79b2b441790436315fe7067f1db8a9e00061266cfc67af7a0ae28", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x0b7f00000000000000000000000000000000000000000000000000000000000000013c7f000000000000000000000000000000000000000000000000000000000000c350a345457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8287a3208c8c5a60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x48597866" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3159e0f9" + "827973881" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest315.json b/GeneralStateTests/stRandom/randomStatetest315.json index f8c623050..e4ace9d08 100644 --- a/GeneralStateTests/stRandom/randomStatetest315.json +++ b/GeneralStateTests/stRandom/randomStatetest315.json @@ -2,92 +2,77 @@ "randomStatetest315" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest315Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "332964958", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff067f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f98516a388683755669892b8b3719575560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x98516a388683755669892b8b37195755" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "54428", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999666980660", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdb4d38464f224aa4beb174d0de026bf43446fcb69565268d160cb7cf1cc42488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdb4d38464f224aa4beb174d0de026bf43446fcb69565268d160cb7cf1cc42488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdb4d38464f224aa4beb174d0de026bf43446fcb69565268d160cb7cf1cc42488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdb4d38464f224aa4beb174d0de026bf43446fcb69565268d160cb7cf1cc42488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdb4d38464f224aa4beb174d0de026bf43446fcb69565268d160cb7cf1cc42488", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "db4d38464f224aa4beb174d0de026bf43446fcb69565268d160cb7cf1cc42488", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff067f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f98516a388683755669892b8b3719575560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x51b0da03" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x13d8a45e" + "332964958" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest316.json b/GeneralStateTests/stRandom/randomStatetest316.json index b06ad7ab4..2569408cf 100644 --- a/GeneralStateTests/stRandom/randomStatetest316.json +++ b/GeneralStateTests/stRandom/randomStatetest316.json @@ -2,92 +2,77 @@ "randomStatetest316" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest316Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "973933687", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0855", + "nonce" : "0", + "storage" : { + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "54298", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999026012061", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf1c48b65e15db7f1f39198ef38cb09143e2605fc058343b3fe6e1cebe50b475f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf1c48b65e15db7f1f39198ef38cb09143e2605fc058343b3fe6e1cebe50b475f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf1c48b65e15db7f1f39198ef38cb09143e2605fc058343b3fe6e1cebe50b475f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf1c48b65e15db7f1f39198ef38cb09143e2605fc058343b3fe6e1cebe50b475f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf1c48b65e15db7f1f39198ef38cb09143e2605fc058343b3fe6e1cebe50b475f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f1c48b65e15db7f1f39198ef38cb09143e2605fc058343b3fe6e1cebe50b475f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0855", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x424838c7" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3a0d0c77" + "973933687" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest318.json b/GeneralStateTests/stRandom/randomStatetest318.json index 1a240bcff..32c628906 100644 --- a/GeneralStateTests/stRandom/randomStatetest318.json +++ b/GeneralStateTests/stRandom/randomStatetest318.json @@ -2,92 +2,77 @@ "randomStatetest318" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest318Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "603571959", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350457f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506f8206a30a83887e5a3164667796308d5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x8206a30a83887e5a3164667796308d55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51289", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999396376798", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5e3a74f2c69f332d008779081b99e03c426e95a7ac6eca90a7cd4c4fb555acc1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5e3a74f2c69f332d008779081b99e03c426e95a7ac6eca90a7cd4c4fb555acc1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5e3a74f2c69f332d008779081b99e03c426e95a7ac6eca90a7cd4c4fb555acc1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5e3a74f2c69f332d008779081b99e03c426e95a7ac6eca90a7cd4c4fb555acc1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5e3a74f2c69f332d008779081b99e03c426e95a7ac6eca90a7cd4c4fb555acc1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5e3a74f2c69f332d008779081b99e03c426e95a7ac6eca90a7cd4c4fb555acc1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350457f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3506f8206a30a83887e5a3164667796308d5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7aa140cd" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x23f9c6f7" + "603571959" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest32.json b/GeneralStateTests/stRandom/randomStatetest32.json index b003c74ca..020fe1730 100644 --- a/GeneralStateTests/stRandom/randomStatetest32.json +++ b/GeneralStateTests/stRandom/randomStatetest32.json @@ -2,92 +2,76 @@ "randomStatetest32" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest32Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x434142433a424440f26f", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "400046", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999600000", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6509e6133738f7498be6520c3c15e360f49b8b1fafb97bf2d13ff75638145143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6509e6133738f7498be6520c3c15e360f49b8b1fafb97bf2d13ff75638145143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6509e6133738f7498be6520c3c15e360f49b8b1fafb97bf2d13ff75638145143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6509e6133738f7498be6520c3c15e360f49b8b1fafb97bf2d13ff75638145143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6509e6133738f7498be6520c3c15e360f49b8b1fafb97bf2d13ff75638145143", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "deed71a9ae875d93a1014a7607dd2db227ed40a6a41a67d857f422e2e44e43af", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x434142433a424440f26f", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest320.json b/GeneralStateTests/stRandom/randomStatetest320.json index 15981f773..1e325455d 100644 --- a/GeneralStateTests/stRandom/randomStatetest320.json +++ b/GeneralStateTests/stRandom/randomStatetest320.json @@ -2,92 +2,76 @@ "randomStatetest320" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest320Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45457f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3505b0a36095511805131558f14fc3b", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "547588606", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999452411440", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x17e529f47db8b8fde95c285b5de8f37cd8f8c94dd1ac48a1289b8791676b8558", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x17e529f47db8b8fde95c285b5de8f37cd8f8c94dd1ac48a1289b8791676b8558", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x17e529f47db8b8fde95c285b5de8f37cd8f8c94dd1ac48a1289b8791676b8558", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x17e529f47db8b8fde95c285b5de8f37cd8f8c94dd1ac48a1289b8791676b8558", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x17e529f47db8b8fde95c285b5de8f37cd8f8c94dd1ac48a1289b8791676b8558", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "17e529f47db8b8fde95c285b5de8f37cd8f8c94dd1ac48a1289b8791676b8558", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45457f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3505b0a36095511805131558f14fc3b", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x20a389d0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x31922948" + "831662408" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest321.json b/GeneralStateTests/stRandom/randomStatetest321.json index e5afbf32a..39b6af727 100644 --- a/GeneralStateTests/stRandom/randomStatetest321.json +++ b/GeneralStateTests/stRandom/randomStatetest321.json @@ -2,92 +2,76 @@ "randomStatetest321" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest321Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1664390209", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff033a06869867986202413a537c60005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "30166", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998335579671", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8b9afa9dee2fef920f0d9e0933aedd94cf3a1ad0dff782835db49ea498d4ed51", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8b9afa9dee2fef920f0d9e0933aedd94cf3a1ad0dff782835db49ea498d4ed51", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8b9afa9dee2fef920f0d9e0933aedd94cf3a1ad0dff782835db49ea498d4ed51", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8b9afa9dee2fef920f0d9e0933aedd94cf3a1ad0dff782835db49ea498d4ed51", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8b9afa9dee2fef920f0d9e0933aedd94cf3a1ad0dff782835db49ea498d4ed51", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8b9afa9dee2fef920f0d9e0933aedd94cf3a1ad0dff782835db49ea498d4ed51", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff033a06869867986202413a537c60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x7d74638e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x63349441" + "1664390209" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest322.json b/GeneralStateTests/stRandom/randomStatetest322.json index a5e3879c4..bd5cee5f5 100644 --- a/GeneralStateTests/stRandom/randomStatetest322.json +++ b/GeneralStateTests/stRandom/randomStatetest322.json @@ -2,92 +2,77 @@ "randomStatetest322" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest322Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "824326372", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000000000000000000000000000000000000000c3506f1206060508840294304101a3128f345560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x1206060508840294304101a3128f3455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45977", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999175627697", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf96efd0bceca361d62ea9e417ba953e1d508ea984f778bc72e68a702104c74fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf96efd0bceca361d62ea9e417ba953e1d508ea984f778bc72e68a702104c74fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf96efd0bceca361d62ea9e417ba953e1d508ea984f778bc72e68a702104c74fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf96efd0bceca361d62ea9e417ba953e1d508ea984f778bc72e68a702104c74fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf96efd0bceca361d62ea9e417ba953e1d508ea984f778bc72e68a702104c74fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f96efd0bceca361d62ea9e417ba953e1d508ea984f778bc72e68a702104c74fe", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000000000000000000000000000000000000000c3506f1206060508840294304101a3128f345560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5a3b8dbb" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x312238e4" + "824326372" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest323.json b/GeneralStateTests/stRandom/randomStatetest323.json index 00d8dfecf..08f92c813 100644 --- a/GeneralStateTests/stRandom/randomStatetest323.json +++ b/GeneralStateTests/stRandom/randomStatetest323.json @@ -2,92 +2,76 @@ "randomStatetest323" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest323Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1955628831", + "code" : "0x6f7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe74977f000000000000000000000000000000000000000000000000000000000000c3506f6b7936181136392060005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "27581", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998044343634", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x90d9ee4c28bc9fc8ce533dc87f1ed0349c3ea302c5b37bd3f354ca4d30dd9c25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x90d9ee4c28bc9fc8ce533dc87f1ed0349c3ea302c5b37bd3f354ca4d30dd9c25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x90d9ee4c28bc9fc8ce533dc87f1ed0349c3ea302c5b37bd3f354ca4d30dd9c25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x90d9ee4c28bc9fc8ce533dc87f1ed0349c3ea302c5b37bd3f354ca4d30dd9c25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x90d9ee4c28bc9fc8ce533dc87f1ed0349c3ea302c5b37bd3f354ca4d30dd9c25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "90d9ee4c28bc9fc8ce533dc87f1ed0349c3ea302c5b37bd3f354ca4d30dd9c25", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x6f7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe74977f000000000000000000000000000000000000000000000000000000000000c3506f6b7936181136392060005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x5bca15f0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7490871f" + "1955628831" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest324.json b/GeneralStateTests/stRandom/randomStatetest324.json index d63c07bfe..91e7db7b1 100644 --- a/GeneralStateTests/stRandom/randomStatetest324.json +++ b/GeneralStateTests/stRandom/randomStatetest324.json @@ -2,17 +2,54 @@ "randomStatetest324" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest324Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1211446051", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620a445643a20543a055", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "6359530", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998782194465", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -32,78 +69,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb23cb1bd12609cf57740af880e3dc41c847ae72f8270aced0e614e6b8fe7118f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb23cb1bd12609cf57740af880e3dc41c847ae72f8270aced0e614e6b8fe7118f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb23cb1bd12609cf57740af880e3dc41c847ae72f8270aced0e614e6b8fe7118f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb23cb1bd12609cf57740af880e3dc41c847ae72f8270aced0e614e6b8fe7118f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb23cb1bd12609cf57740af880e3dc41c847ae72f8270aced0e614e6b8fe7118f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b23cb1bd12609cf57740af880e3dc41c847ae72f8270aced0e614e6b8fe7118f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620a445643a20543a055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -115,12 +100,12 @@ "gasLimit" : [ "0x7c24b3d2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x48353323" + "1211446051" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest325.json b/GeneralStateTests/stRandom/randomStatetest325.json index c182cda8d..febcfc435 100644 --- a/GeneralStateTests/stRandom/randomStatetest325.json +++ b/GeneralStateTests/stRandom/randomStatetest325.json @@ -2,92 +2,77 @@ "randomStatetest325" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest325Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "457480517", + "code" : "0x437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81090360005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51182", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999542468347", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x93c9e3449282448434ac64d26445a4cb91cba6fbe46f300bb30a2c7f14194520", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x93c9e3449282448434ac64d26445a4cb91cba6fbe46f300bb30a2c7f14194520", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x93c9e3449282448434ac64d26445a4cb91cba6fbe46f300bb30a2c7f14194520", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x93c9e3449282448434ac64d26445a4cb91cba6fbe46f300bb30a2c7f14194520", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x93c9e3449282448434ac64d26445a4cb91cba6fbe46f300bb30a2c7f14194520", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "febf3fa4bfd6ab1ec17e35f05d75d9d7b3266b2aa871b993aba8b570261a8e79", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81090360005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3cc91dd8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1b449945" + "457480517" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest326.json b/GeneralStateTests/stRandom/randomStatetest326.json index ddf945612..43a99eaec 100644 --- a/GeneralStateTests/stRandom/randomStatetest326.json +++ b/GeneralStateTests/stRandom/randomStatetest326.json @@ -2,17 +2,53 @@ "randomStatetest326" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest326Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1579124913", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000000034577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000426259cb6142a1196e3168c986758aa4", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "113735807", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998307139326", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -24,78 +60,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd1525021b99d833333eff698fe8865b01cf5d958b8aa38474797634098dd13e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd1525021b99d833333eff698fe8865b01cf5d958b8aa38474797634098dd13e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd1525021b99d833333eff698fe8865b01cf5d958b8aa38474797634098dd13e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd1525021b99d833333eff698fe8865b01cf5d958b8aa38474797634098dd13e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd1525021b99d833333eff698fe8865b01cf5d958b8aa38474797634098dd13e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "634fc8a01590172b79cba0ea677dd15e0c634dc950a9e7a4199148cd6cd749a8", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000000034577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000426259cb6142a1196e3168c986758aa4", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -107,12 +91,12 @@ "gasLimit" : [ "0x16bc578c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5e1f88b1" + "1579124913" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest327.json b/GeneralStateTests/stRandom/randomStatetest327.json index e30fb0cc7..77ee082c1 100644 --- a/GeneralStateTests/stRandom/randomStatetest327.json +++ b/GeneralStateTests/stRandom/randomStatetest327.json @@ -2,92 +2,76 @@ "randomStatetest327" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest327Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001458b5554397513", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1926099380", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998073900666", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x40072f5f137ca3604e5904d1da01778435aa9f16af53721046d822b5b1def18c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x40072f5f137ca3604e5904d1da01778435aa9f16af53721046d822b5b1def18c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x40072f5f137ca3604e5904d1da01778435aa9f16af53721046d822b5b1def18c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x40072f5f137ca3604e5904d1da01778435aa9f16af53721046d822b5b1def18c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x40072f5f137ca3604e5904d1da01778435aa9f16af53721046d822b5b1def18c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "40072f5f137ca3604e5904d1da01778435aa9f16af53721046d822b5b1def18c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000001458b5554397513", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x72cdf186" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x234db8f3" + "592296179" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest328.json b/GeneralStateTests/stRandom/randomStatetest328.json index 1c1dd4fc8..6a46625a2 100644 --- a/GeneralStateTests/stRandom/randomStatetest328.json +++ b/GeneralStateTests/stRandom/randomStatetest328.json @@ -2,92 +2,77 @@ "randomStatetest328" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest328Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x454555", + "nonce" : "0", + "storage" : { + "0x7fffffffffffffff" : "0x7fffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41118", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858928", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xbf233aae0ba21e414ccbe30c56e008db2d8121b6cb471faa323f9512b5ec75a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xbf233aae0ba21e414ccbe30c56e008db2d8121b6cb471faa323f9512b5ec75a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbf233aae0ba21e414ccbe30c56e008db2d8121b6cb471faa323f9512b5ec75a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbf233aae0ba21e414ccbe30c56e008db2d8121b6cb471faa323f9512b5ec75a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbf233aae0ba21e414ccbe30c56e008db2d8121b6cb471faa323f9512b5ec75a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9f71ffb0ecc7f579f2e35ed2a6c8549d4eaf8cf5d8ea33616b420b38dca392ea", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x454555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest329.json b/GeneralStateTests/stRandom/randomStatetest329.json index 400f9a4df..9238cc1bb 100644 --- a/GeneralStateTests/stRandom/randomStatetest329.json +++ b/GeneralStateTests/stRandom/randomStatetest329.json @@ -2,92 +2,77 @@ "randomStatetest329" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest329Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1532627820", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff426fa48d775458574133769c8b750207ff5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xa48d775458574133769c8b750207ff55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49625", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998467322601", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xba24808b036c7fffa5bbfe602b0b447891cbe7e72c1816646a84aacfb90a8eaf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xba24808b036c7fffa5bbfe602b0b447891cbe7e72c1816646a84aacfb90a8eaf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xba24808b036c7fffa5bbfe602b0b447891cbe7e72c1816646a84aacfb90a8eaf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xba24808b036c7fffa5bbfe602b0b447891cbe7e72c1816646a84aacfb90a8eaf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xba24808b036c7fffa5bbfe602b0b447891cbe7e72c1816646a84aacfb90a8eaf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ba24808b036c7fffa5bbfe602b0b447891cbe7e72c1816646a84aacfb90a8eaf", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff426fa48d775458574133769c8b750207ff5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6424e6d2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5b5a0b6c" + "1532627820" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest33.json b/GeneralStateTests/stRandom/randomStatetest33.json index 3392df053..178ab942a 100644 --- a/GeneralStateTests/stRandom/randomStatetest33.json +++ b/GeneralStateTests/stRandom/randomStatetest33.json @@ -2,92 +2,77 @@ "randomStatetest33" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest33Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "123424954", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000015a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3506f6940566279386017a362876372698f5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x6940566279386017a362876372698f55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50137", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999876524955", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xbe61561c4782eec71c48082dd0ec23efdf0a875e99835724300bab2969e96dad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xbe61561c4782eec71c48082dd0ec23efdf0a875e99835724300bab2969e96dad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbe61561c4782eec71c48082dd0ec23efdf0a875e99835724300bab2969e96dad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbe61561c4782eec71c48082dd0ec23efdf0a875e99835724300bab2969e96dad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbe61561c4782eec71c48082dd0ec23efdf0a875e99835724300bab2969e96dad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "be61561c4782eec71c48082dd0ec23efdf0a875e99835724300bab2969e96dad", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000015a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3506f6940566279386017a362876372698f5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7da7527b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x075b50ba" + "123424954" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest332.json b/GeneralStateTests/stRandom/randomStatetest332.json index 1cfb3ace1..e34363996 100644 --- a/GeneralStateTests/stRandom/randomStatetest332.json +++ b/GeneralStateTests/stRandom/randomStatetest332.json @@ -2,92 +2,77 @@ "randomStatetest332" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest332Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1406473566", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f7c098e7d625a64319d9e514bf350755560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x7c098e7d625a64319d9e514bf3507555" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50067", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998593476413", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7d8e23833eb211e6a0bdcbe2040548de8ac0b00e66477a7ef78a71deb86f7262", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7d8e23833eb211e6a0bdcbe2040548de8ac0b00e66477a7ef78a71deb86f7262", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7d8e23833eb211e6a0bdcbe2040548de8ac0b00e66477a7ef78a71deb86f7262", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7d8e23833eb211e6a0bdcbe2040548de8ac0b00e66477a7ef78a71deb86f7262", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7d8e23833eb211e6a0bdcbe2040548de8ac0b00e66477a7ef78a71deb86f7262", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7d8e23833eb211e6a0bdcbe2040548de8ac0b00e66477a7ef78a71deb86f7262", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506f7c098e7d625a64319d9e514bf350755560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x300945c7" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x53d5155e" + "1406473566" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest333.json b/GeneralStateTests/stRandom/randomStatetest333.json index 904030166..20865f64c 100644 --- a/GeneralStateTests/stRandom/randomStatetest333.json +++ b/GeneralStateTests/stRandom/randomStatetest333.json @@ -2,92 +2,77 @@ "randomStatetest333" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest333Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "807710883", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f410263f305963310856c15ff5037a05560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x410263f305963310856c15ff5037a055" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48843", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999192240320", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x60489e46827521cf4c909ff09a9fede078f86cc88735470c4268449dc49999f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x60489e46827521cf4c909ff09a9fede078f86cc88735470c4268449dc49999f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x60489e46827521cf4c909ff09a9fede078f86cc88735470c4268449dc49999f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x60489e46827521cf4c909ff09a9fede078f86cc88735470c4268449dc49999f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x60489e46827521cf4c909ff09a9fede078f86cc88735470c4268449dc49999f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "60489e46827521cf4c909ff09a9fede078f86cc88735470c4268449dc49999f3", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f410263f305963310856c15ff5037a05560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6343290b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3024b0a3" + "807710883" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest334.json b/GeneralStateTests/stRandom/randomStatetest334.json index ba500b3ef..b77127eff 100644 --- a/GeneralStateTests/stRandom/randomStatetest334.json +++ b/GeneralStateTests/stRandom/randomStatetest334.json @@ -2,92 +2,77 @@ "randomStatetest334" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest334Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "916012823", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000013a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f424468208e181851308b7c7a776863a160005155", + "nonce" : "0", + "storage" : { + "0x" : "0x424468208e181851308b7c7a776863a1" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47041", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999083940182", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x692ee43c37d50785a626face4e9e32d33f3f2c98c4d90c79f88cb814e5f09c91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x692ee43c37d50785a626face4e9e32d33f3f2c98c4d90c79f88cb814e5f09c91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x692ee43c37d50785a626face4e9e32d33f3f2c98c4d90c79f88cb814e5f09c91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x692ee43c37d50785a626face4e9e32d33f3f2c98c4d90c79f88cb814e5f09c91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x692ee43c37d50785a626face4e9e32d33f3f2c98c4d90c79f88cb814e5f09c91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "692ee43c37d50785a626face4e9e32d33f3f2c98c4d90c79f88cb814e5f09c91", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000013a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f424468208e181851308b7c7a776863a160005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1381fdac" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x36993f17" + "916012823" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest335.json b/GeneralStateTests/stRandom/randomStatetest335.json index aacad3a82..fdd29700c 100644 --- a/GeneralStateTests/stRandom/randomStatetest335.json +++ b/GeneralStateTests/stRandom/randomStatetest335.json @@ -2,92 +2,76 @@ "randomStatetest335" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest335Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1650737351", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350617e7608617c95f3ff584076e07b5a4460005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "68319", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998349194376", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350617e7608617c95f3ff584076e07b5a4460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x21929afe" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x626440c7" + "1650737351" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest336.json b/GeneralStateTests/stRandom/randomStatetest336.json index 359498911..ed3cd2cc1 100644 --- a/GeneralStateTests/stRandom/randomStatetest336.json +++ b/GeneralStateTests/stRandom/randomStatetest336.json @@ -2,92 +2,76 @@ "randomStatetest336" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest336Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41443442f34241", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50059", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999849987", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0xaa312e8af562a43ee46639e96f6f855af216025e0dc4880be8cc848baed36bd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xaa312e8af562a43ee46639e96f6f855af216025e0dc4880be8cc848baed36bd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaa312e8af562a43ee46639e96f6f855af216025e0dc4880be8cc848baed36bd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaa312e8af562a43ee46639e96f6f855af216025e0dc4880be8cc848baed36bd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaa312e8af562a43ee46639e96f6f855af216025e0dc4880be8cc848baed36bd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7c1c9d5ac72e2eb95fda2d9dd311ab95fcd3edab06bff04c5282460c030a691e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41443442f34241", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest337.json b/GeneralStateTests/stRandom/randomStatetest337.json index ebe50053b..3cab4415a 100644 --- a/GeneralStateTests/stRandom/randomStatetest337.json +++ b/GeneralStateTests/stRandom/randomStatetest337.json @@ -2,91 +2,77 @@ "randomStatetest337" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest337Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x13da3c95", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350670b9af27e9a6468a15560005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xc350", + "0x0b9af27e9a6468a1" : "0xc350" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x01019e", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b39388c1fb", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa5e94cc93d41d4d39cdebda112600410dd3dae8761245e03250101aa878201e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa5e94cc93d41d4d39cdebda112600410dd3dae8761245e03250101aa878201e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa5e94cc93d41d4d39cdebda112600410dd3dae8761245e03250101aa878201e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa5e94cc93d41d4d39cdebda112600410dd3dae8761245e03250101aa878201e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa5e94cc93d41d4d39cdebda112600410dd3dae8761245e03250101aa878201e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a5e94cc93d41d4d39cdebda112600410dd3dae8761245e03250101aa878201e6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350670b9af27e9a6468a15560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +87,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x13da3c95" ] diff --git a/GeneralStateTests/stRandom/randomStatetest338.json b/GeneralStateTests/stRandom/randomStatetest338.json index e2ee31190..6f89ea250 100644 --- a/GeneralStateTests/stRandom/randomStatetest338.json +++ b/GeneralStateTests/stRandom/randomStatetest338.json @@ -2,92 +2,78 @@ "randomStatetest338" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest338Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1766886327", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff677a9df32e6851606c0119065560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0xffffffff85620cd197ae9f93" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "74037", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998233039682", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4faca28a1daa6dc61bfaea6f3a3fb48c826e3c804ce715936f5ecdbbce0db149", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4faca28a1daa6dc61bfaea6f3a3fb48c826e3c804ce715936f5ecdbbce0db149", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4faca28a1daa6dc61bfaea6f3a3fb48c826e3c804ce715936f5ecdbbce0db149", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4faca28a1daa6dc61bfaea6f3a3fb48c826e3c804ce715936f5ecdbbce0db149", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4faca28a1daa6dc61bfaea6f3a3fb48c826e3c804ce715936f5ecdbbce0db149", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "4faca28a1daa6dc61bfaea6f3a3fb48c826e3c804ce715936f5ecdbbce0db149", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff677a9df32e6851606c0119065560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x0856e63f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x69508bb7" + "1766886327" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest339.json b/GeneralStateTests/stRandom/randomStatetest339.json index b9c0068ee..ce80e14bb 100644 --- a/GeneralStateTests/stRandom/randomStatetest339.json +++ b/GeneralStateTests/stRandom/randomStatetest339.json @@ -2,92 +2,77 @@ "randomStatetest339" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest339Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1064880298", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3506f89029e850708a293905668f1a367a25560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x89029e850708a293905668f1a367a255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45338", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998935074410", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x81a6fa4386b4b2fb06bbf539895ffe6ac9637029111c3e64d21c854736a0214d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x81a6fa4386b4b2fb06bbf539895ffe6ac9637029111c3e64d21c854736a0214d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x81a6fa4386b4b2fb06bbf539895ffe6ac9637029111c3e64d21c854736a0214d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x81a6fa4386b4b2fb06bbf539895ffe6ac9637029111c3e64d21c854736a0214d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x81a6fa4386b4b2fb06bbf539895ffe6ac9637029111c3e64d21c854736a0214d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "81a6fa4386b4b2fb06bbf539895ffe6ac9637029111c3e64d21c854736a0214d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3506f89029e850708a293905668f1a367a25560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x48d31477" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3f78c8aa" + "1064880298" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest340.json b/GeneralStateTests/stRandom/randomStatetest340.json index a11f9d5af..8b412a689 100644 --- a/GeneralStateTests/stRandom/randomStatetest340.json +++ b/GeneralStateTests/stRandom/randomStatetest340.json @@ -2,92 +2,76 @@ "randomStatetest340" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest340Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "39040167", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff095560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41986", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999960917893", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x56574351ad61caec1e1807367985ae0bea6c55716655a5ab9001f42c43adc3be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x56574351ad61caec1e1807367985ae0bea6c55716655a5ab9001f42c43adc3be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x86465463ac9e7721217b38c4dd8be6860943d3c52dc56325e5d9f05422ced540", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x86465463ac9e7721217b38c4dd8be6860943d3c52dc56325e5d9f05422ced540", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x56574351ad61caec1e1807367985ae0bea6c55716655a5ab9001f42c43adc3be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "86465463ac9e7721217b38c4dd8be6860943d3c52dc56325e5d9f05422ced540", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff095560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x1bee2318" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0253b4a7" + "39040167" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest341.json b/GeneralStateTests/stRandom/randomStatetest341.json index a156a2a07..b028bfd34 100644 --- a/GeneralStateTests/stRandom/randomStatetest341.json +++ b/GeneralStateTests/stRandom/randomStatetest341.json @@ -2,92 +2,76 @@ "randomStatetest341" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest341Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1485632", + "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b940860005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "4379639", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999994134775", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b940860005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x01a76401" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x16ab40" + "1485632" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest342.json b/GeneralStateTests/stRandom/randomStatetest342.json index 158cac3f0..7091c3c67 100644 --- a/GeneralStateTests/stRandom/randomStatetest342.json +++ b/GeneralStateTests/stRandom/randomStatetest342.json @@ -2,92 +2,77 @@ "randomStatetest342" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest342Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1662167236", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000000041147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f36314297399455797b42569e8f05565560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x36314297399455797b42569e8f055655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47705", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998337785105", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8ba9cb2564717367ec0adf4ed75a2b783becfdd7cae2863ceeca35c612e8bfb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8ba9cb2564717367ec0adf4ed75a2b783becfdd7cae2863ceeca35c612e8bfb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8ba9cb2564717367ec0adf4ed75a2b783becfdd7cae2863ceeca35c612e8bfb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8ba9cb2564717367ec0adf4ed75a2b783becfdd7cae2863ceeca35c612e8bfb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8ba9cb2564717367ec0adf4ed75a2b783becfdd7cae2863ceeca35c612e8bfb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8ba9cb2564717367ec0adf4ed75a2b783becfdd7cae2863ceeca35c612e8bfb0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000000041147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f36314297399455797b42569e8f05565560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6ef54abd" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6312a8c4" + "1662167236" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest343.json b/GeneralStateTests/stRandom/randomStatetest343.json index cd202ae81..1fde939e4 100644 --- a/GeneralStateTests/stRandom/randomStatetest343.json +++ b/GeneralStateTests/stRandom/randomStatetest343.json @@ -2,92 +2,78 @@ "randomStatetest343" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest343Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1301366640", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff1110103741355560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xc350", + "0x7f000000000000000000000000000000000000000000000000000000000000" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "82658", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998698550748", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2a923bf935832273c37697eb9ea40a83dec794bd869ee5ca433072825a40c51d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2a923bf935832273c37697eb9ea40a83dec794bd869ee5ca433072825a40c51d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2a923bf935832273c37697eb9ea40a83dec794bd869ee5ca433072825a40c51d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2a923bf935832273c37697eb9ea40a83dec794bd869ee5ca433072825a40c51d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2a923bf935832273c37697eb9ea40a83dec794bd869ee5ca433072825a40c51d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2a923bf935832273c37697eb9ea40a83dec794bd869ee5ca433072825a40c51d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff1110103741355560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x07c3d4a1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4d914770" + "1301366640" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest345.json b/GeneralStateTests/stRandom/randomStatetest345.json index 39c9de3e8..26c0c24b7 100644 --- a/GeneralStateTests/stRandom/randomStatetest345.json +++ b/GeneralStateTests/stRandom/randomStatetest345.json @@ -2,92 +2,76 @@ "randomStatetest345" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest345Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "12028215", + "code" : "0x417f0000000000000000000000000000000000000000000000000000000000000001447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000000035420b417f056699168fa16d8d94113b60005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "27245", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999987944586", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x41030abc2268083d35d279f5af56866707f9de5dac0d0e5e56aa002fa5dc6ed0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x41030abc2268083d35d279f5af56866707f9de5dac0d0e5e56aa002fa5dc6ed0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x41030abc2268083d35d279f5af56866707f9de5dac0d0e5e56aa002fa5dc6ed0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x41030abc2268083d35d279f5af56866707f9de5dac0d0e5e56aa002fa5dc6ed0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x41030abc2268083d35d279f5af56866707f9de5dac0d0e5e56aa002fa5dc6ed0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "41030abc2268083d35d279f5af56866707f9de5dac0d0e5e56aa002fa5dc6ed0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x417f0000000000000000000000000000000000000000000000000000000000000001447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000000035420b417f056699168fa16d8d94113b60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x239411f2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0xb78937" + "12028215" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest346.json b/GeneralStateTests/stRandom/randomStatetest346.json index 7235dc469..316641f3f 100644 --- a/GeneralStateTests/stRandom/randomStatetest346.json +++ b/GeneralStateTests/stRandom/randomStatetest346.json @@ -2,92 +2,76 @@ "randomStatetest346" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest346Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "87977970", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "42259", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999911979817", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x924a5e7f101f3386932c643c3331290422a36abf918ef1b5c0369ed5bfd5e250", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x924a5e7f101f3386932c643c3331290422a36abf918ef1b5c0369ed5bfd5e250", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x924a5e7f101f3386932c643c3331290422a36abf918ef1b5c0369ed5bfd5e250", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x924a5e7f101f3386932c643c3331290422a36abf918ef1b5c0369ed5bfd5e250", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x924a5e7f101f3386932c643c3331290422a36abf918ef1b5c0369ed5bfd5e250", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "924a5e7f101f3386932c643c3331290422a36abf918ef1b5c0369ed5bfd5e250", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x7d53c78b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x053e6ff2" + "87977970" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest347.json b/GeneralStateTests/stRandom/randomStatetest347.json index 759d12660..9e83e51aa 100644 --- a/GeneralStateTests/stRandom/randomStatetest347.json +++ b/GeneralStateTests/stRandom/randomStatetest347.json @@ -2,91 +2,75 @@ "randomStatetest347" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest347Filler.json" }, "env" : { - "currentCoinbase" : "0xa7f7c8ef9bbbcfb0f7e81c1fd46bb732fba60592", + "currentCoinbase" : "a7f7c8ef9bbbcfb0f7e81c1fd46bb732fba60592", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x0b3be1fc", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0xf3907ec3d962d22b61d2618054c8252a7fe67b65f652a7b8fcc55cfe905a1caa" + "currentTimestamp" : "1000", + "previousHash" : "f3907ec3d962d22b61d2618054c8252a7fe67b65f652a7b8fcc55cfe905a1caa" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x33498455", + "code" : "0x64d552603c577e9a3805d8c55157a82b7660ef2a049cfbf79c15fa8e3261f121d213590fa3917d7d442a5e8734af2aaa4c859b452eed7860c2f7e051580427b6c3cc6d7fee617a0d64ef63e192256de5d2ea2689decfd971c7478effb06aa9e792747ce0492abde8c2f270e93d5ed0b213fed7ae59294537d4864c0e68bbe30ec5d1e6b854027862cfcbea15e8367dfaa080ee0da2b0d2ca892f5a764354370466ccddd03115ec8a7ad2e6c62c29425a45ec842fb74c369fb15a42e4b4e48b3eb70be2a0847469987980e6eaa539365a491d2366334f78f03acb177809e7525add39a234d3d2ef1cf8544a52389411ef846d3cd7f36d0d1db7f414860020171f07598cfb620e15a9681c843d60aee9fb8a4e7e37713afbf6ef9d1667513975c76f26ac35ce209b1e0a3bb7c19821368931537b4095ea42b32baf1ba596b9af5cce961ae705f8c9c5465e349633529871f64351169e7fe48ccbb866952fabbfcf40df723c564e109dbd4c9c15ee9ad625e96a5765f6f56ee0601677961da7ebad5f583f6eb6da7c8348425fe784f532f288963ccdbf9de3ac3ebc38b75a806b40e51b895c662d0bcab255a04b723f1e500517d17eb720e02f445cb046bd0fe7d2759438c79aa2dfcaef1cf57e4eb9c832f7ef449a9c32f673728f4b0dccdfa8fb1d447e2f681076ac51a98f76600a66b4692ca7e1e9c89f64cdf879cb0c625514977ebca28f2ec8bb3a092bd0c30849558fe16a4b7070cb05aec329c0286c26fff57795ce4ac7601160ea2d6656c8f2a554b43e263cc3a60e9fd0a26c0a5f7202f02888a731e84ab326610c77771f85025eb8c552943d2da5de48786015f5b8b5921d26c1e277d5a4cda5f1f77ec5f3a83e6ed6821ff025370e2fad05a0f364f58f3705c8761904d63e0f2e5bdbe2b0b1ddf82bb441c547634e8c1864737333e845ffa373c102303f727bfa14f4c445711f6f9695c36f3627df02a1fe2d7eca55faed6984000ab2a99545148bbe7369a47367bc24256acd6a3a22d5fb32434b1998297ae6b2edf08b72dc4598aa600e16707699a84e55ef611ea0e6da482f6c6e9d05d54bbb4ad06cd62622e469fbcd3e637a8f0d2ac9149b7076cce991cb5d4b4de1229e3decbcf46a3c7e46aa1fdc218d936e56f55b5a38bbd798361040e1badb1ab06adc38a723badfa07a95f78553de4df879855274a1904a31276d7938818021e69d8f5b9279478808a236deefd761df6bc151fded80bbe4ba725e7db7b9fc507f0b8121a009384c7bc4443747bd1ac9dc7682b32bec0937c7fb27ba3926acd0d67b41ba6c951788f1bb1b1168229d15cafdc63209c95df646566024013d766a01d6b8051c357243c9f464f423a2ae8efa4f9efd95777099eac9b0825d18018a5afcb6cecd9ab9a9655ae262db08a271d8adedbc3e7eb6acfd2d576ec297c09c4bd47a80dacd2b123e4e4e6232ef6d70acb10f2f44a62bbcef65a72576506ea119b051880b515f4414920badcd6f726c04e821516f6123c9c52f29e19bfe0fb10fab76536535cc0e01115c83369d4083db2d669654c2fe8c00e37bd78f663a2ce2425d2ce358e213d6c601208bb644fa656678de7633147fbd152c2ae682dec269245f07ba3c79f4e6e1978d40f42a494d44eba128b9d0228d637900cbab73455423156417fae331d26494d1ed4d06ecf206736f04292d5470d5091c48a80ba737372c35729c829af30db3625785ba0b3cfc4240d002276760f2770ead609b52db934a53063ec1c05488188fb37ce61059909b6c975c0e9401ef3b71b6d0ddae39867f3f0878bd172851a98a233fcafae289fc634c36c8b3064926d92deda3d8c5074d6a56daa511e7e693aab3d4347cebdd5b63238acdeedc3d8eb8f69ea18cb429ee8f09c26845507ba28eba916c74fd62cd9e587a8f013122d93579b6b7da091527251a4b70051be4f0f96f61e5dc4ab713c473174c7e2ebb463615b03c4787b74e8c204975399439fa553838f186ae028a47f3ccd46c5fcc46c11a36219f3ba1d34def7bee989fa61e60a2abd3652df9f8e5a1b53d9608e3bb04f5e852333d9c7d761836ef5761178bd07fde9a0ded16e1659a6c80281c259ce42e3fdbe23664ce783b58d595", + "nonce" : "0xe9", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x4ea91708", + "code" : "0x36", + "nonce" : "0x59", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x24d289465fa51769", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5a9d4e3d21fb0dee07e0b52772b46dff8b513f0d4fba4765c43096a97e8b088f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5a9d4e3d21fb0dee07e0b52772b46dff8b513f0d4fba4765c43096a97e8b088f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5a9d4e3d21fb0dee07e0b52772b46dff8b513f0d4fba4765c43096a97e8b088f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5a9d4e3d21fb0dee07e0b52772b46dff8b513f0d4fba4765c43096a97e8b088f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5a9d4e3d21fb0dee07e0b52772b46dff8b513f0d4fba4765c43096a97e8b088f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5a9d4e3d21fb0dee07e0b52772b46dff8b513f0d4fba4765c43096a97e8b088f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x33498455", "code" : "0x64d552603c577e9a3805d8c55157a82b7660ef2a049cfbf79c15fa8e3261f121d213590fa3917d7d442a5e8734af2aaa4c859b452eed7860c2f7e051580427b6c3cc6d7fee617a0d64ef63e192256de5d2ea2689decfd971c7478effb06aa9e792747ce0492abde8c2f270e93d5ed0b213fed7ae59294537d4864c0e68bbe30ec5d1e6b854027862cfcbea15e8367dfaa080ee0da2b0d2ca892f5a764354370466ccddd03115ec8a7ad2e6c62c29425a45ec842fb74c369fb15a42e4b4e48b3eb70be2a0847469987980e6eaa539365a491d2366334f78f03acb177809e7525add39a234d3d2ef1cf8544a52389411ef846d3cd7f36d0d1db7f414860020171f07598cfb620e15a9681c843d60aee9fb8a4e7e37713afbf6ef9d1667513975c76f26ac35ce209b1e0a3bb7c19821368931537b4095ea42b32baf1ba596b9af5cce961ae705f8c9c5465e349633529871f64351169e7fe48ccbb866952fabbfcf40df723c564e109dbd4c9c15ee9ad625e96a5765f6f56ee0601677961da7ebad5f583f6eb6da7c8348425fe784f532f288963ccdbf9de3ac3ebc38b75a806b40e51b895c662d0bcab255a04b723f1e500517d17eb720e02f445cb046bd0fe7d2759438c79aa2dfcaef1cf57e4eb9c832f7ef449a9c32f673728f4b0dccdfa8fb1d447e2f681076ac51a98f76600a66b4692ca7e1e9c89f64cdf879cb0c625514977ebca28f2ec8bb3a092bd0c30849558fe16a4b7070cb05aec329c0286c26fff57795ce4ac7601160ea2d6656c8f2a554b43e263cc3a60e9fd0a26c0a5f7202f02888a731e84ab326610c77771f85025eb8c552943d2da5de48786015f5b8b5921d26c1e277d5a4cda5f1f77ec5f3a83e6ed6821ff025370e2fad05a0f364f58f3705c8761904d63e0f2e5bdbe2b0b1ddf82bb441c547634e8c1864737333e845ffa373c102303f727bfa14f4c445711f6f9695c36f3627df02a1fe2d7eca55faed6984000ab2a99545148bbe7369a47367bc24256acd6a3a22d5fb32434b1998297ae6b2edf08b72dc4598aa600e16707699a84e55ef611ea0e6da482f6c6e9d05d54bbb4ad06cd62622e469fbcd3e637a8f0d2ac9149b7076cce991cb5d4b4de1229e3decbcf46a3c7e46aa1fdc218d936e56f55b5a38bbd798361040e1badb1ab06adc38a723badfa07a95f78553de4df879855274a1904a31276d7938818021e69d8f5b9279478808a236deefd761df6bc151fded80bbe4ba725e7db7b9fc507f0b8121a009384c7bc4443747bd1ac9dc7682b32bec0937c7fb27ba3926acd0d67b41ba6c951788f1bb1b1168229d15cafdc63209c95df646566024013d766a01d6b8051c357243c9f464f423a2ae8efa4f9efd95777099eac9b0825d18018a5afcb6cecd9ab9a9655ae262db08a271d8adedbc3e7eb6acfd2d576ec297c09c4bd47a80dacd2b123e4e4e6232ef6d70acb10f2f44a62bbcef65a72576506ea119b051880b515f4414920badcd6f726c04e821516f6123c9c52f29e19bfe0fb10fab76536535cc0e01115c83369d4083db2d669654c2fe8c00e37bd78f663a2ce2425d2ce358e213d6c601208bb644fa656678de7633147fbd152c2ae682dec269245f07ba3c79f4e6e1978d40f42a494d44eba128b9d0228d637900cbab73455423156417fae331d26494d1ed4d06ecf206736f04292d5470d5091c48a80ba737372c35729c829af30db3625785ba0b3cfc4240d002276760f2770ead609b52db934a53063ec1c05488188fb37ce61059909b6c975c0e9401ef3b71b6d0ddae39867f3f0878bd172851a98a233fcafae289fc634c36c8b3064926d92deda3d8c5074d6a56daa511e7e693aab3d4347cebdd5b63238acdeedc3d8eb8f69ea18cb429ee8f09c26845507ba28eba916c74fd62cd9e587a8f013122d93579b6b7da091527251a4b70051be4f0f96f61e5dc4ab713c473174c7e2ebb463615b03c4787b74e8c204975399439fa553838f186ae028a47f3ccd46c5fcc46c11a36219f3ba1d34def7bee989fa61e60a2abd3652df9f8e5a1b53d9608e3bb04f5e852333d9c7d761836ef5761178bd07fde9a0ded16e1659a6c80281c259ce42e3fdbe23664ce783b58d595", "nonce" : "0xe9", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x4ea91708", "code" : "0x36", "nonce" : "0x59", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x24d289465fa51769", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x1d", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x7f3e3a6ac8834e68" ] diff --git a/GeneralStateTests/stRandom/randomStatetest348.json b/GeneralStateTests/stRandom/randomStatetest348.json index fd2c4342f..067a520c6 100644 --- a/GeneralStateTests/stRandom/randomStatetest348.json +++ b/GeneralStateTests/stRandom/randomStatetest348.json @@ -2,92 +2,77 @@ "randomStatetest348" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest348Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1329276634", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000142186f18208119191509036365739735608a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x18208119191509036365739735608a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "53017", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998670670395", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf03f885cc5015524110b50cab094959d5b36d4fd2b976ea400b11147203d4ca5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf03f885cc5015524110b50cab094959d5b36d4fd2b976ea400b11147203d4ca5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf03f885cc5015524110b50cab094959d5b36d4fd2b976ea400b11147203d4ca5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf03f885cc5015524110b50cab094959d5b36d4fd2b976ea400b11147203d4ca5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf03f885cc5015524110b50cab094959d5b36d4fd2b976ea400b11147203d4ca5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f03f885cc5015524110b50cab094959d5b36d4fd2b976ea400b11147203d4ca5", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000142186f18208119191509036365739735608a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1be24b90" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4f3b26da" + "1329276634" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest349.json b/GeneralStateTests/stRandom/randomStatetest349.json index 32212929b..1112d33e6 100644 --- a/GeneralStateTests/stRandom/randomStatetest349.json +++ b/GeneralStateTests/stRandom/randomStatetest349.json @@ -2,92 +2,79 @@ "randomStatetest349" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest349Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "201035010", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe04425560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0x01" : "0", + "0x03e8" : "0x00014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "69304", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999798895732", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd01ed77aa603cb9cfc4891db29cc20911a6744682934708fc7860ab32b08ffb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd01ed77aa603cb9cfc4891db29cc20911a6744682934708fc7860ab32b08ffb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd01ed77aa603cb9cfc4891db29cc20911a6744682934708fc7860ab32b08ffb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd01ed77aa603cb9cfc4891db29cc20911a6744682934708fc7860ab32b08ffb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd01ed77aa603cb9cfc4891db29cc20911a6744682934708fc7860ab32b08ffb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "30e07e827a096cc8846875dab7eec843f721a20310ce7805b456905d912069e4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe04425560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +86,12 @@ "gasLimit" : [ "0x34cd45dd" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0bfb8d02" + "201035010" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest350.json b/GeneralStateTests/stRandom/randomStatetest350.json index 906a6117b..afeb5365c 100644 --- a/GeneralStateTests/stRandom/randomStatetest350.json +++ b/GeneralStateTests/stRandom/randomStatetest350.json @@ -2,92 +2,73 @@ "randomStatetest350" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest350Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xed008f7db4edd4cf23fc05b5e11c37807c4b6a095e8d03e2aba1cfb563d6cb5c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1634268072", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff090860005155", + "nonce" : "0", + "storage" : { + "0x00" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "36502", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998365695472", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xed008f7db4edd4cf23fc05b5e11c37807c4b6a095e8d03e2aba1cfb563d6cb5c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xed008f7db4edd4cf23fc05b5e11c37807c4b6a095e8d03e2aba1cfb563d6cb5c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xed008f7db4edd4cf23fc05b5e11c37807c4b6a095e8d03e2aba1cfb563d6cb5c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xed008f7db4edd4cf23fc05b5e11c37807c4b6a095e8d03e2aba1cfb563d6cb5c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, - "postStateRoot" : "2ae422c5b7af24120662cddeb53bc00653f480f67dac0eb9e3884422e628d680", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff090860005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +80,12 @@ "gasLimit" : [ "0x5a300832" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6168f3a8" + "1634268072" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest351.json b/GeneralStateTests/stRandom/randomStatetest351.json index 69a22fdb6..c85168bb7 100644 --- a/GeneralStateTests/stRandom/randomStatetest351.json +++ b/GeneralStateTests/stRandom/randomStatetest351.json @@ -2,92 +2,77 @@ "randomStatetest351" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest351Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1215186094", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0509355534707785320175fca41455", + "nonce" : "0", + "storage" : { + "0x7f00000000000000000000000000000000000000000000000000000000000000" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51732", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998784762220", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x0c2e50f8220752943e32a4547b8bbf85fe688df309ec21a7a7118246b8c8b0cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0c2e50f8220752943e32a4547b8bbf85fe688df309ec21a7a7118246b8c8b0cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0c2e50f8220752943e32a4547b8bbf85fe688df309ec21a7a7118246b8c8b0cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0c2e50f8220752943e32a4547b8bbf85fe688df309ec21a7a7118246b8c8b0cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0c2e50f8220752943e32a4547b8bbf85fe688df309ec21a7a7118246b8c8b0cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0c2e50f8220752943e32a4547b8bbf85fe688df309ec21a7a7118246b8c8b0cc", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0509355534707785320175fca41455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x66763ec3" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x486e44ae" + "1215186094" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest352.json b/GeneralStateTests/stRandom/randomStatetest352.json index 9697f110c..9527f6bb8 100644 --- a/GeneralStateTests/stRandom/randomStatetest352.json +++ b/GeneralStateTests/stRandom/randomStatetest352.json @@ -2,91 +2,75 @@ "randomStatetest352" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest352Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000003a457f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b513428284f28a980b4539a39d1408", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x15c86d88", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3919b92a6", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8c2f569f43a35beb2ec39814565061fa8a58760b6a8cbd8912dd3af6392add3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8c2f569f43a35beb2ec39814565061fa8a58760b6a8cbd8912dd3af6392add3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8c2f569f43a35beb2ec39814565061fa8a58760b6a8cbd8912dd3af6392add3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8c2f569f43a35beb2ec39814565061fa8a58760b6a8cbd8912dd3af6392add3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8c2f569f43a35beb2ec39814565061fa8a58760b6a8cbd8912dd3af6392add3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8c2f569f43a35beb2ec39814565061fa8a58760b6a8cbd8912dd3af6392add3e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000003a457f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b513428284f28a980b4539a39d1408", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x014eb9ae" ] diff --git a/GeneralStateTests/stRandom/randomStatetest353.json b/GeneralStateTests/stRandom/randomStatetest353.json index b0d686034..9b50d3186 100644 --- a/GeneralStateTests/stRandom/randomStatetest353.json +++ b/GeneralStateTests/stRandom/randomStatetest353.json @@ -2,92 +2,76 @@ "randomStatetest353" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest353Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000120ba49036880f86529655", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1004111128", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998995888918", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xee237a377144cd7fd095bbd85d5f0ae3a12f83ccf41c488a3233504bea606830", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xee237a377144cd7fd095bbd85d5f0ae3a12f83ccf41c488a3233504bea606830", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xee237a377144cd7fd095bbd85d5f0ae3a12f83ccf41c488a3233504bea606830", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xee237a377144cd7fd095bbd85d5f0ae3a12f83ccf41c488a3233504bea606830", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xee237a377144cd7fd095bbd85d5f0ae3a12f83ccf41c488a3233504bea606830", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ee237a377144cd7fd095bbd85d5f0ae3a12f83ccf41c488a3233504bea606830", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000120ba49036880f86529655", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x3bd984ea" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x66f823bb" + "1727538107" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest354.json b/GeneralStateTests/stRandom/randomStatetest354.json index d64db792e..f6ee3fdba 100644 --- a/GeneralStateTests/stRandom/randomStatetest354.json +++ b/GeneralStateTests/stRandom/randomStatetest354.json @@ -2,92 +2,77 @@ "randomStatetest354" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest354Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "615164662", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350603b35641a8e739f86980a433760005155", + "nonce" : "0", + "storage" : { + "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "67624", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999384767760", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9418f698c97fb817187a1cffdeeaa09adf507af56704ab55bd5c61c5bf36af74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb6e1a256d3f62864b4dcde61bc71e59e4e4cc1a4255700e9bffcbecdd252d2d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9418f698c97fb817187a1cffdeeaa09adf507af56704ab55bd5c61c5bf36af74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9418f698c97fb817187a1cffdeeaa09adf507af56704ab55bd5c61c5bf36af74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb6e1a256d3f62864b4dcde61bc71e59e4e4cc1a4255700e9bffcbecdd252d2d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3b8727cf51e118d986d166ae64b3178986f88f5c1d505eefb1f6fbd94345f6cf", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350603b35641a8e739f86980a433760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x49debde5" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x24aaaaf6" + "615164662" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest355.json b/GeneralStateTests/stRandom/randomStatetest355.json index d8a88e465..1b5a06ef4 100644 --- a/GeneralStateTests/stRandom/randomStatetest355.json +++ b/GeneralStateTests/stRandom/randomStatetest355.json @@ -2,91 +2,75 @@ "randomStatetest355" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest355Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5457f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001666b56e87c5a499d5389306e55", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x2b37c310", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b37c2c3d1e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2fb3e00745e030bc746636fd0ec453ba1694911050dccf7ed5f469a66aefc9c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2fb3e00745e030bc746636fd0ec453ba1694911050dccf7ed5f469a66aefc9c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2fb3e00745e030bc746636fd0ec453ba1694911050dccf7ed5f469a66aefc9c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2fb3e00745e030bc746636fd0ec453ba1694911050dccf7ed5f469a66aefc9c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2fb3e00745e030bc746636fd0ec453ba1694911050dccf7ed5f469a66aefc9c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2fb3e00745e030bc746636fd0ec453ba1694911050dccf7ed5f469a66aefc9c2", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5457f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001666b56e87c5a499d5389306e55", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x275009c5" ] diff --git a/GeneralStateTests/stRandom/randomStatetest356.json b/GeneralStateTests/stRandom/randomStatetest356.json index 5cd1ff48d..bfe631c5b 100644 --- a/GeneralStateTests/stRandom/randomStatetest356.json +++ b/GeneralStateTests/stRandom/randomStatetest356.json @@ -2,92 +2,77 @@ "randomStatetest356" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest356Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1329095939", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5827f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0460005155", + "nonce" : "0", + "storage" : { + "0x" : "0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49504", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998670854603", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1e03ab60b025cf4ece45d2ca7f0167775e559a1627c72446c12e994a47045cfc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1e03ab60b025cf4ece45d2ca7f0167775e559a1627c72446c12e994a47045cfc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1e03ab60b025cf4ece45d2ca7f0167775e559a1627c72446c12e994a47045cfc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1e03ab60b025cf4ece45d2ca7f0167775e559a1627c72446c12e994a47045cfc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1e03ab60b025cf4ece45d2ca7f0167775e559a1627c72446c12e994a47045cfc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1e03ab60b025cf4ece45d2ca7f0167775e559a1627c72446c12e994a47045cfc", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5827f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x523a3970" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4f386503" + "1329095939" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest357.json b/GeneralStateTests/stRandom/randomStatetest357.json index e20199a04..1b4c6e7fd 100644 --- a/GeneralStateTests/stRandom/randomStatetest357.json +++ b/GeneralStateTests/stRandom/randomStatetest357.json @@ -2,92 +2,76 @@ "randomStatetest357" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest357Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1516457170", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09377c5380715560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "44824", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998483498052", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1e6ddf7a13360a0a1ee898d25585424542066e047b385bb5931cbef48a3133ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1e6ddf7a13360a0a1ee898d25585424542066e047b385bb5931cbef48a3133ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1e6ddf7a13360a0a1ee898d25585424542066e047b385bb5931cbef48a3133ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1e6ddf7a13360a0a1ee898d25585424542066e047b385bb5931cbef48a3133ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1e6ddf7a13360a0a1ee898d25585424542066e047b385bb5931cbef48a3133ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1e6ddf7a13360a0a1ee898d25585424542066e047b385bb5931cbef48a3133ec", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09377c5380715560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x359eb7b4" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5a634cd2" + "1516457170" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest358.json b/GeneralStateTests/stRandom/randomStatetest358.json index a15165056..bb3db6820 100644 --- a/GeneralStateTests/stRandom/randomStatetest358.json +++ b/GeneralStateTests/stRandom/randomStatetest358.json @@ -2,92 +2,77 @@ "randomStatetest358" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest358Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "623856537", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000c3506f679b82a092078f136b5541888c057a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x679b82a092078f136b5541888c057a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49560", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999376093949", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xfb5c9fab7bac372b8af05c589bb3d49c4181d86b84ed0cd0cbd42d7b1ca51d37", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xfb5c9fab7bac372b8af05c589bb3d49c4181d86b84ed0cd0cbd42d7b1ca51d37", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfb5c9fab7bac372b8af05c589bb3d49c4181d86b84ed0cd0cbd42d7b1ca51d37", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfb5c9fab7bac372b8af05c589bb3d49c4181d86b84ed0cd0cbd42d7b1ca51d37", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfb5c9fab7bac372b8af05c589bb3d49c4181d86b84ed0cd0cbd42d7b1ca51d37", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "fb5c9fab7bac372b8af05c589bb3d49c4181d86b84ed0cd0cbd42d7b1ca51d37", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000c3506f679b82a092078f136b5541888c057a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x2f94ab96" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x252f4b99" + "623856537" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest359.json b/GeneralStateTests/stRandom/randomStatetest359.json index 3b01f3cdf..018091f12 100644 --- a/GeneralStateTests/stRandom/randomStatetest359.json +++ b/GeneralStateTests/stRandom/randomStatetest359.json @@ -2,92 +2,76 @@ "randomStatetest359" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest359Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff428d06809e75f26764867d853b0555", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "144161518", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999855838528", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x77c02157a2c1be59d8e59537503c9cff114d187fd4196ad3b4594e827a7c302e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x77c02157a2c1be59d8e59537503c9cff114d187fd4196ad3b4594e827a7c302e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x77c02157a2c1be59d8e59537503c9cff114d187fd4196ad3b4594e827a7c302e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x77c02157a2c1be59d8e59537503c9cff114d187fd4196ad3b4594e827a7c302e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x77c02157a2c1be59d8e59537503c9cff114d187fd4196ad3b4594e827a7c302e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "77c02157a2c1be59d8e59537503c9cff114d187fd4196ad3b4594e827a7c302e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff428d06809e75f26764867d853b0555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x0897bac0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2fc482f2" + "801407730" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest36.json b/GeneralStateTests/stRandom/randomStatetest36.json index 779720fef..29755368a 100644 --- a/GeneralStateTests/stRandom/randomStatetest36.json +++ b/GeneralStateTests/stRandom/randomStatetest36.json @@ -2,17 +2,54 @@ "randomStatetest36" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest36Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2098819291", + "code" : "0x447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000010000000000000000000000000000000000000000448243628c0970843ba460005155", + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "234981086", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997666199669", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -27,78 +64,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x24c926a05cf07d794c1d83f0f60093f1efb7da76d285c21befb885cf561d7b4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x24c926a05cf07d794c1d83f0f60093f1efb7da76d285c21befb885cf561d7b4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2c7c47e9cb899ce0782f3a8e0c3acc3b789536efa478ee8e64c11ea1eb1a7e81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2c7c47e9cb899ce0782f3a8e0c3acc3b789536efa478ee8e64c11ea1eb1a7e81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x24c926a05cf07d794c1d83f0f60093f1efb7da76d285c21befb885cf561d7b4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2c7c47e9cb899ce0782f3a8e0c3acc3b789536efa478ee8e64c11ea1eb1a7e81", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000010000000000000000000000000000000000000000448243628c0970843ba460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -110,12 +95,12 @@ "gasLimit" : [ "0x5a7f675f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7d1970db" + "2098819291" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest360.json b/GeneralStateTests/stRandom/randomStatetest360.json index d9a2b44e1..4ea4b8570 100644 --- a/GeneralStateTests/stRandom/randomStatetest360.json +++ b/GeneralStateTests/stRandom/randomStatetest360.json @@ -2,92 +2,77 @@ "randomStatetest360" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest360Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "991329291", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000016f0441548af30803135562840563829c5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x0441548af30803135562840563829c55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50586", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999008620169", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc0a1113553a528db6b737350a87ef673023e671eaad143ad5917f3ebe3d3c0be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc0a1113553a528db6b737350a87ef673023e671eaad143ad5917f3ebe3d3c0be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc0a1113553a528db6b737350a87ef673023e671eaad143ad5917f3ebe3d3c0be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc0a1113553a528db6b737350a87ef673023e671eaad143ad5917f3ebe3d3c0be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc0a1113553a528db6b737350a87ef673023e671eaad143ad5917f3ebe3d3c0be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c0a1113553a528db6b737350a87ef673023e671eaad143ad5917f3ebe3d3c0be", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000016f0441548af30803135562840563829c5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6f53fde2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3b167c0b" + "991329291" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest361.json b/GeneralStateTests/stRandom/randomStatetest361.json index f94b37f22..195ca942f 100644 --- a/GeneralStateTests/stRandom/randomStatetest361.json +++ b/GeneralStateTests/stRandom/randomStatetest361.json @@ -2,92 +2,77 @@ "randomStatetest361" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest361Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1958353085", + "code" : "0x41417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff066f9e9092673a8f430b6ba115209018165560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x9e9092673a8f430b6ba1152090181655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49626", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998041597335", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2c988fb474af7ae7265836009e4e3c0ccbfeed0e3a88d3b83a47d33740ab9528", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2c988fb474af7ae7265836009e4e3c0ccbfeed0e3a88d3b83a47d33740ab9528", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2c988fb474af7ae7265836009e4e3c0ccbfeed0e3a88d3b83a47d33740ab9528", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2c988fb474af7ae7265836009e4e3c0ccbfeed0e3a88d3b83a47d33740ab9528", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2c988fb474af7ae7265836009e4e3c0ccbfeed0e3a88d3b83a47d33740ab9528", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2c988fb474af7ae7265836009e4e3c0ccbfeed0e3a88d3b83a47d33740ab9528", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x41417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff066f9e9092673a8f430b6ba115209018165560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5369d744" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x74ba18bd" + "1958353085" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest362.json b/GeneralStateTests/stRandom/randomStatetest362.json index 99570c2a0..2c55dd3db 100644 --- a/GeneralStateTests/stRandom/randomStatetest362.json +++ b/GeneralStateTests/stRandom/randomStatetest362.json @@ -2,92 +2,77 @@ "randomStatetest362" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest362Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "822238394", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50955", + "nonce" : "0", + "storage" : { + "0xffffffffffffffffffffffff6bacfb1469f9a4d5674a85b75f951d72d7a58e4a" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "56794", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999177704858", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8904a15b1484fce37952dc4914e2a63f003b970261f12f517fd38d9de1ca82f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8904a15b1484fce37952dc4914e2a63f003b970261f12f517fd38d9de1ca82f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8904a15b1484fce37952dc4914e2a63f003b970261f12f517fd38d9de1ca82f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8904a15b1484fce37952dc4914e2a63f003b970261f12f517fd38d9de1ca82f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8904a15b1484fce37952dc4914e2a63f003b970261f12f517fd38d9de1ca82f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8904a15b1484fce37952dc4914e2a63f003b970261f12f517fd38d9de1ca82f1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x288e5440" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x31025cba" + "822238394" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest363.json b/GeneralStateTests/stRandom/randomStatetest363.json index d47d2ffdc..5eac9edf0 100644 --- a/GeneralStateTests/stRandom/randomStatetest363.json +++ b/GeneralStateTests/stRandom/randomStatetest363.json @@ -2,92 +2,77 @@ "randomStatetest363" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest363Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1276687966", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350117ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f7b20937d953695f369719f9a4479055560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x7b20937d953695f369719f9a44790555" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52506", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998723259574", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x004d95838c457f0e838153b6c8c18e123139b406b7395cef4a8d7bdff41f9a42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x004d95838c457f0e838153b6c8c18e123139b406b7395cef4a8d7bdff41f9a42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x004d95838c457f0e838153b6c8c18e123139b406b7395cef4a8d7bdff41f9a42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x004d95838c457f0e838153b6c8c18e123139b406b7395cef4a8d7bdff41f9a42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x004d95838c457f0e838153b6c8c18e123139b406b7395cef4a8d7bdff41f9a42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "004d95838c457f0e838153b6c8c18e123139b406b7395cef4a8d7bdff41f9a42", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350117ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f7b20937d953695f369719f9a4479055560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x05e7fe04" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4c18b65e" + "1276687966" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest364.json b/GeneralStateTests/stRandom/randomStatetest364.json index 57bae76d2..1e6ee944c 100644 --- a/GeneralStateTests/stRandom/randomStatetest364.json +++ b/GeneralStateTests/stRandom/randomStatetest364.json @@ -2,92 +2,77 @@ "randomStatetest364" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest364Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "630230945", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c350076f7332988d746694918859185920446d5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x7332988d746694918859185920446d55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51740", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999369717361", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8e49676c75e131c3080b729480b037aa026c5c434e1d3182e3d960882fe2494b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8e49676c75e131c3080b729480b037aa026c5c434e1d3182e3d960882fe2494b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8e49676c75e131c3080b729480b037aa026c5c434e1d3182e3d960882fe2494b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8e49676c75e131c3080b729480b037aa026c5c434e1d3182e3d960882fe2494b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8e49676c75e131c3080b729480b037aa026c5c434e1d3182e3d960882fe2494b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8e49676c75e131c3080b729480b037aa026c5c434e1d3182e3d960882fe2494b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c350076f7332988d746694918859185920446d5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7d75ee8a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x25908fa1" + "630230945" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest365.json b/GeneralStateTests/stRandom/randomStatetest365.json index 5fc2e2000..6199933ad 100644 --- a/GeneralStateTests/stRandom/randomStatetest365.json +++ b/GeneralStateTests/stRandom/randomStatetest365.json @@ -2,92 +2,78 @@ "randomStatetest365" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest365Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1219277154", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000143b420785375560005155", + "nonce" : "0", + "storage" : { + "0x00" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "67767", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998780655125", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xddbb87ecbeab49d4d03155cebba212cf9f4865e1e0e723f2bfbfe2c1e5038cd8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xddbb87ecbeab49d4d03155cebba212cf9f4865e1e0e723f2bfbfe2c1e5038cd8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x920bfebe4ccfee0bbe17debf1beafb51f0d741bc4f00d08041316037fd634936", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x920bfebe4ccfee0bbe17debf1beafb51f0d741bc4f00d08041316037fd634936", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xddbb87ecbeab49d4d03155cebba212cf9f4865e1e0e723f2bfbfe2c1e5038cd8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d8760d71be2c4fbb0ab38e5d8658189daf82eaa4354839970f9d476bee0f2da6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000143b420785375560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x3786f58e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x48acb162" + "1219277154" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest366.json b/GeneralStateTests/stRandom/randomStatetest366.json index d30137314..2e71a8017 100644 --- a/GeneralStateTests/stRandom/randomStatetest366.json +++ b/GeneralStateTests/stRandom/randomStatetest366.json @@ -2,92 +2,77 @@ "randomStatetest366" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest366Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2102558524", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff446f516f0395f57433725580758f32f1945560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x516f0395f57433725580758f32f19455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "53657", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997897387865", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe461dd8d9a3a724fe57f5be4c69b8a2b605a87fdc486e8ec2b173fc82cf196af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe461dd8d9a3a724fe57f5be4c69b8a2b605a87fdc486e8ec2b173fc82cf196af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe461dd8d9a3a724fe57f5be4c69b8a2b605a87fdc486e8ec2b173fc82cf196af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe461dd8d9a3a724fe57f5be4c69b8a2b605a87fdc486e8ec2b173fc82cf196af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe461dd8d9a3a724fe57f5be4c69b8a2b605a87fdc486e8ec2b173fc82cf196af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e461dd8d9a3a724fe57f5be4c69b8a2b605a87fdc486e8ec2b173fc82cf196af", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff446f516f0395f57433725580758f32f1945560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x2c5927e9" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7d527f3c" + "2102558524" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest367.json b/GeneralStateTests/stRandom/randomStatetest367.json index 499b42f3a..eda66db45 100644 --- a/GeneralStateTests/stRandom/randomStatetest367.json +++ b/GeneralStateTests/stRandom/randomStatetest367.json @@ -2,92 +2,77 @@ "randomStatetest367" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest367Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "734254896", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5447f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b51905810a6c7a5959339f3342838b5560005155", + "nonce" : "0", + "storage" : { + "0x7a5959339f3342838b55600051" : "0x880ad67c991058b3847ec9f491f7a8d6ecbb1dff5c2326e7e8e9eb560ca29ecd" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48924", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999265696226", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd0119e2770270be4a87f4e06122fb4af5356d7f972205ca79bd529cf35b9814d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x00adc89e5e25c138dad983f92955022ba7a8655655213a00a7a3f6087faa0d42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd0119e2770270be4a87f4e06122fb4af5356d7f972205ca79bd529cf35b9814d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd0119e2770270be4a87f4e06122fb4af5356d7f972205ca79bd529cf35b9814d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x00adc89e5e25c138dad983f92955022ba7a8655655213a00a7a3f6087faa0d42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5d26bbe169398eaad707f1e7ff104caf0b0703de89ce92589f866be657619849", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5447f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b51905810a6c7a5959339f3342838b5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6e0c2062" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2bc3d730" + "734254896" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest368.json b/GeneralStateTests/stRandom/randomStatetest368.json index 62569b3c2..543afde8c 100644 --- a/GeneralStateTests/stRandom/randomStatetest368.json +++ b/GeneralStateTests/stRandom/randomStatetest368.json @@ -2,92 +2,83 @@ "randomStatetest368" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest368Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1135358124", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b54206f06d870339356057907760005155", + "nonce" : "1", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "63277", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998864577645", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7e85678cfd2866c57aab7a6b1c085dc2b77f5a123a088aeb7f88b8d49647667e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8bab9f85dfb0b213e404b6f6155393b0932bf70afab5de1dbc7c566e5e44aad2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7e85678cfd2866c57aab7a6b1c085dc2b77f5a123a088aeb7f88b8d49647667e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7e85678cfd2866c57aab7a6b1c085dc2b77f5a123a088aeb7f88b8d49647667e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8bab9f85dfb0b213e404b6f6155393b0932bf70afab5de1dbc7c566e5e44aad2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "bf2bfa36f3b3191fd44512c863f67aa9eb7623e4d9261607e3b8c211ec772002", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b54206f06d870339356057907760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +90,12 @@ "gasLimit" : [ "0x68aac0ae" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x43ac3494" + "1135359124" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest369.json b/GeneralStateTests/stRandom/randomStatetest369.json index 1be564a40..ca0b813e8 100644 --- a/GeneralStateTests/stRandom/randomStatetest369.json +++ b/GeneralStateTests/stRandom/randomStatetest369.json @@ -2,92 +2,77 @@ "randomStatetest369" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest369Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "471893354", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000001000000000000000000000000000000000000000060005155", + "nonce" : "0", + "storage" : { + "0x" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50134", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999528056558", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x35ebe0f6a4286a321843e62f25e42b67bd3f0092db4b2d8edb96d2e1b1501bdd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x35ebe0f6a4286a321843e62f25e42b67bd3f0092db4b2d8edb96d2e1b1501bdd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x35ebe0f6a4286a321843e62f25e42b67bd3f0092db4b2d8edb96d2e1b1501bdd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x35ebe0f6a4286a321843e62f25e42b67bd3f0092db4b2d8edb96d2e1b1501bdd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x35ebe0f6a4286a321843e62f25e42b67bd3f0092db4b2d8edb96d2e1b1501bdd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "35ebe0f6a4286a321843e62f25e42b67bd3f0092db4b2d8edb96d2e1b1501bdd", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000001000000000000000000000000000000000000000060005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5cf717b8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1c20856a" + "471893354" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest37.json b/GeneralStateTests/stRandom/randomStatetest37.json index e1caadf52..4e9380873 100644 --- a/GeneralStateTests/stRandom/randomStatetest37.json +++ b/GeneralStateTests/stRandom/randomStatetest37.json @@ -2,92 +2,77 @@ "randomStatetest37" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest37Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1992729901", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000016fa49835863514f0f29b930b97f116935560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xa49835863514f0f29b930b97f1169355" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48282", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998007221863", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe4522101de78d84b439669fde27a29fa109b74f16a2c9a1b33c0b524b5a1e636", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe4522101de78d84b439669fde27a29fa109b74f16a2c9a1b33c0b524b5a1e636", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe4522101de78d84b439669fde27a29fa109b74f16a2c9a1b33c0b524b5a1e636", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe4522101de78d84b439669fde27a29fa109b74f16a2c9a1b33c0b524b5a1e636", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe4522101de78d84b439669fde27a29fa109b74f16a2c9a1b33c0b524b5a1e636", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e4522101de78d84b439669fde27a29fa109b74f16a2c9a1b33c0b524b5a1e636", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000016fa49835863514f0f29b930b97f116935560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0a0454f7" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x76c6a52d" + "1992729901" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest370.json b/GeneralStateTests/stRandom/randomStatetest370.json index a46d07a03..49182fa81 100644 --- a/GeneralStateTests/stRandom/randomStatetest370.json +++ b/GeneralStateTests/stRandom/randomStatetest370.json @@ -2,92 +2,76 @@ "randomStatetest370" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest370Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x44207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001145344846604627f5560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "620442430", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999379557616", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xda70f5af0d1545ec9f0f0e28a55d3f2896bb3d64c71b4908f72ed26c345aafe4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xda70f5af0d1545ec9f0f0e28a55d3f2896bb3d64c71b4908f72ed26c345aafe4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xda70f5af0d1545ec9f0f0e28a55d3f2896bb3d64c71b4908f72ed26c345aafe4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xda70f5af0d1545ec9f0f0e28a55d3f2896bb3d64c71b4908f72ed26c345aafe4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xda70f5af0d1545ec9f0f0e28a55d3f2896bb3d64c71b4908f72ed26c345aafe4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "da70f5af0d1545ec9f0f0e28a55d3f2896bb3d64c71b4908f72ed26c345aafe4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x44207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001145344846604627f5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x24fb3310" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5d0da7de" + "1561176030" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest371.json b/GeneralStateTests/stRandom/randomStatetest371.json index 83a2c0d32..74f886de9 100644 --- a/GeneralStateTests/stRandom/randomStatetest371.json +++ b/GeneralStateTests/stRandom/randomStatetest371.json @@ -2,92 +2,78 @@ "randomStatetest371" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest371Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2118132562", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000435a10395560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xc350", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "81157", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997881786327", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc423d51eaf6dbbd7e5a6b50e586234769b868aee9c57a429ae654fdf380d9679", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc423d51eaf6dbbd7e5a6b50e586234769b868aee9c57a429ae654fdf380d9679", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc423d51eaf6dbbd7e5a6b50e586234769b868aee9c57a429ae654fdf380d9679", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc423d51eaf6dbbd7e5a6b50e586234769b868aee9c57a429ae654fdf380d9679", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc423d51eaf6dbbd7e5a6b50e586234769b868aee9c57a429ae654fdf380d9679", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c423d51eaf6dbbd7e5a6b50e586234769b868aee9c57a429ae654fdf380d9679", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000435a10395560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x0a06a6ed" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7e402352" + "2118132562" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest372.json b/GeneralStateTests/stRandom/randomStatetest372.json index aeacd979f..181bb144e 100644 --- a/GeneralStateTests/stRandom/randomStatetest372.json +++ b/GeneralStateTests/stRandom/randomStatetest372.json @@ -2,92 +2,77 @@ "randomStatetest372" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest372Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1833691657", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000001180860005155", + "nonce" : "0", + "storage" : { + "0x" : "0x945304eb96065b2a98b57a48a06ae28d285a71b4" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48938", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998166259451", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xab8453deeb0a31d5c4490cafdb3d25b180114ddbf82e0c51caac4660f8c6d11c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xab8453deeb0a31d5c4490cafdb3d25b180114ddbf82e0c51caac4660f8c6d11c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xab8453deeb0a31d5c4490cafdb3d25b180114ddbf82e0c51caac4660f8c6d11c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xab8453deeb0a31d5c4490cafdb3d25b180114ddbf82e0c51caac4660f8c6d11c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xab8453deeb0a31d5c4490cafdb3d25b180114ddbf82e0c51caac4660f8c6d11c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ab8453deeb0a31d5c4490cafdb3d25b180114ddbf82e0c51caac4660f8c6d11c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000001180860005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7ca7c859" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6d4bea09" + "1833691657" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest375.json b/GeneralStateTests/stRandom/randomStatetest375.json index 081308127..2907ca6ad 100644 --- a/GeneralStateTests/stRandom/randomStatetest375.json +++ b/GeneralStateTests/stRandom/randomStatetest375.json @@ -2,92 +2,78 @@ "randomStatetest375" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest375Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x414542084255", + "nonce" : "0", + "storage" : { + "0x01" : "0x00", + "0x03e8" : "0x00000000000000000000000000000000000000000000000080000000000003e7" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41130", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858916", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1bc18d528abd934d9eee8477dfb2e3b23e3975e7eb150c071b90777023e9165f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1bc18d528abd934d9eee8477dfb2e3b23e3975e7eb150c071b90777023e9165f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1bc18d528abd934d9eee8477dfb2e3b23e3975e7eb150c071b90777023e9165f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1bc18d528abd934d9eee8477dfb2e3b23e3975e7eb150c071b90777023e9165f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1bc18d528abd934d9eee8477dfb2e3b23e3975e7eb150c071b90777023e9165f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b2dc128feea95fa987aa090c16f5a0f50722601942c9861e790a8c242c5d8fb7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x414542084255", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +83,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest376.json b/GeneralStateTests/stRandom/randomStatetest376.json index 819975792..201d24a4b 100644 --- a/GeneralStateTests/stRandom/randomStatetest376.json +++ b/GeneralStateTests/stRandom/randomStatetest376.json @@ -2,92 +2,76 @@ "randomStatetest376" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest376Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1872596219", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "17276", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998127386551", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x531eb702868260d0ddc021b91e86d132954570a5c091a96e52d883565eab84e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x531eb702868260d0ddc021b91e86d132954570a5c091a96e52d883565eab84e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x71053be3181792ffce020f8f415fe7fd229df945834fa51c5845265a1a369d5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x71053be3181792ffce020f8f415fe7fd229df945834fa51c5845265a1a369d5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x531eb702868260d0ddc021b91e86d132954570a5c091a96e52d883565eab84e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "71053be3181792ffce020f8f415fe7fd229df945834fa51c5845265a1a369d5a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09ff8c316460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x7eee6f62" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6f9d8cfb" + "1872596219" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest377.json b/GeneralStateTests/stRandom/randomStatetest377.json index b86c528ed..5294ff37f 100644 --- a/GeneralStateTests/stRandom/randomStatetest377.json +++ b/GeneralStateTests/stRandom/randomStatetest377.json @@ -2,92 +2,78 @@ "randomStatetest377" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest377Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41444442444441450855", + "nonce" : "0", + "storage" : { + "0x03aace415245" : "0x00", + "0x71b4" : "0x0000000000000000000000000000000000000000000000000000000000020000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41138", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858908", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xaed5fc495bd33cc7ecb786bb4d004e28cbf4f276ac0394dea48736e6e099de38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xaed5fc495bd33cc7ecb786bb4d004e28cbf4f276ac0394dea48736e6e099de38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaed5fc495bd33cc7ecb786bb4d004e28cbf4f276ac0394dea48736e6e099de38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaed5fc495bd33cc7ecb786bb4d004e28cbf4f276ac0394dea48736e6e099de38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaed5fc495bd33cc7ecb786bb4d004e28cbf4f276ac0394dea48736e6e099de38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ee8e6e8cac9bc090f6dfc61dd8f81a849a5a71a997e2cbe6ad7c85025370a888", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41444442444441450855", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +83,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest378.json b/GeneralStateTests/stRandom/randomStatetest378.json index f004392d1..efc9edfe9 100644 --- a/GeneralStateTests/stRandom/randomStatetest378.json +++ b/GeneralStateTests/stRandom/randomStatetest378.json @@ -2,92 +2,77 @@ "randomStatetest378" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest378Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1675637682", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff547f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000005a7f00000000000000000000000000000000000000000000000000000000000000016f855b445834721a5706f2891711f0025560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x855b445834721a5706f2891711f00255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46344", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998324316020", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x20ed7b84b9e0866013555dcd212ac64eab72c87dabc69043db886c8a6e46276d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x20ed7b84b9e0866013555dcd212ac64eab72c87dabc69043db886c8a6e46276d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x651c0d574da652663c71b469cc52abfced88bb841aa6f3eb11ce76a80dc56a27", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x651c0d574da652663c71b469cc52abfced88bb841aa6f3eb11ce76a80dc56a27", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x20ed7b84b9e0866013555dcd212ac64eab72c87dabc69043db886c8a6e46276d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "651c0d574da652663c71b469cc52abfced88bb841aa6f3eb11ce76a80dc56a27", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff547f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000005a7f00000000000000000000000000000000000000000000000000000000000000016f855b445834721a5706f2891711f0025560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4961239b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x63e033b2" + "1675637682" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest379.json b/GeneralStateTests/stRandom/randomStatetest379.json index 3d0f35259..aaf7ec757 100644 --- a/GeneralStateTests/stRandom/randomStatetest379.json +++ b/GeneralStateTests/stRandom/randomStatetest379.json @@ -2,92 +2,78 @@ "randomStatetest379" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest379Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x424255", + "nonce" : "0", + "storage" : { + "0x01" : "0x00", + "0x3e8" : "0x00000000000000000000000000000000000000000000000000000000000003e8" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41118", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858928", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe29519e833ce786cbc42ddb84c659e91d2a059502ec40a8f6c142edba121282f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe29519e833ce786cbc42ddb84c659e91d2a059502ec40a8f6c142edba121282f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe29519e833ce786cbc42ddb84c659e91d2a059502ec40a8f6c142edba121282f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe29519e833ce786cbc42ddb84c659e91d2a059502ec40a8f6c142edba121282f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe29519e833ce786cbc42ddb84c659e91d2a059502ec40a8f6c142edba121282f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6072885a90efa3040ae08ac771d96b6ba10a975d5c2ed271cf675b268392d93a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x424255", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +83,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest38.json b/GeneralStateTests/stRandom/randomStatetest38.json index eb92d37ab..c91837447 100644 --- a/GeneralStateTests/stRandom/randomStatetest38.json +++ b/GeneralStateTests/stRandom/randomStatetest38.json @@ -2,92 +2,77 @@ "randomStatetest38" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest38Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41314555", + "nonce" : "0", + "storage" : { + "0x7fffffffffffffff" : "0x2e" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41138", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858908", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x403bcf9194306ccf769d84ca9b8b2d8cf6d97270c2a042c684463e5566e1028d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x403bcf9194306ccf769d84ca9b8b2d8cf6d97270c2a042c684463e5566e1028d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5cfd94217aa79e52dc7e8adc06d3125c65c5bcf3ae3dd46da6e742992318476b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5cfd94217aa79e52dc7e8adc06d3125c65c5bcf3ae3dd46da6e742992318476b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x403bcf9194306ccf769d84ca9b8b2d8cf6d97270c2a042c684463e5566e1028d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b053b0835b8da7f3a105910186ea3646d2f4b87a4f742e4950f6748a2cf8b4ae", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41314555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest380.json b/GeneralStateTests/stRandom/randomStatetest380.json index 986f85d89..c0fbd6d2b 100644 --- a/GeneralStateTests/stRandom/randomStatetest380.json +++ b/GeneralStateTests/stRandom/randomStatetest380.json @@ -2,92 +2,73 @@ "randomStatetest380" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest380Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5c6350e9e52816b1c58daf0e731a61e38d380c18598fb7d89f41f1cb0a84bec4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "628563350", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f967737653485593c63408b399439755560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x967737653485593c63408b3994397555" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49498", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999371387198", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5c6350e9e52816b1c58daf0e731a61e38d380c18598fb7d89f41f1cb0a84bec4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5c6350e9e52816b1c58daf0e731a61e38d380c18598fb7d89f41f1cb0a84bec4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5c6350e9e52816b1c58daf0e731a61e38d380c18598fb7d89f41f1cb0a84bec4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5c6350e9e52816b1c58daf0e731a61e38d380c18598fb7d89f41f1cb0a84bec4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, - "postStateRoot" : "5c6350e9e52816b1c58daf0e731a61e38d380c18598fb7d89f41f1cb0a84bec4", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f967737653485593c63408b399439755560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +80,12 @@ "gasLimit" : [ "0x261d71ac" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x25771d96" + "628563350" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest381.json b/GeneralStateTests/stRandom/randomStatetest381.json index 88046805d..ecd241e79 100644 --- a/GeneralStateTests/stRandom/randomStatetest381.json +++ b/GeneralStateTests/stRandom/randomStatetest381.json @@ -2,92 +2,77 @@ "randomStatetest381" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest381Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "756682627", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff417f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f098ba088881a64904570927a8618355560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x098ba088881a64904570927a86183555" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52057", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999243265362", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3a0e81d25c3fc7fcba17f4ba07b92c9ce0ed3a025c9e3e0b9bcc77b784b5e377", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3a0e81d25c3fc7fcba17f4ba07b92c9ce0ed3a025c9e3e0b9bcc77b784b5e377", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3a0e81d25c3fc7fcba17f4ba07b92c9ce0ed3a025c9e3e0b9bcc77b784b5e377", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3a0e81d25c3fc7fcba17f4ba07b92c9ce0ed3a025c9e3e0b9bcc77b784b5e377", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3a0e81d25c3fc7fcba17f4ba07b92c9ce0ed3a025c9e3e0b9bcc77b784b5e377", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3a0e81d25c3fc7fcba17f4ba07b92c9ce0ed3a025c9e3e0b9bcc77b784b5e377", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff417f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f098ba088881a64904570927a8618355560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x27abd027" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2d1a0f83" + "756682627" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest382.json b/GeneralStateTests/stRandom/randomStatetest382.json index 3801649ba..dbf58059d 100644 --- a/GeneralStateTests/stRandom/randomStatetest382.json +++ b/GeneralStateTests/stRandom/randomStatetest382.json @@ -2,92 +2,77 @@ "randomStatetest382" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest382Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "883821556", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0855", + "nonce" : "0", + "storage" : { + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "53466", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999116125024", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x0fce8a4d998d02b8ba87e92ab5e5ab32192552eca0c477899b47c09a4c6bc3e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0fce8a4d998d02b8ba87e92ab5e5ab32192552eca0c477899b47c09a4c6bc3e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0fce8a4d998d02b8ba87e92ab5e5ab32192552eca0c477899b47c09a4c6bc3e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0fce8a4d998d02b8ba87e92ab5e5ab32192552eca0c477899b47c09a4c6bc3e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0fce8a4d998d02b8ba87e92ab5e5ab32192552eca0c477899b47c09a4c6bc3e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0fce8a4d998d02b8ba87e92ab5e5ab32192552eca0c477899b47c09a4c6bc3e9", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0855", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x105022a2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x34ae0bf4" + "883821556" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest383.json b/GeneralStateTests/stRandom/randomStatetest383.json index 006f0cdfa..3a7edaa34 100644 --- a/GeneralStateTests/stRandom/randomStatetest383.json +++ b/GeneralStateTests/stRandom/randomStatetest383.json @@ -2,92 +2,77 @@ "randomStatetest383" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest383Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1668923511", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09150255436c75107e", + "nonce" : "0", + "storage" : { + "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "55047", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998331021488", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd3e870b4b6e45a9fed4ba0a886ca28c2cc0eb89ecdeb3e595918bd726002cf73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd3e870b4b6e45a9fed4ba0a886ca28c2cc0eb89ecdeb3e595918bd726002cf73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd3e870b4b6e45a9fed4ba0a886ca28c2cc0eb89ecdeb3e595918bd726002cf73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd3e870b4b6e45a9fed4ba0a886ca28c2cc0eb89ecdeb3e595918bd726002cf73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd3e870b4b6e45a9fed4ba0a886ca28c2cc0eb89ecdeb3e595918bd726002cf73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d3e870b4b6e45a9fed4ba0a886ca28c2cc0eb89ecdeb3e595918bd726002cf73", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09150255436c75107e", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3d488ccc" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6379c077" + "1668923511" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest384.json b/GeneralStateTests/stRandom/randomStatetest384.json index 8784267b2..72cc3f686 100644 --- a/GeneralStateTests/stRandom/randomStatetest384.json +++ b/GeneralStateTests/stRandom/randomStatetest384.json @@ -2,92 +2,77 @@ "randomStatetest384" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest384Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2066470732", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f16133502727c0a7f679b456df093576360005155", + "nonce" : "0", + "storage" : { + "0x" : "0x16133502727c0a7f679b456df0935763" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51671", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997933477643", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc72668f3c45d35c29f24c2874907ef438b16e2954c414a08325e412cd199a526", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc72668f3c45d35c29f24c2874907ef438b16e2954c414a08325e412cd199a526", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc72668f3c45d35c29f24c2874907ef438b16e2954c414a08325e412cd199a526", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc72668f3c45d35c29f24c2874907ef438b16e2954c414a08325e412cd199a526", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc72668f3c45d35c29f24c2874907ef438b16e2954c414a08325e412cd199a526", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c72668f3c45d35c29f24c2874907ef438b16e2954c414a08325e412cd199a526", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f16133502727c0a7f679b456df093576360005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x35079d6f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7b2bd74c" + "2066470732" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest385.json b/GeneralStateTests/stRandom/randomStatetest385.json index 99fa5d840..cc7b7c399 100644 --- a/GeneralStateTests/stRandom/randomStatetest385.json +++ b/GeneralStateTests/stRandom/randomStatetest385.json @@ -2,92 +2,77 @@ "randomStatetest385" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest385Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "768381138", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5547f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f785188182063156955631a7a85093a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x785188182063156955631a7a85093a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48642", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999231570266", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc099377e52707e76b36c71d391f0e4d47de090e038aaec2ae73c5cd584a15e95", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc099377e52707e76b36c71d391f0e4d47de090e038aaec2ae73c5cd584a15e95", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1b0a532a118d830d15b218ecca2266ab8d46ea478f52c757acaf547167043e00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1b0a532a118d830d15b218ecca2266ab8d46ea478f52c757acaf547167043e00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc099377e52707e76b36c71d391f0e4d47de090e038aaec2ae73c5cd584a15e95", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1b0a532a118d830d15b218ecca2266ab8d46ea478f52c757acaf547167043e00", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5547f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f785188182063156955631a7a85093a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5c05ce5e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2dcc90d2" + "768381138" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest386.json b/GeneralStateTests/stRandom/randomStatetest386.json index e580a8596..21760a6ea 100644 --- a/GeneralStateTests/stRandom/randomStatetest386.json +++ b/GeneralStateTests/stRandom/randomStatetest386.json @@ -2,92 +2,77 @@ "randomStatetest386" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest386Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "433564740", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff047f000000000000000000000000000000000000000000000000000000000000000105133641010b811160005155", + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48531", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999566386775", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x50e2af1155fb85652e8831e0bee5ad482a4d4ca1e5eb37320c4e9ed5dacb6ba1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x50e2af1155fb85652e8831e0bee5ad482a4d4ca1e5eb37320c4e9ed5dacb6ba1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x50e2af1155fb85652e8831e0bee5ad482a4d4ca1e5eb37320c4e9ed5dacb6ba1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x50e2af1155fb85652e8831e0bee5ad482a4d4ca1e5eb37320c4e9ed5dacb6ba1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x50e2af1155fb85652e8831e0bee5ad482a4d4ca1e5eb37320c4e9ed5dacb6ba1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "50e2af1155fb85652e8831e0bee5ad482a4d4ca1e5eb37320c4e9ed5dacb6ba1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff047f000000000000000000000000000000000000000000000000000000000000000105133641010b811160005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3a2ba3d9" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x19d7ac44" + "433564740" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest387.json b/GeneralStateTests/stRandom/randomStatetest387.json index 7bed10f49..e4343b5e9 100644 --- a/GeneralStateTests/stRandom/randomStatetest387.json +++ b/GeneralStateTests/stRandom/randomStatetest387.json @@ -2,92 +2,76 @@ "randomStatetest387" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest387Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1650737351", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350617e7608617c95f3ff584076e07b5a4460005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "68319", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998349194376", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350617e7608617c95f3ff584076e07b5a4460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x21929afe" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x626440c7" + "1650737351" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest388.json b/GeneralStateTests/stRandom/randomStatetest388.json index 8cc775956..bd78b0d37 100644 --- a/GeneralStateTests/stRandom/randomStatetest388.json +++ b/GeneralStateTests/stRandom/randomStatetest388.json @@ -2,92 +2,77 @@ "randomStatetest388" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest388Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1175166777", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5765b8f743b9979a0905b6a18916560005155", + "nonce" : "0", + "storage" : { + "0xb5765b8f743b9979a0905b6a189165600051" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51910", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998824781359", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9cf51b1502d3a80607dc5c79398d264dde12159a880da85ecdac1e5c4b0f262a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9cf51b1502d3a80607dc5c79398d264dde12159a880da85ecdac1e5c4b0f262a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9cf51b1502d3a80607dc5c79398d264dde12159a880da85ecdac1e5c4b0f262a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9cf51b1502d3a80607dc5c79398d264dde12159a880da85ecdac1e5c4b0f262a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9cf51b1502d3a80607dc5c79398d264dde12159a880da85ecdac1e5c4b0f262a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9cf51b1502d3a80607dc5c79398d264dde12159a880da85ecdac1e5c4b0f262a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5765b8f743b9979a0905b6a18916560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7f19d979" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x460b9f39" + "1175166777" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest389.json b/GeneralStateTests/stRandom/randomStatetest389.json index dd7db4629..4d72e2cf0 100644 --- a/GeneralStateTests/stRandom/randomStatetest389.json +++ b/GeneralStateTests/stRandom/randomStatetest389.json @@ -2,92 +2,77 @@ "randomStatetest389" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest389Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1542544795", + "code" : "0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3503a86385458123760005155", + "nonce" : "0", + "storage" : { + "0x" : "0xc350" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48501", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998457406750", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7f7c85b99d5319aa5f495d3b41a18bc4b7f37ada40511f3beb65b3513d8c964c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7f7c85b99d5319aa5f495d3b41a18bc4b7f37ada40511f3beb65b3513d8c964c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd4ec65fdf642a75563b30e489ef2c55da2c2e7363d5a720bd8db57557025187e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd4ec65fdf642a75563b30e489ef2c55da2c2e7363d5a720bd8db57557025187e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7f7c85b99d5319aa5f495d3b41a18bc4b7f37ada40511f3beb65b3513d8c964c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d4ec65fdf642a75563b30e489ef2c55da2c2e7363d5a720bd8db57557025187e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3503a86385458123760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x36288a4f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5bf15d9b" + "1542544795" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest39.json b/GeneralStateTests/stRandom/randomStatetest39.json index d7dc1cfe9..d6b89ffe9 100644 --- a/GeneralStateTests/stRandom/randomStatetest39.json +++ b/GeneralStateTests/stRandom/randomStatetest39.json @@ -2,92 +2,78 @@ "randomStatetest39" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest39Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "272686139", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff427f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9604638ea2179a58035560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x010000000000000000000000000000000000000000", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff715de955" : "0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "70826", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999727243081", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5383b0c9ccf1a4e7b1ce537f127270d8a197322e8891282f07232591b0c885c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5383b0c9ccf1a4e7b1ce537f127270d8a197322e8891282f07232591b0c885c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5383b0c9ccf1a4e7b1ce537f127270d8a197322e8891282f07232591b0c885c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5383b0c9ccf1a4e7b1ce537f127270d8a197322e8891282f07232591b0c885c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5383b0c9ccf1a4e7b1ce537f127270d8a197322e8891282f07232591b0c885c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5383b0c9ccf1a4e7b1ce537f127270d8a197322e8891282f07232591b0c885c3", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff427f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9604638ea2179a58035560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x114273c8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1040dc3b" + "272686139" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest391.json b/GeneralStateTests/stRandom/randomStatetest391.json index 8c41d96e0..0ecf73f3f 100644 --- a/GeneralStateTests/stRandom/randomStatetest391.json +++ b/GeneralStateTests/stRandom/randomStatetest391.json @@ -2,17 +2,53 @@ "randomStatetest391" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest391Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x454143414543424131a4", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "31126", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999868920", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -27,78 +63,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd41932342e522a55d398ef0188d456f78e0b58d0bf0312df291cf59941c19c13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd41932342e522a55d398ef0188d456f78e0b58d0bf0312df291cf59941c19c13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x686bc20702951e42d9d0269a9bb816679d0539ec598e3041af3fa815acb90d2c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x686bc20702951e42d9d0269a9bb816679d0539ec598e3041af3fa815acb90d2c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd41932342e522a55d398ef0188d456f78e0b58d0bf0312df291cf59941c19c13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ebc5109105b629b75811290112a64b8e4748887e82af62ab3bdf88e33b4834d4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x454143414543424131a4", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -108,14 +92,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest393.json b/GeneralStateTests/stRandom/randomStatetest393.json index cc78ee08b..612dd4d61 100644 --- a/GeneralStateTests/stRandom/randomStatetest393.json +++ b/GeneralStateTests/stRandom/randomStatetest393.json @@ -2,92 +2,76 @@ "randomStatetest393" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest393Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20b39838f628b96846cff0455", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1869556482", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998130443564", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x913792f777fb1b2537eef57d043131df032838d246b94ade5b4b33e8cb140412", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x913792f777fb1b2537eef57d043131df032838d246b94ade5b4b33e8cb140412", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x913792f777fb1b2537eef57d043131df032838d246b94ade5b4b33e8cb140412", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x913792f777fb1b2537eef57d043131df032838d246b94ade5b4b33e8cb140412", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x913792f777fb1b2537eef57d043131df032838d246b94ade5b4b33e8cb140412", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "913792f777fb1b2537eef57d043131df032838d246b94ade5b4b33e8cb140412", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20b39838f628b96846cff0455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x6f6f2ad4" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1d3bba19" + "490453529" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest395.json b/GeneralStateTests/stRandom/randomStatetest395.json index 2d73583eb..1067163d3 100644 --- a/GeneralStateTests/stRandom/randomStatetest395.json +++ b/GeneralStateTests/stRandom/randomStatetest395.json @@ -2,92 +2,77 @@ "randomStatetest395" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest395Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1520198127", + "code" : "0x447f0000000000000000000000000000000000000000000000000000000000000001417f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f823140710bf13990e4500136726d8b5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x823140710bf13990e4500136726d8b55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47064", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998479754855", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5db29c0affb30afc4d2d717cbaa2fc41b44793765b71a37a8c97c738ee9431c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5db29c0affb30afc4d2d717cbaa2fc41b44793765b71a37a8c97c738ee9431c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5db29c0affb30afc4d2d717cbaa2fc41b44793765b71a37a8c97c738ee9431c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5db29c0affb30afc4d2d717cbaa2fc41b44793765b71a37a8c97c738ee9431c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5db29c0affb30afc4d2d717cbaa2fc41b44793765b71a37a8c97c738ee9431c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5db29c0affb30afc4d2d717cbaa2fc41b44793765b71a37a8c97c738ee9431c1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x447f0000000000000000000000000000000000000000000000000000000000000001417f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f823140710bf13990e4500136726d8b5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4f2b2a3f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5a9c61ef" + "1520198127" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest396.json b/GeneralStateTests/stRandom/randomStatetest396.json index a96c6f61f..75d66640e 100644 --- a/GeneralStateTests/stRandom/randomStatetest396.json +++ b/GeneralStateTests/stRandom/randomStatetest396.json @@ -2,91 +2,75 @@ "randomStatetest396" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest396Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x4ca4d183", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001719f197c5560005155", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x7b41", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b35abeb36a", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x03d2799b460b160c9f55e5b7e817535b133363d8eb548afffc359d8beeff6d41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x03d2799b460b160c9f55e5b7e817535b133363d8eb548afffc359d8beeff6d41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x03d2799b460b160c9f55e5b7e817535b133363d8eb548afffc359d8beeff6d41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x03d2799b460b160c9f55e5b7e817535b133363d8eb548afffc359d8beeff6d41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x03d2799b460b160c9f55e5b7e817535b133363d8eb548afffc359d8beeff6d41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "03d2799b460b160c9f55e5b7e817535b133363d8eb548afffc359d8beeff6d41", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001719f197c5560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x4ca4d183" ] diff --git a/GeneralStateTests/stRandom/randomStatetest397.json b/GeneralStateTests/stRandom/randomStatetest397.json index e00958d1d..2441d0bbf 100644 --- a/GeneralStateTests/stRandom/randomStatetest397.json +++ b/GeneralStateTests/stRandom/randomStatetest397.json @@ -2,92 +2,76 @@ "randomStatetest397" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest397Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x413443f3404242433389ff723810", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49583", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999850463", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0x48c91e076cd24e5f58e55f430004dcf79c3edbcc1f65b79d990ffce5182bc572", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x48c91e076cd24e5f58e55f430004dcf79c3edbcc1f65b79d990ffce5182bc572", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x48c91e076cd24e5f58e55f430004dcf79c3edbcc1f65b79d990ffce5182bc572", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x48c91e076cd24e5f58e55f430004dcf79c3edbcc1f65b79d990ffce5182bc572", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x48c91e076cd24e5f58e55f430004dcf79c3edbcc1f65b79d990ffce5182bc572", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "921517cc33b5f4267a76b110e54b0578754d4ffb748085d8b4ed4195ad2d0af9", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x413443f3404242433389ff723810", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest398.json b/GeneralStateTests/stRandom/randomStatetest398.json index 5a986da47..e5f91fc92 100644 --- a/GeneralStateTests/stRandom/randomStatetest398.json +++ b/GeneralStateTests/stRandom/randomStatetest398.json @@ -2,92 +2,77 @@ "randomStatetest398" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest398Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "110765790", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f3781413b695a69079d7f51058292075560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x3781413b695a69079d7f510582920755" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49420", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999889184836", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdc86a470e1deaa6f5d319ee7c1016da9f8192a192c71b19c2a01c33a82751d1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdc86a470e1deaa6f5d319ee7c1016da9f8192a192c71b19c2a01c33a82751d1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc86a470e1deaa6f5d319ee7c1016da9f8192a192c71b19c2a01c33a82751d1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc86a470e1deaa6f5d319ee7c1016da9f8192a192c71b19c2a01c33a82751d1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdc86a470e1deaa6f5d319ee7c1016da9f8192a192c71b19c2a01c33a82751d1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "dc86a470e1deaa6f5d319ee7c1016da9f8192a192c71b19c2a01c33a82751d1d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f3781413b695a69079d7f51058292075560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x222e70fb" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x069a26de" + "110765790" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest399.json b/GeneralStateTests/stRandom/randomStatetest399.json index bad3ab0c5..140dbdc99 100644 --- a/GeneralStateTests/stRandom/randomStatetest399.json +++ b/GeneralStateTests/stRandom/randomStatetest399.json @@ -2,92 +2,77 @@ "randomStatetest399" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest399Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "546942842", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4544437f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f98324016076d428a9898129b16849a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x98324016076d428a9898129b16849a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49559", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999453007645", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd40e134865236b60c77d5ee5d4a8ca45e30e9fbc4eaad3b0be0d9de0b1dc711c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd40e134865236b60c77d5ee5d4a8ca45e30e9fbc4eaad3b0be0d9de0b1dc711c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd40e134865236b60c77d5ee5d4a8ca45e30e9fbc4eaad3b0be0d9de0b1dc711c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd40e134865236b60c77d5ee5d4a8ca45e30e9fbc4eaad3b0be0d9de0b1dc711c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd40e134865236b60c77d5ee5d4a8ca45e30e9fbc4eaad3b0be0d9de0b1dc711c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d40e134865236b60c77d5ee5d4a8ca45e30e9fbc4eaad3b0be0d9de0b1dc711c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4544437f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f98324016076d428a9898129b16849a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x03dc1685" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2099af7a" + "546942842" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest4.json b/GeneralStateTests/stRandom/randomStatetest4.json index 3f432cd04..30e11e61b 100644 --- a/GeneralStateTests/stRandom/randomStatetest4.json +++ b/GeneralStateTests/stRandom/randomStatetest4.json @@ -2,92 +2,76 @@ "randomStatetest4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest4Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1650737351", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350617e7608617c95f3ff584076e07b5a4460005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "68319", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998349194376", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7a8213cd835a09716c205b55f6e6246197ac00db46791920e570f4c45d9fd804", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350617e7608617c95f3ff584076e07b5a4460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x21929afe" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x626440c7" + "1650737351" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest401.json b/GeneralStateTests/stRandom/randomStatetest401.json index 414d77dfb..9cac29118 100644 --- a/GeneralStateTests/stRandom/randomStatetest401.json +++ b/GeneralStateTests/stRandom/randomStatetest401.json @@ -2,92 +2,69 @@ "randomStatetest401" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest401Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "588206237", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999411793809", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4e4defc8cf2721933e6cfe6a9caf3e245d6bef80f17d0dcc7c4de5a5ecfe905f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4e4defc8cf2721933e6cfe6a9caf3e245d6bef80f17d0dcc7c4de5a5ecfe905f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5c9b979f87462dd87963b4ffd16aea0840b81ea4cc6b6d7f19a7241d1c4b54e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5c9b979f87462dd87963b4ffd16aea0840b81ea4cc6b6d7f19a7241d1c4b54e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4e4defc8cf2721933e6cfe6a9caf3e245d6bef80f17d0dcc7c4de5a5ecfe905f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5c9b979f87462dd87963b4ffd16aea0840b81ea4cc6b6d7f19a7241d1c4b54e8", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c35044427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5ff60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +76,12 @@ "gasLimit" : [ "0x1bc87846" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x230f1c8e" + "588192910" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest402.json b/GeneralStateTests/stRandom/randomStatetest402.json index 302bc9bdf..bba24308e 100644 --- a/GeneralStateTests/stRandom/randomStatetest402.json +++ b/GeneralStateTests/stRandom/randomStatetest402.json @@ -2,92 +2,77 @@ "randomStatetest402" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest402Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "938198850", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000006f62138c87028162ea32a2db7e3010045560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x62138c87028162ea32a2db7e30100455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47129", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999061754067", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x0cf75cab1dfb6832b8df06726838748e766e31824d2487a08dd87360905fd990", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0cf75cab1dfb6832b8df06726838748e766e31824d2487a08dd87360905fd990", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0cf75cab1dfb6832b8df06726838748e766e31824d2487a08dd87360905fd990", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0cf75cab1dfb6832b8df06726838748e766e31824d2487a08dd87360905fd990", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0cf75cab1dfb6832b8df06726838748e766e31824d2487a08dd87360905fd990", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0cf75cab1dfb6832b8df06726838748e766e31824d2487a08dd87360905fd990", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000006f62138c87028162ea32a2db7e3010045560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x63b233fa" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x37ebc742" + "938198850" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest404.json b/GeneralStateTests/stRandom/randomStatetest404.json index c716771fc..9ebd3b412 100644 --- a/GeneralStateTests/stRandom/randomStatetest404.json +++ b/GeneralStateTests/stRandom/randomStatetest404.json @@ -2,92 +2,72 @@ "randomStatetest404" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest404Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe8dbd20c0ca9c7daab8dc415e43f312f4fcd38b250500f7b66ba86ae5b7270a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "108687806", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6a7f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff906606425655", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "30960", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999891281280", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe8dbd20c0ca9c7daab8dc415e43f312f4fcd38b250500f7b66ba86ae5b7270a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe8dbd20c0ca9c7daab8dc415e43f312f4fcd38b250500f7b66ba86ae5b7270a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe8dbd20c0ca9c7daab8dc415e43f312f4fcd38b250500f7b66ba86ae5b7270a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe8dbd20c0ca9c7daab8dc415e43f312f4fcd38b250500f7b66ba86ae5b7270a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, - "postStateRoot" : "e8dbd20c0ca9c7daab8dc415e43f312f4fcd38b250500f7b66ba86ae5b7270a6", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6a7f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff906606425655", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +79,12 @@ "gasLimit" : [ "0x2ab6153e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x067a71be" + "108687806" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest405.json b/GeneralStateTests/stRandom/randomStatetest405.json index 14485aae4..15ba7927a 100644 --- a/GeneralStateTests/stRandom/randomStatetest405.json +++ b/GeneralStateTests/stRandom/randomStatetest405.json @@ -2,92 +2,77 @@ "randomStatetest405" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest405Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "274296751", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff44457f0000000000000000000000010000000000000000000000000000000000000000037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f318d0707977199361171756f6d458e5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x318d0707977199361171756f6d458e55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51608", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999725651687", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x13669b049ed0e7ef122e0d8df02524728ffbcdb5d19608036f6e9b76316490ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x13669b049ed0e7ef122e0d8df02524728ffbcdb5d19608036f6e9b76316490ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x13669b049ed0e7ef122e0d8df02524728ffbcdb5d19608036f6e9b76316490ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x13669b049ed0e7ef122e0d8df02524728ffbcdb5d19608036f6e9b76316490ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x13669b049ed0e7ef122e0d8df02524728ffbcdb5d19608036f6e9b76316490ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "13669b049ed0e7ef122e0d8df02524728ffbcdb5d19608036f6e9b76316490ec", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff44457f0000000000000000000000010000000000000000000000000000000000000000037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f318d0707977199361171756f6d458e5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3a821b80" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x10596faf" + "274296751" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest406.json b/GeneralStateTests/stRandom/randomStatetest406.json index 854025ee0..e1dcc874b 100644 --- a/GeneralStateTests/stRandom/randomStatetest406.json +++ b/GeneralStateTests/stRandom/randomStatetest406.json @@ -2,92 +2,78 @@ "randomStatetest406" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest406Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1160230573", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b58b8e99f33c647165337e389f7b9c909cba5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0xb58b8e99f33c647165337e389f7b9c909cba" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "71412", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998839698061", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5b3d7a170b017a92657d047bc8559cd1320bea23fa11f91bfbec6aa130baa51e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5b3d7a170b017a92657d047bc8559cd1320bea23fa11f91bfbec6aa130baa51e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5b3d7a170b017a92657d047bc8559cd1320bea23fa11f91bfbec6aa130baa51e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5b3d7a170b017a92657d047bc8559cd1320bea23fa11f91bfbec6aa130baa51e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5b3d7a170b017a92657d047bc8559cd1320bea23fa11f91bfbec6aa130baa51e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5b3d7a170b017a92657d047bc8559cd1320bea23fa11f91bfbec6aa130baa51e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b58b8e99f33c647165337e389f7b9c909cba5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x0e167dc4" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4527b6ad" + "1160230573" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest407.json b/GeneralStateTests/stRandom/randomStatetest407.json index a3d37d83f..f40d08105 100644 --- a/GeneralStateTests/stRandom/randomStatetest407.json +++ b/GeneralStateTests/stRandom/randomStatetest407.json @@ -2,92 +2,77 @@ "randomStatetest407" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest407Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "825575416", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f6d71656f054471181163037902615b5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x6d71656f054471181163037902615b55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50264", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999174374366", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5fd926e9068346eed68c4931137dc6f50b367e3d97c0ba0b73303d2ec858dc93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5fd926e9068346eed68c4931137dc6f50b367e3d97c0ba0b73303d2ec858dc93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5fd926e9068346eed68c4931137dc6f50b367e3d97c0ba0b73303d2ec858dc93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5fd926e9068346eed68c4931137dc6f50b367e3d97c0ba0b73303d2ec858dc93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5fd926e9068346eed68c4931137dc6f50b367e3d97c0ba0b73303d2ec858dc93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5fd926e9068346eed68c4931137dc6f50b367e3d97c0ba0b73303d2ec858dc93", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f6d71656f054471181163037902615b5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4bd85812" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x313547f8" + "825575416" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest408.json b/GeneralStateTests/stRandom/randomStatetest408.json index 81382ddf2..0cb0530df 100644 --- a/GeneralStateTests/stRandom/randomStatetest408.json +++ b/GeneralStateTests/stRandom/randomStatetest408.json @@ -2,92 +2,77 @@ "randomStatetest408" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest408Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1672298879", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f80656e8e6478946a323482135a8bf75560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x80656e8e6478946a323482135a8bf755" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52505", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998327648662", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc79d6c35a7ac2f985201476e6fc4eb6df6e97d04afaeeca553433e2240b18541", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc79d6c35a7ac2f985201476e6fc4eb6df6e97d04afaeeca553433e2240b18541", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc79d6c35a7ac2f985201476e6fc4eb6df6e97d04afaeeca553433e2240b18541", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc79d6c35a7ac2f985201476e6fc4eb6df6e97d04afaeeca553433e2240b18541", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc79d6c35a7ac2f985201476e6fc4eb6df6e97d04afaeeca553433e2240b18541", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c79d6c35a7ac2f985201476e6fc4eb6df6e97d04afaeeca553433e2240b18541", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe447f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f80656e8e6478946a323482135a8bf75560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x735c9a80" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x63ad417f" + "1672298879" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest409.json b/GeneralStateTests/stRandom/randomStatetest409.json index 49ff8fa97..22d638c7d 100644 --- a/GeneralStateTests/stRandom/randomStatetest409.json +++ b/GeneralStateTests/stRandom/randomStatetest409.json @@ -2,92 +2,76 @@ "randomStatetest409" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest409Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "16207", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998909297756", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "1090686083", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x48054fd1e6d8d82022d7db5efa05905a8cb4d73a47d702980f6d99875b90561f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x48054fd1e6d8d82022d7db5efa05905a8cb4d73a47d702980f6d99875b90561f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa3642c82242785b6ad9f88ff2420270c180517642c440708af090ac159cc0178", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa3642c82242785b6ad9f88ff2420270c180517642c440708af090ac159cc0178", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x48054fd1e6d8d82022d7db5efa05905a8cb4d73a47d702980f6d99875b90561f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a3642c82242785b6ad9f88ff2420270c180517642c440708af090ac159cc0178", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x5b7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000001000000000000000000000000000000000000000009ff511287868833063aa3579d8e585560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x496e10c6" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x41028c83" + "1090686083" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest41.json b/GeneralStateTests/stRandom/randomStatetest41.json index 78c5563f8..c3404e865 100644 --- a/GeneralStateTests/stRandom/randomStatetest41.json +++ b/GeneralStateTests/stRandom/randomStatetest41.json @@ -2,92 +2,77 @@ "randomStatetest41" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest41Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "78505988", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350517f0000000000000000000000010000000000000000000000000000000000000000417f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56a84a10719a1786a6510349b028255", + "nonce" : "0", + "storage" : { + "0x010000000000000000000000000000000000000000" : "0x4cd81adcb05087c4859b28e08fedc25944c5e206071ceafb0ef91f522b9c97" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "58125", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999921435933", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9dbd196eaab53d90b7c8d17bac0fd4dfcaa2876ceddf29cd5aae323305058730", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9dbd196eaab53d90b7c8d17bac0fd4dfcaa2876ceddf29cd5aae323305058730", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9dbd196eaab53d90b7c8d17bac0fd4dfcaa2876ceddf29cd5aae323305058730", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9dbd196eaab53d90b7c8d17bac0fd4dfcaa2876ceddf29cd5aae323305058730", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9dbd196eaab53d90b7c8d17bac0fd4dfcaa2876ceddf29cd5aae323305058730", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9dbd196eaab53d90b7c8d17bac0fd4dfcaa2876ceddf29cd5aae323305058730", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350517f0000000000000000000000010000000000000000000000000000000000000000417f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56a84a10719a1786a6510349b028255", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3cd14fc1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x04ade804" + "78505988" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest410.json b/GeneralStateTests/stRandom/randomStatetest410.json index 3d3e48bbc..809979f0c 100644 --- a/GeneralStateTests/stRandom/randomStatetest410.json +++ b/GeneralStateTests/stRandom/randomStatetest410.json @@ -2,92 +2,76 @@ "randomStatetest410" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest410Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1969973721", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000045086201771880f35560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "116938", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998029909387", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0xcb0b378007773f83910fc6d961638b346e88bd701d4bb53909f668245000c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcb0b378007773f83910fc6d961638b346e88bd701d4bb53909f668245000c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcb0b378007773f83910fc6d961638b346e88bd701d4bb53909f668245000c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcb0b378007773f83910fc6d961638b346e88bd701d4bb53909f668245000c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcb0b378007773f83910fc6d961638b346e88bd701d4bb53909f668245000c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "cb0b378007773f83910fc6d961638b346e88bd701d4bb53909f668245000c803", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000045086201771880f35560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x090f60db" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x756b69d9" + "1969973721" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest411.json b/GeneralStateTests/stRandom/randomStatetest411.json index 1cf5c48e1..d766ac0b2 100644 --- a/GeneralStateTests/stRandom/randomStatetest411.json +++ b/GeneralStateTests/stRandom/randomStatetest411.json @@ -2,92 +2,77 @@ "randomStatetest411" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest411Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2119897718", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006f44a17892738b6895619d7a93507d649d60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x44a17892738b6895619d7a93507d649d" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51024", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997880051304", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xadc5c1d004f4e4bbe97cc81d123cc14a13a8dc9976cae32cbe141d22371485a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xadc5c1d004f4e4bbe97cc81d123cc14a13a8dc9976cae32cbe141d22371485a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xadc5c1d004f4e4bbe97cc81d123cc14a13a8dc9976cae32cbe141d22371485a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xadc5c1d004f4e4bbe97cc81d123cc14a13a8dc9976cae32cbe141d22371485a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xadc5c1d004f4e4bbe97cc81d123cc14a13a8dc9976cae32cbe141d22371485a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "adc5c1d004f4e4bbe97cc81d123cc14a13a8dc9976cae32cbe141d22371485a8", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006f44a17892738b6895619d7a93507d649d60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5cc6a932" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7e5b1276" + "2119897718" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest412.json b/GeneralStateTests/stRandom/randomStatetest412.json index edbb25c22..d9194858a 100644 --- a/GeneralStateTests/stRandom/randomStatetest412.json +++ b/GeneralStateTests/stRandom/randomStatetest412.json @@ -2,92 +2,77 @@ "randomStatetest412" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest412Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "123532973", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6fa46ef06a5a858b9742198a37e1153c5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xa46ef06a5a858b9742198a37e1153c55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51162", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999876415911", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb6f2b83d7d011223530fd68eca045c15f14695912c333d9b527f57691baf9933", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb6f2b83d7d011223530fd68eca045c15f14695912c333d9b527f57691baf9933", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb6f2b83d7d011223530fd68eca045c15f14695912c333d9b527f57691baf9933", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb6f2b83d7d011223530fd68eca045c15f14695912c333d9b527f57691baf9933", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb6f2b83d7d011223530fd68eca045c15f14695912c333d9b527f57691baf9933", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b6f2b83d7d011223530fd68eca045c15f14695912c333d9b527f57691baf9933", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6fa46ef06a5a858b9742198a37e1153c5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x324751e0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x075cf6ad" + "123532973" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest413.json b/GeneralStateTests/stRandom/randomStatetest413.json index 5a73a2b05..92fd48174 100644 --- a/GeneralStateTests/stRandom/randomStatetest413.json +++ b/GeneralStateTests/stRandom/randomStatetest413.json @@ -2,92 +2,77 @@ "randomStatetest413" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest413Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1206033425", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe037f00000000000000000000000000000000000000000000000000000000000000016f086e2055149345ad1a018b063708145560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x086e2055149345ad1a018b0637081455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47635", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998793918986", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8595f9353b25b446f86f9d81ad2174b1382b25f87c185e792377d2e7119a8ddf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8595f9353b25b446f86f9d81ad2174b1382b25f87c185e792377d2e7119a8ddf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8595f9353b25b446f86f9d81ad2174b1382b25f87c185e792377d2e7119a8ddf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8595f9353b25b446f86f9d81ad2174b1382b25f87c185e792377d2e7119a8ddf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8595f9353b25b446f86f9d81ad2174b1382b25f87c185e792377d2e7119a8ddf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8595f9353b25b446f86f9d81ad2174b1382b25f87c185e792377d2e7119a8ddf", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe037f00000000000000000000000000000000000000000000000000000000000000016f086e2055149345ad1a018b063708145560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x63aead26" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x47e29c11" + "1206033425" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest414.json b/GeneralStateTests/stRandom/randomStatetest414.json index 8afc29aa8..ba712cabc 100644 --- a/GeneralStateTests/stRandom/randomStatetest414.json +++ b/GeneralStateTests/stRandom/randomStatetest414.json @@ -2,92 +2,76 @@ "randomStatetest414" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest414Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1088932905", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6251437f0000000000000000000000010000000000000000000000000000000000000000437f000000000000000000000000fffffffffffffffffffffffffffffffffffffffff11460005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "25440", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998911041701", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdab455db73ff719b0c2c947098879612bd577d7d600a849526ef17dde23bbfc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdab455db73ff719b0c2c947098879612bd577d7d600a849526ef17dde23bbfc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdab455db73ff719b0c2c947098879612bd577d7d600a849526ef17dde23bbfc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdab455db73ff719b0c2c947098879612bd577d7d600a849526ef17dde23bbfc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdab455db73ff719b0c2c947098879612bd577d7d600a849526ef17dde23bbfc8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "dab455db73ff719b0c2c947098879612bd577d7d600a849526ef17dde23bbfc8", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6251437f0000000000000000000000010000000000000000000000000000000000000000437f000000000000000000000000fffffffffffffffffffffffffffffffffffffffff11460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x487b0e6d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x40e7cc29" + "1088932905" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest415.json b/GeneralStateTests/stRandom/randomStatetest415.json index 550279e56..cea308080 100644 --- a/GeneralStateTests/stRandom/randomStatetest415.json +++ b/GeneralStateTests/stRandom/randomStatetest415.json @@ -2,100 +2,72 @@ "randomStatetest415" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest415Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ + "expect" : [ { - "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "bloom" : "00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040080000000000000000000000000000000000000000000000000000", - "data" : "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "topics" : [ - "000000000000000000000000ffffffffffffffffffffffffffffffffffffffff" - ] - } - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb4103f09ed47439c77307b21a1b21550d775c3dcd381cbfeb71f85bd4c4f1048", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb4103f09ed47439c77307b21a1b21550d775c3dcd381cbfeb71f85bd4c4f1048", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb4103f09ed47439c77307b21a1b21550d775c3dcd381cbfeb71f85bd4c4f1048", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb4103f09ed47439c77307b21a1b21550d775c3dcd381cbfeb71f85bd4c4f1048", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb4103f09ed47439c77307b21a1b21550d775c3dcd381cbfeb71f85bd4c4f1048", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1235296517", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000000142427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5357f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff62010a8c8794a17e8ea4f260005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "589831", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998764113698", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ] - }, - "postStateRoot" : "2c1ff790547fa37f7369315b21c9788de315fc95b6ed13b58dc3c80d8d7c02f6", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000000142427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5357f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff62010a8c8794a17e8ea4f260005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -107,12 +79,12 @@ "gasLimit" : [ "0x23bf3178" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x49a12105" + "1235296517" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest416.json b/GeneralStateTests/stRandom/randomStatetest416.json index 488927a34..2ee26aff4 100644 --- a/GeneralStateTests/stRandom/randomStatetest416.json +++ b/GeneralStateTests/stRandom/randomStatetest416.json @@ -2,91 +2,76 @@ "randomStatetest416" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest416Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x4f622410", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b54355", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xb00c", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b358012c12", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2f5a2905bbd8e54a714d6849c656ab09ee9917d929e7e7fe87a313665f5483eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2f5a2905bbd8e54a714d6849c656ab09ee9917d929e7e7fe87a313665f5483eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2f5a2905bbd8e54a714d6849c656ab09ee9917d929e7e7fe87a313665f5483eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2f5a2905bbd8e54a714d6849c656ab09ee9917d929e7e7fe87a313665f5483eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2f5a2905bbd8e54a714d6849c656ab09ee9917d929e7e7fe87a313665f5483eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6e8bad0fac19f0195ab782f8969aaea38cb092e5dc7574de8d317acdb90cf79f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b54355", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x4f622410" ] diff --git a/GeneralStateTests/stRandom/randomStatetest417.json b/GeneralStateTests/stRandom/randomStatetest417.json index 4f2dad94c..5d3fb8291 100644 --- a/GeneralStateTests/stRandom/randomStatetest417.json +++ b/GeneralStateTests/stRandom/randomStatetest417.json @@ -2,92 +2,76 @@ "randomStatetest417" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest417Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x4343424344444242f26d69", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "72948", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999827098", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7c8efe4ca8898d8531d0dfb23135b5c8827ee34321688b7748550acc66b97a40", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7c8efe4ca8898d8531d0dfb23135b5c8827ee34321688b7748550acc66b97a40", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xea18638f9d90b0cc3fe974064782903bb0e290ffc672d91684f102738e749638", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xea18638f9d90b0cc3fe974064782903bb0e290ffc672d91684f102738e749638", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7c8efe4ca8898d8531d0dfb23135b5c8827ee34321688b7748550acc66b97a40", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a14193c10ce146ed737b1038c1daf6e757946725a6ec488bee774aa62eaa7d24", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x4343424344444242f26d69", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest418.json b/GeneralStateTests/stRandom/randomStatetest418.json index c8f34df32..efd8dda0d 100644 --- a/GeneralStateTests/stRandom/randomStatetest418.json +++ b/GeneralStateTests/stRandom/randomStatetest418.json @@ -2,17 +2,53 @@ "randomStatetest418" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest418Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1705540168", + "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000000437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff12a36234970658a03160005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50588317", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998243871561", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -33,78 +69,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x94c51fccdca1d5b5cb949824330b4f18d4fcd4b75fe31a0769474e2403d0cd8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x94c51fccdca1d5b5cb949824330b4f18d4fcd4b75fe31a0769474e2403d0cd8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x552f81f63e712021da7631080c003cced772894ea4db65a6d24f888bb319e7f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x552f81f63e712021da7631080c003cced772894ea4db65a6d24f888bb319e7f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x94c51fccdca1d5b5cb949824330b4f18d4fcd4b75fe31a0769474e2403d0cd8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "552f81f63e712021da7631080c003cced772894ea4db65a6d24f888bb319e7f7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000000437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff12a36234970658a03160005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -116,12 +100,12 @@ "gasLimit" : [ "0x17647ecd" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x65a87a48" + "1705540168" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest419.json b/GeneralStateTests/stRandom/randomStatetest419.json index ffd0e569f..e5e34e55e 100644 --- a/GeneralStateTests/stRandom/randomStatetest419.json +++ b/GeneralStateTests/stRandom/randomStatetest419.json @@ -2,92 +2,77 @@ "randomStatetest419" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest419Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1783425972", + "code" : "0x437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f73095b7ee211595a6b80a311900a785560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x73095b7ee211595a6b80a311900a7855" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51864", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998216522210", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x91cda3ae1f533e5ca9cc2f45b1ad45f7006fbc285ba63b6dede22127d032f398", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x91cda3ae1f533e5ca9cc2f45b1ad45f7006fbc285ba63b6dede22127d032f398", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x91cda3ae1f533e5ca9cc2f45b1ad45f7006fbc285ba63b6dede22127d032f398", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x91cda3ae1f533e5ca9cc2f45b1ad45f7006fbc285ba63b6dede22127d032f398", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x91cda3ae1f533e5ca9cc2f45b1ad45f7006fbc285ba63b6dede22127d032f398", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "91cda3ae1f533e5ca9cc2f45b1ad45f7006fbc285ba63b6dede22127d032f398", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f73095b7ee211595a6b80a311900a785560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x396348c0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6a4cebb4" + "1783425972" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest42.json b/GeneralStateTests/stRandom/randomStatetest42.json index 8b12bf3fa..467feeb04 100644 --- a/GeneralStateTests/stRandom/randomStatetest42.json +++ b/GeneralStateTests/stRandom/randomStatetest42.json @@ -2,91 +2,76 @@ "randomStatetest42" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest42Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x61b9caa3", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3505a7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350356436f0f119011a5560005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xcb07", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b345a96a84", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe51ce43e7e084ded8ccf5e2c26035e90477a23c285f88bc552f521cfa200a101", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe51ce43e7e084ded8ccf5e2c26035e90477a23c285f88bc552f521cfa200a101", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe51ce43e7e084ded8ccf5e2c26035e90477a23c285f88bc552f521cfa200a101", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe51ce43e7e084ded8ccf5e2c26035e90477a23c285f88bc552f521cfa200a101", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe51ce43e7e084ded8ccf5e2c26035e90477a23c285f88bc552f521cfa200a101", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e51ce43e7e084ded8ccf5e2c26035e90477a23c285f88bc552f521cfa200a101", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3505a7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350356436f0f119011a5560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x61b9caa3" ] diff --git a/GeneralStateTests/stRandom/randomStatetest420.json b/GeneralStateTests/stRandom/randomStatetest420.json index 2c1a639fc..8d9acaeaa 100644 --- a/GeneralStateTests/stRandom/randomStatetest420.json +++ b/GeneralStateTests/stRandom/randomStatetest420.json @@ -2,92 +2,76 @@ "randomStatetest420" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest420Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1657754250", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b53a7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001817d7b8956970660129f5015fe0a355560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "26920", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998342218876", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9cbbf1891be48f82515a092cddb48a37eb456c8a5eb3d9c3ea463fb3adfda444", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9cbbf1891be48f82515a092cddb48a37eb456c8a5eb3d9c3ea463fb3adfda444", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9cbbf1891be48f82515a092cddb48a37eb456c8a5eb3d9c3ea463fb3adfda444", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9cbbf1891be48f82515a092cddb48a37eb456c8a5eb3d9c3ea463fb3adfda444", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9cbbf1891be48f82515a092cddb48a37eb456c8a5eb3d9c3ea463fb3adfda444", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9cbbf1891be48f82515a092cddb48a37eb456c8a5eb3d9c3ea463fb3adfda444", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b53a7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001817d7b8956970660129f5015fe0a355560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x13433a42" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x62cf528a" + "1657754250" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest421.json b/GeneralStateTests/stRandom/randomStatetest421.json index 26f351b91..0ea202e09 100644 --- a/GeneralStateTests/stRandom/randomStatetest421.json +++ b/GeneralStateTests/stRandom/randomStatetest421.json @@ -2,92 +2,77 @@ "randomStatetest421" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest421Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1389450591", + "code" : "0x437f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f38454051968ff184a47d50091231971760005155", + "nonce" : "0", + "storage" : { + "0x" : "0x38454051968ff184a47d500912319717" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46977", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998610502478", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x476de1862ee5e64de2eeb92edf2cf87701ec5188e11890838ea3b55f8cab7b7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x476de1862ee5e64de2eeb92edf2cf87701ec5188e11890838ea3b55f8cab7b7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x476de1862ee5e64de2eeb92edf2cf87701ec5188e11890838ea3b55f8cab7b7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x476de1862ee5e64de2eeb92edf2cf87701ec5188e11890838ea3b55f8cab7b7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x476de1862ee5e64de2eeb92edf2cf87701ec5188e11890838ea3b55f8cab7b7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "476de1862ee5e64de2eeb92edf2cf87701ec5188e11890838ea3b55f8cab7b7e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x437f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f38454051968ff184a47d50091231971760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1418f818" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x52d1555f" + "1389450591" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest422.json b/GeneralStateTests/stRandom/randomStatetest422.json index c53290ae8..c55f75d58 100644 --- a/GeneralStateTests/stRandom/randomStatetest422.json +++ b/GeneralStateTests/stRandom/randomStatetest422.json @@ -2,92 +2,76 @@ "randomStatetest422" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest422Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe527f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1944132934", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998055867112", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x16d58f4edca99e12b53543966af5ef6159af7dbf93ef4f085bce2972ecb413ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x16d58f4edca99e12b53543966af5ef6159af7dbf93ef4f085bce2972ecb413ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x16d58f4edca99e12b53543966af5ef6159af7dbf93ef4f085bce2972ecb413ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x16d58f4edca99e12b53543966af5ef6159af7dbf93ef4f085bce2972ecb413ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x16d58f4edca99e12b53543966af5ef6159af7dbf93ef4f085bce2972ecb413ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "16d58f4edca99e12b53543966af5ef6159af7dbf93ef4f085bce2972ecb413ad", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe527f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x73e11d18" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4c9c47f8" + "1285310456" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest423.json b/GeneralStateTests/stRandom/randomStatetest423.json index b6841bf1b..3667ce27b 100644 --- a/GeneralStateTests/stRandom/randomStatetest423.json +++ b/GeneralStateTests/stRandom/randomStatetest423.json @@ -2,92 +2,76 @@ "randomStatetest423" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest423Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x407f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350057ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000000085f98f3c3c9d0345f2155a9a7d0b131555", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1850655959", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998149344087", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9138d769f5c41c39e892f6fc18d67f4d38ae452a71cfa966a39a274af70da846", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9138d769f5c41c39e892f6fc18d67f4d38ae452a71cfa966a39a274af70da846", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9138d769f5c41c39e892f6fc18d67f4d38ae452a71cfa966a39a274af70da846", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9138d769f5c41c39e892f6fc18d67f4d38ae452a71cfa966a39a274af70da846", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9138d769f5c41c39e892f6fc18d67f4d38ae452a71cfa966a39a274af70da846", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9138d769f5c41c39e892f6fc18d67f4d38ae452a71cfa966a39a274af70da846", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x407f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350057ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000000085f98f3c3c9d0345f2155a9a7d0b131555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x6e4ec4a9" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x075133db" + "122762203" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest424.json b/GeneralStateTests/stRandom/randomStatetest424.json index ac9d90108..0606a817c 100644 --- a/GeneralStateTests/stRandom/randomStatetest424.json +++ b/GeneralStateTests/stRandom/randomStatetest424.json @@ -2,92 +2,77 @@ "randomStatetest424" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest424Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1271738191", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5437f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000436f18116552626186825096665471140a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x18116552626186825096665471140a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46936", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998728214919", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8337bbc7ad3a6588c398265de3ae25c6ab2ae9003ac3fc19e6bdbdebc6f99e5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8337bbc7ad3a6588c398265de3ae25c6ab2ae9003ac3fc19e6bdbdebc6f99e5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8337bbc7ad3a6588c398265de3ae25c6ab2ae9003ac3fc19e6bdbdebc6f99e5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8337bbc7ad3a6588c398265de3ae25c6ab2ae9003ac3fc19e6bdbdebc6f99e5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8337bbc7ad3a6588c398265de3ae25c6ab2ae9003ac3fc19e6bdbdebc6f99e5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8337bbc7ad3a6588c398265de3ae25c6ab2ae9003ac3fc19e6bdbdebc6f99e5e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5437f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000436f18116552626186825096665471140a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4c6f1c8f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4bcd2f4f" + "1271738191" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest425.json b/GeneralStateTests/stRandom/randomStatetest425.json index f2d716a5b..8dfdced85 100644 --- a/GeneralStateTests/stRandom/randomStatetest425.json +++ b/GeneralStateTests/stRandom/randomStatetest425.json @@ -2,92 +2,77 @@ "randomStatetest425" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest425Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "574036597", + "code" : "0x7f0000000000000000000000010000000000000000000000000000000000000000417f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f885707818b889a89975552f01284425560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x885707818b889a89975552f012844255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "44548", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999425918901", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3aedad31bf0511cb9e66b56e63c9d4fdeb5e3bd48f5cd7e5bcd0dc638d8e5f9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3aedad31bf0511cb9e66b56e63c9d4fdeb5e3bd48f5cd7e5bcd0dc638d8e5f9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3aedad31bf0511cb9e66b56e63c9d4fdeb5e3bd48f5cd7e5bcd0dc638d8e5f9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3aedad31bf0511cb9e66b56e63c9d4fdeb5e3bd48f5cd7e5bcd0dc638d8e5f9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3aedad31bf0511cb9e66b56e63c9d4fdeb5e3bd48f5cd7e5bcd0dc638d8e5f9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3aedad31bf0511cb9e66b56e63c9d4fdeb5e3bd48f5cd7e5bcd0dc638d8e5f9b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f0000000000000000000000010000000000000000000000000000000000000000417f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f885707818b889a89975552f01284425560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7a573803" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x22371a75" + "574036597" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest426.json b/GeneralStateTests/stRandom/randomStatetest426.json index 2b6e6adad..4370bcd27 100644 --- a/GeneralStateTests/stRandom/randomStatetest426.json +++ b/GeneralStateTests/stRandom/randomStatetest426.json @@ -2,92 +2,77 @@ "randomStatetest426" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest426Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1631269834", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f456d1687795a95938b0139976099f05560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x456d1687795a95938b0139976099f055" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51289", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998368678923", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8781684eaade11345038e3d98012636fa36c6a4e0af40d5669393296748cd093", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8781684eaade11345038e3d98012636fa36c6a4e0af40d5669393296748cd093", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8781684eaade11345038e3d98012636fa36c6a4e0af40d5669393296748cd093", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8781684eaade11345038e3d98012636fa36c6a4e0af40d5669393296748cd093", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8781684eaade11345038e3d98012636fa36c6a4e0af40d5669393296748cd093", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8781684eaade11345038e3d98012636fa36c6a4e0af40d5669393296748cd093", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f456d1687795a95938b0139976099f05560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1e626bcb" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x613b33ca" + "1631269834" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest428.json b/GeneralStateTests/stRandom/randomStatetest428.json index c24fa9603..2c0746cea 100644 --- a/GeneralStateTests/stRandom/randomStatetest428.json +++ b/GeneralStateTests/stRandom/randomStatetest428.json @@ -2,92 +2,76 @@ "randomStatetest428" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest428Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x4244417b4542404409523b200283", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "21123", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999878923", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x884d15e4b4d8602751e004c0c74ab8ad5806b85add454653b57cf43739998e09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x884d15e4b4d8602751e004c0c74ab8ad5806b85add454653b57cf43739998e09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x884d15e4b4d8602751e004c0c74ab8ad5806b85add454653b57cf43739998e09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x884d15e4b4d8602751e004c0c74ab8ad5806b85add454653b57cf43739998e09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x884d15e4b4d8602751e004c0c74ab8ad5806b85add454653b57cf43739998e09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "884d15e4b4d8602751e004c0c74ab8ad5806b85add454653b57cf43739998e09", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x4244417b4542404409523b200283", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest429.json b/GeneralStateTests/stRandom/randomStatetest429.json index b4784e514..688695e47 100644 --- a/GeneralStateTests/stRandom/randomStatetest429.json +++ b/GeneralStateTests/stRandom/randomStatetest429.json @@ -2,92 +2,77 @@ "randomStatetest429" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest429Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1412476335", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f98121f3887867290877734763313665560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x98121f38878672908777347633136655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50393", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998587473318", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4ad8ec3967c187cf53ccc37c9d0c9b825648899976ad794feb2c89140193b078", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4ad8ec3967c187cf53ccc37c9d0c9b825648899976ad794feb2c89140193b078", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4ad8ec3967c187cf53ccc37c9d0c9b825648899976ad794feb2c89140193b078", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4ad8ec3967c187cf53ccc37c9d0c9b825648899976ad794feb2c89140193b078", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4ad8ec3967c187cf53ccc37c9d0c9b825648899976ad794feb2c89140193b078", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "4ad8ec3967c187cf53ccc37c9d0c9b825648899976ad794feb2c89140193b078", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f98121f3887867290877734763313665560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x570c0fb5" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5430adaf" + "1412476335" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest43.json b/GeneralStateTests/stRandom/randomStatetest43.json index 02202084c..adf2081eb 100644 --- a/GeneralStateTests/stRandom/randomStatetest43.json +++ b/GeneralStateTests/stRandom/randomStatetest43.json @@ -2,92 +2,78 @@ "randomStatetest43" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest43Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "580684794", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3b0a55096941861a3755a196f259a155", + "nonce" : "0", + "storage" : { + "0x" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "0x41861a3755a196f259a1" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "74843", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999419240409", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x87fda285fdd0520dfd2214fd33414199602cfc86f13f6e08da3692fcc67c00bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x667159eba14a4551b733e54f6c7383795c2be59ee48c6527985f853b4b7086a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x278941e17298c3be14c198aad402381104c1aeae6451f18e07fb9cc80e4a482f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x278941e17298c3be14c198aad402381104c1aeae6451f18e07fb9cc80e4a482f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x667159eba14a4551b733e54f6c7383795c2be59ee48c6527985f853b4b7086a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "278941e17298c3be14c198aad402381104c1aeae6451f18e07fb9cc80e4a482f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3b0a55096941861a3755a196f259a155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x4627c75c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x229c8bfa" + "580684794" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest430.json b/GeneralStateTests/stRandom/randomStatetest430.json index 19d4d10f8..26a7591aa 100644 --- a/GeneralStateTests/stRandom/randomStatetest430.json +++ b/GeneralStateTests/stRandom/randomStatetest430.json @@ -2,92 +2,77 @@ "randomStatetest430" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest430Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1811277343", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000006f7d41a29934035b748e96a3135b69645560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x7d41a29934035b748e96a3135b696455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49305", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998188673398", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x49808120b60f2a2e9c0b3b90dd509f877f8582c764d88e8984c307a502667ad3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x49808120b60f2a2e9c0b3b90dd509f877f8582c764d88e8984c307a502667ad3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x49808120b60f2a2e9c0b3b90dd509f877f8582c764d88e8984c307a502667ad3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x49808120b60f2a2e9c0b3b90dd509f877f8582c764d88e8984c307a502667ad3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x49808120b60f2a2e9c0b3b90dd509f877f8582c764d88e8984c307a502667ad3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "49808120b60f2a2e9c0b3b90dd509f877f8582c764d88e8984c307a502667ad3", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000006f7d41a29934035b748e96a3135b69645560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x607daefc" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6bf5e61f" + "1811277343" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest433.json b/GeneralStateTests/stRandom/randomStatetest433.json index 73927c68c..a861dfe01 100644 --- a/GeneralStateTests/stRandom/randomStatetest433.json +++ b/GeneralStateTests/stRandom/randomStatetest433.json @@ -2,17 +2,53 @@ "randomStatetest433" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest433Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "630948579", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350a3f305205bf156207259573055", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "457370", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999368594097", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -26,78 +62,26 @@ } ], "out" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0x5cbe2d4811cc7a3e1474e637cbafc3b2f7fa1a93f3cdb4fa977d58224e795fb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5cbe2d4811cc7a3e1474e637cbafc3b2f7fa1a93f3cdb4fa977d58224e795fb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5cbe2d4811cc7a3e1474e637cbafc3b2f7fa1a93f3cdb4fa977d58224e795fb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5cbe2d4811cc7a3e1474e637cbafc3b2f7fa1a93f3cdb4fa977d58224e795fb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5cbe2d4811cc7a3e1474e637cbafc3b2f7fa1a93f3cdb4fa977d58224e795fb5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5cbe2d4811cc7a3e1474e637cbafc3b2f7fa1a93f3cdb4fa977d58224e795fb5", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350a3f305205bf156207259573055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -109,12 +93,12 @@ "gasLimit" : [ "0x2e64c884" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x259b82e3" + "630948579" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest435.json b/GeneralStateTests/stRandom/randomStatetest435.json index ccb9cb4d1..e1347edb6 100644 --- a/GeneralStateTests/stRandom/randomStatetest435.json +++ b/GeneralStateTests/stRandom/randomStatetest435.json @@ -2,92 +2,78 @@ "randomStatetest435" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest435Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1256168470", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000000447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000042613488076233797f553960005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0x33797f" : "0x00000000000000000000000000000000000000000000000000000000000001c0" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "79533", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998743752043", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8bf90155bfbd3bef955c620d790777a74201b8c8ce1dba26b379fb9bbb85d8c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8bf90155bfbd3bef955c620d790777a74201b8c8ce1dba26b379fb9bbb85d8c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8bf90155bfbd3bef955c620d790777a74201b8c8ce1dba26b379fb9bbb85d8c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8bf90155bfbd3bef955c620d790777a74201b8c8ce1dba26b379fb9bbb85d8c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8bf90155bfbd3bef955c620d790777a74201b8c8ce1dba26b379fb9bbb85d8c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5e5373df5eb140c658174efad770006d28c47ef8a7c13a9b150f427826bf120d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000000447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000042613488076233797f553960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x1833d234" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4adf9c16" + "1256168470" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest436.json b/GeneralStateTests/stRandom/randomStatetest436.json index 534972907..eba50b088 100644 --- a/GeneralStateTests/stRandom/randomStatetest436.json +++ b/GeneralStateTests/stRandom/randomStatetest436.json @@ -2,92 +2,77 @@ "randomStatetest436" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest436Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1464160030", + "code" : "0x367f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5456f8108067a345b7a76a20a835a0a0b6c1060005155", + "nonce" : "0", + "storage" : { + "0x" : "0x8108067a345b7a76a20a835a0a0b6c10" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48660", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998535791356", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa67595e8fa11956ea31b70c6c2c6b765e6f6d7c2ab6ebeac138369ba15799eda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa67595e8fa11956ea31b70c6c2c6b765e6f6d7c2ab6ebeac138369ba15799eda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa67595e8fa11956ea31b70c6c2c6b765e6f6d7c2ab6ebeac138369ba15799eda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa67595e8fa11956ea31b70c6c2c6b765e6f6d7c2ab6ebeac138369ba15799eda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa67595e8fa11956ea31b70c6c2c6b765e6f6d7c2ab6ebeac138369ba15799eda", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a67595e8fa11956ea31b70c6c2c6b765e6f6d7c2ab6ebeac138369ba15799eda", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x367f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5456f8108067a345b7a76a20a835a0a0b6c1060005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x458f872c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x57454f1e" + "1464160030" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest437.json b/GeneralStateTests/stRandom/randomStatetest437.json index d333165d5..67ca4fbe4 100644 --- a/GeneralStateTests/stRandom/randomStatetest437.json +++ b/GeneralStateTests/stRandom/randomStatetest437.json @@ -2,92 +2,78 @@ "randomStatetest437" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest437Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1752414467", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000013a1339085560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0x6bacfb1469f9a4d5674a85b75f951d72d7a58e4b" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "66393", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998247519186", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf9bb80a7897b48cbb6018fe30c04923289b6d2425a8befd55ec958b181f2e5a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf9bb80a7897b48cbb6018fe30c04923289b6d2425a8befd55ec958b181f2e5a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf9bb80a7897b48cbb6018fe30c04923289b6d2425a8befd55ec958b181f2e5a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf9bb80a7897b48cbb6018fe30c04923289b6d2425a8befd55ec958b181f2e5a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf9bb80a7897b48cbb6018fe30c04923289b6d2425a8befd55ec958b181f2e5a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "861a89c47a29170dfeda70fd35fca80b690c8102793b93c5ed63547f8e23ad98", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000013a1339085560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x6945be5d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6873b903" + "1752414467" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest438.json b/GeneralStateTests/stRandom/randomStatetest438.json index ca9220ea0..e7fa7e6e5 100644 --- a/GeneralStateTests/stRandom/randomStatetest438.json +++ b/GeneralStateTests/stRandom/randomStatetest438.json @@ -2,92 +2,77 @@ "randomStatetest438" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest438Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1071528892", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xc350" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "57636", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998928413518", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf3412aab1fae5f611d704f6e47238ac6337e7fa21bc4a16dd716f6fa2f4ff721", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf3412aab1fae5f611d704f6e47238ac6337e7fa21bc4a16dd716f6fa2f4ff721", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf3412aab1fae5f611d704f6e47238ac6337e7fa21bc4a16dd716f6fa2f4ff721", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf3412aab1fae5f611d704f6e47238ac6337e7fa21bc4a16dd716f6fa2f4ff721", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf3412aab1fae5f611d704f6e47238ac6337e7fa21bc4a16dd716f6fa2f4ff721", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f3412aab1fae5f611d704f6e47238ac6337e7fa21bc4a16dd716f6fa2f4ff721", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6cc5d7a5" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3fde3bbc" + "1071528892" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest439.json b/GeneralStateTests/stRandom/randomStatetest439.json index d80aeea50..fe960d6df 100644 --- a/GeneralStateTests/stRandom/randomStatetest439.json +++ b/GeneralStateTests/stRandom/randomStatetest439.json @@ -2,92 +2,77 @@ "randomStatetest439" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest439Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "398066515", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f5b1609653438813340097c53a493165560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x5b1609653438813340097c53a4931655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52634", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999601880897", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb4a88b9712c8b0833e1214037c12c247e071561ea9696a91406d611d4759fc38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb4a88b9712c8b0833e1214037c12c247e071561ea9696a91406d611d4759fc38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb4a88b9712c8b0833e1214037c12c247e071561ea9696a91406d611d4759fc38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb4a88b9712c8b0833e1214037c12c247e071561ea9696a91406d611d4759fc38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb4a88b9712c8b0833e1214037c12c247e071561ea9696a91406d611d4759fc38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b4a88b9712c8b0833e1214037c12c247e071561ea9696a91406d611d4759fc38", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f5b1609653438813340097c53a493165560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x409d0212" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x17ba0353" + "398066515" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest440.json b/GeneralStateTests/stRandom/randomStatetest440.json index e546b7bb9..4bda42188 100644 --- a/GeneralStateTests/stRandom/randomStatetest440.json +++ b/GeneralStateTests/stRandom/randomStatetest440.json @@ -2,92 +2,77 @@ "randomStatetest440" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest440Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1245697846", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b545457f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff416f01513a9b8216816f74f3676e9ea2615560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x01513a9b8216816f74f3676e9ea26155" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46167", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998754256033", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf0474d54b13438523191833ead3e093749103afefde5ea8875bc7e56a9644c22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf0474d54b13438523191833ead3e093749103afefde5ea8875bc7e56a9644c22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf0474d54b13438523191833ead3e093749103afefde5ea8875bc7e56a9644c22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf0474d54b13438523191833ead3e093749103afefde5ea8875bc7e56a9644c22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf0474d54b13438523191833ead3e093749103afefde5ea8875bc7e56a9644c22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f0474d54b13438523191833ead3e093749103afefde5ea8875bc7e56a9644c22", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b545457f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff416f01513a9b8216816f74f3676e9ea2615560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3ac5ab50" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4a3fd736" + "1245697846" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest441.json b/GeneralStateTests/stRandom/randomStatetest441.json index 3017cd194..616f0a686 100644 --- a/GeneralStateTests/stRandom/randomStatetest441.json +++ b/GeneralStateTests/stRandom/randomStatetest441.json @@ -2,92 +2,77 @@ "randomStatetest441" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest441Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x444241414545444555", + "nonce" : "0", + "storage" : { + "0x7fffffffffffffff" : "0x0000000000000000000000000000000000000000000000000000000000020000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41130", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858916", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x904a99508429458cd8f4f891184f4257c84db36835239ddfe0d2e53770d67ca2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x904a99508429458cd8f4f891184f4257c84db36835239ddfe0d2e53770d67ca2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x904a99508429458cd8f4f891184f4257c84db36835239ddfe0d2e53770d67ca2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x904a99508429458cd8f4f891184f4257c84db36835239ddfe0d2e53770d67ca2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x904a99508429458cd8f4f891184f4257c84db36835239ddfe0d2e53770d67ca2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "316dc9590738860b47526464d83665e2589f72be3bcc59b6b7c754ba42ebbe44", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x444241414545444555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest442.json b/GeneralStateTests/stRandom/randomStatetest442.json index aa8bbd582..d22832a72 100644 --- a/GeneralStateTests/stRandom/randomStatetest442.json +++ b/GeneralStateTests/stRandom/randomStatetest442.json @@ -2,92 +2,78 @@ "randomStatetest442" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest442Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "794450594", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff917f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3501833815560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3cae", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3cae" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "71115", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999205478337", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf98ac46d7c5ea5b279ef41988e03f25a094ad6b99b0e99247cb79151f936945e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf98ac46d7c5ea5b279ef41988e03f25a094ad6b99b0e99247cb79151f936945e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf98ac46d7c5ea5b279ef41988e03f25a094ad6b99b0e99247cb79151f936945e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf98ac46d7c5ea5b279ef41988e03f25a094ad6b99b0e99247cb79151f936945e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf98ac46d7c5ea5b279ef41988e03f25a094ad6b99b0e99247cb79151f936945e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f98ac46d7c5ea5b279ef41988e03f25a094ad6b99b0e99247cb79151f936945e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff917f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3501833815560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x664f3c42" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2f5a5aa2" + "794450594" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest443.json b/GeneralStateTests/stRandom/randomStatetest443.json index ccf20962c..780718c39 100644 --- a/GeneralStateTests/stRandom/randomStatetest443.json +++ b/GeneralStateTests/stRandom/randomStatetest443.json @@ -2,92 +2,76 @@ "randomStatetest443" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest443Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001155933704", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1932635520", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998067364526", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3c9d47fb3ada07b78c2e6470ed8b4107db21e513979a71c270d97da5a20186bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3c9d47fb3ada07b78c2e6470ed8b4107db21e513979a71c270d97da5a20186bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3c9d47fb3ada07b78c2e6470ed8b4107db21e513979a71c270d97da5a20186bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3c9d47fb3ada07b78c2e6470ed8b4107db21e513979a71c270d97da5a20186bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3c9d47fb3ada07b78c2e6470ed8b4107db21e513979a71c270d97da5a20186bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3c9d47fb3ada07b78c2e6470ed8b4107db21e513979a71c270d97da5a20186bc", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001155933704", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x7331ad52" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5967364f" + "1499936335" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest444.json b/GeneralStateTests/stRandom/randomStatetest444.json index 027a37dc4..9dc2a5b74 100644 --- a/GeneralStateTests/stRandom/randomStatetest444.json +++ b/GeneralStateTests/stRandom/randomStatetest444.json @@ -2,92 +2,76 @@ "randomStatetest444" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest444Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1481275721", + "code" : "0x7f0000000000000000000000010000000000000000000000000000000000000000607f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff661392843555", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "29232", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998518695093", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x45177b244bb3e9f7471b3ee95a26cbe5f5dc9df94534729f429ce395f1d3a6cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x45177b244bb3e9f7471b3ee95a26cbe5f5dc9df94534729f429ce395f1d3a6cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x45177b244bb3e9f7471b3ee95a26cbe5f5dc9df94534729f429ce395f1d3a6cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x45177b244bb3e9f7471b3ee95a26cbe5f5dc9df94534729f429ce395f1d3a6cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x45177b244bb3e9f7471b3ee95a26cbe5f5dc9df94534729f429ce395f1d3a6cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "45177b244bb3e9f7471b3ee95a26cbe5f5dc9df94534729f429ce395f1d3a6cf", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f0000000000000000000000010000000000000000000000000000000000000000607f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff661392843555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x17593212" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x584a7949" + "1481275721" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest445.json b/GeneralStateTests/stRandom/randomStatetest445.json index a1402b6b8..745b00c0b 100644 --- a/GeneralStateTests/stRandom/randomStatetest445.json +++ b/GeneralStateTests/stRandom/randomStatetest445.json @@ -2,92 +2,76 @@ "randomStatetest445" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest445Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008756993365a1376155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "18216539", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999981783507", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x248865514189f3f7c8d2f00511eb7259e5c3b97df45d9d980126c5e9425063d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x248865514189f3f7c8d2f00511eb7259e5c3b97df45d9d980126c5e9425063d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x248865514189f3f7c8d2f00511eb7259e5c3b97df45d9d980126c5e9425063d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x248865514189f3f7c8d2f00511eb7259e5c3b97df45d9d980126c5e9425063d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x248865514189f3f7c8d2f00511eb7259e5c3b97df45d9d980126c5e9425063d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "248865514189f3f7c8d2f00511eb7259e5c3b97df45d9d980126c5e9425063d9", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008756993365a1376155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x0115f62d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x144db951" + "340638033" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest446.json b/GeneralStateTests/stRandom/randomStatetest446.json index 0e6b0024f..9bb45d7e4 100644 --- a/GeneralStateTests/stRandom/randomStatetest446.json +++ b/GeneralStateTests/stRandom/randomStatetest446.json @@ -2,92 +2,77 @@ "randomStatetest446" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest446Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "141749433", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955", + "nonce" : "0", + "storage" : { + "0xfffffffffffffffffffffffe000000000000000000000001ffffffffffffffff" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52762", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999858197851", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3eb278091ceba2963d49ffe11644fb2140639ee9a1a17fe23cfacd55de40d4c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3eb278091ceba2963d49ffe11644fb2140639ee9a1a17fe23cfacd55de40d4c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3eb278091ceba2963d49ffe11644fb2140639ee9a1a17fe23cfacd55de40d4c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3eb278091ceba2963d49ffe11644fb2140639ee9a1a17fe23cfacd55de40d4c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3eb278091ceba2963d49ffe11644fb2140639ee9a1a17fe23cfacd55de40d4c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3eb278091ceba2963d49ffe11644fb2140639ee9a1a17fe23cfacd55de40d4c2", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0be3dfb6" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0872ecb9" + "141749433" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest447.json b/GeneralStateTests/stRandom/randomStatetest447.json index 50f00d7a2..59866dce1 100644 --- a/GeneralStateTests/stRandom/randomStatetest447.json +++ b/GeneralStateTests/stRandom/randomStatetest447.json @@ -2,91 +2,76 @@ "randomStatetest447" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest447Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x1569eba8", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff085560005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xe42a", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b391f9305c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7cdbaeca641a4910d86fc89e8897ce522d64c7efff9af8821b6d9b21e6f6ae16", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7cdbaeca641a4910d86fc89e8897ce522d64c7efff9af8821b6d9b21e6f6ae16", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7cdbaeca641a4910d86fc89e8897ce522d64c7efff9af8821b6d9b21e6f6ae16", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7cdbaeca641a4910d86fc89e8897ce522d64c7efff9af8821b6d9b21e6f6ae16", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7cdbaeca641a4910d86fc89e8897ce522d64c7efff9af8821b6d9b21e6f6ae16", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7cdbaeca641a4910d86fc89e8897ce522d64c7efff9af8821b6d9b21e6f6ae16", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff085560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x1569eba8" ] diff --git a/GeneralStateTests/stRandom/randomStatetest448.json b/GeneralStateTests/stRandom/randomStatetest448.json index 7d235be1b..d0e81b8b4 100644 --- a/GeneralStateTests/stRandom/randomStatetest448.json +++ b/GeneralStateTests/stRandom/randomStatetest448.json @@ -2,92 +2,76 @@ "randomStatetest448" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest448Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1485632", + "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b940860005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "4379639", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999994134775", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b940860005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x01a76401" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x16ab40" + "1485632" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest449.json b/GeneralStateTests/stRandom/randomStatetest449.json index dfe6a89d3..afafa363d 100644 --- a/GeneralStateTests/stRandom/randomStatetest449.json +++ b/GeneralStateTests/stRandom/randomStatetest449.json @@ -2,92 +2,76 @@ "randomStatetest449" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest449Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x197f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b58b66e4ff65a056f39b529f", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "535923539", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999464076507", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4464263a97ca34956c33f5ee1f832cc031a381af5cc62c2a840616df19945719", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4464263a97ca34956c33f5ee1f832cc031a381af5cc62c2a840616df19945719", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4464263a97ca34956c33f5ee1f832cc031a381af5cc62c2a840616df19945719", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4464263a97ca34956c33f5ee1f832cc031a381af5cc62c2a840616df19945719", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4464263a97ca34956c33f5ee1f832cc031a381af5cc62c2a840616df19945719", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "4464263a97ca34956c33f5ee1f832cc031a381af5cc62c2a840616df19945719", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x197f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b58b66e4ff65a056f39b529f", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x1ff18b25" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6eb97cf1" + "1857649905" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest45.json b/GeneralStateTests/stRandom/randomStatetest45.json index 7fbfbeb93..36a86bbb5 100644 --- a/GeneralStateTests/stRandom/randomStatetest45.json +++ b/GeneralStateTests/stRandom/randomStatetest45.json @@ -2,92 +2,76 @@ "randomStatetest45" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest45Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1998384914", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe43147256a3130255", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "27924", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998001587208", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x81ecc4f1cf883a5c5ee77143f4f72c4975c781b7432f3a3a73e4444a24de7905", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x81ecc4f1cf883a5c5ee77143f4f72c4975c781b7432f3a3a73e4444a24de7905", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcb6a09074033e79b032266b4559b951707d2573a430f58550855dd6236f2cb3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcb6a09074033e79b032266b4559b951707d2573a430f58550855dd6236f2cb3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x81ecc4f1cf883a5c5ee77143f4f72c4975c781b7432f3a3a73e4444a24de7905", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "cb6a09074033e79b032266b4559b951707d2573a430f58550855dd6236f2cb3a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe43147256a3130255", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x13f6aeec" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x771cef12" + "1998384914" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest450.json b/GeneralStateTests/stRandom/randomStatetest450.json index 6f956cd37..0ef607d1f 100644 --- a/GeneralStateTests/stRandom/randomStatetest450.json +++ b/GeneralStateTests/stRandom/randomStatetest450.json @@ -2,91 +2,76 @@ "randomStatetest450" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest450Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x50f09196", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000033a8060005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xc1ab", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b35672aced", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x03a9f209c265fd52289ca0df99196210a90a9555aee156d1cad47689c9b19387", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x03a9f209c265fd52289ca0df99196210a90a9555aee156d1cad47689c9b19387", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x03a9f209c265fd52289ca0df99196210a90a9555aee156d1cad47689c9b19387", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x03a9f209c265fd52289ca0df99196210a90a9555aee156d1cad47689c9b19387", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x03a9f209c265fd52289ca0df99196210a90a9555aee156d1cad47689c9b19387", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "03a9f209c265fd52289ca0df99196210a90a9555aee156d1cad47689c9b19387", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000033a8060005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x50f09196" ] diff --git a/GeneralStateTests/stRandom/randomStatetest451.json b/GeneralStateTests/stRandom/randomStatetest451.json index 605ae4f3a..f65cc4a78 100644 --- a/GeneralStateTests/stRandom/randomStatetest451.json +++ b/GeneralStateTests/stRandom/randomStatetest451.json @@ -2,92 +2,77 @@ "randomStatetest451" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest451Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "812425754", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000006fed05989a0659453076573a870411745560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xed05989a0659453076573a8704117455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49306", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999187524986", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6add7e7ee018246f6130dcb4a6562c67239a7fd79a57f80baa1438224a0d49a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6add7e7ee018246f6130dcb4a6562c67239a7fd79a57f80baa1438224a0d49a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6add7e7ee018246f6130dcb4a6562c67239a7fd79a57f80baa1438224a0d49a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6add7e7ee018246f6130dcb4a6562c67239a7fd79a57f80baa1438224a0d49a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6add7e7ee018246f6130dcb4a6562c67239a7fd79a57f80baa1438224a0d49a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6add7e7ee018246f6130dcb4a6562c67239a7fd79a57f80baa1438224a0d49a3", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000006fed05989a0659453076573a870411745560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x27cf9c6b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x306ca21a" + "812425754" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest452.json b/GeneralStateTests/stRandom/randomStatetest452.json index 4e7cbe5a6..d27a84042 100644 --- a/GeneralStateTests/stRandom/randomStatetest452.json +++ b/GeneralStateTests/stRandom/randomStatetest452.json @@ -2,92 +2,77 @@ "randomStatetest452" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest452Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1492613506", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f0a3289746806163630047dff9831055560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x0a3289746806163630047dff98310555" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51354", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998507335186", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xae04482669df0a13f38443b42853e852c919502cb80b7d292d81c1e54b065b14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xae04482669df0a13f38443b42853e852c919502cb80b7d292d81c1e54b065b14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xae04482669df0a13f38443b42853e852c919502cb80b7d292d81c1e54b065b14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xae04482669df0a13f38443b42853e852c919502cb80b7d292d81c1e54b065b14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xae04482669df0a13f38443b42853e852c919502cb80b7d292d81c1e54b065b14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ae04482669df0a13f38443b42853e852c919502cb80b7d292d81c1e54b065b14", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f0a3289746806163630047dff9831055560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6331f956" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x58f77982" + "1492613506" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest454.json b/GeneralStateTests/stRandom/randomStatetest454.json index a9e7d79b2..af77dcff1 100644 --- a/GeneralStateTests/stRandom/randomStatetest454.json +++ b/GeneralStateTests/stRandom/randomStatetest454.json @@ -2,92 +2,76 @@ "randomStatetest454" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest454Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000557f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50a84339188646595668352a061855560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "801162376", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999198837670", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8b95863987e182e7ba0991c0d07e9f14959c04239819ee32c3ffe81cbec8400c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8b95863987e182e7ba0991c0d07e9f14959c04239819ee32c3ffe81cbec8400c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8b95863987e182e7ba0991c0d07e9f14959c04239819ee32c3ffe81cbec8400c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8b95863987e182e7ba0991c0d07e9f14959c04239819ee32c3ffe81cbec8400c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8b95863987e182e7ba0991c0d07e9f14959c04239819ee32c3ffe81cbec8400c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8b95863987e182e7ba0991c0d07e9f14959c04239819ee32c3ffe81cbec8400c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000557f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000557f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50a84339188646595668352a061855560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x2fc0c45a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x55500ee3" + "1431310051" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest455.json b/GeneralStateTests/stRandom/randomStatetest455.json index 154bcb4ad..4e51ff2d6 100644 --- a/GeneralStateTests/stRandom/randomStatetest455.json +++ b/GeneralStateTests/stRandom/randomStatetest455.json @@ -2,92 +2,77 @@ "randomStatetest455" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest455Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "737734735", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f858b1411f218693ca2245b918274f35560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x858b1411f218693ca2245b918274f355" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49946", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999262215365", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x009cab4a4292263790c36bcf29fe2f0d540f7e08949ab7d4a2c67e7e854d2504", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x009cab4a4292263790c36bcf29fe2f0d540f7e08949ab7d4a2c67e7e854d2504", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x009cab4a4292263790c36bcf29fe2f0d540f7e08949ab7d4a2c67e7e854d2504", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x009cab4a4292263790c36bcf29fe2f0d540f7e08949ab7d4a2c67e7e854d2504", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x009cab4a4292263790c36bcf29fe2f0d540f7e08949ab7d4a2c67e7e854d2504", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "009cab4a4292263790c36bcf29fe2f0d540f7e08949ab7d4a2c67e7e854d2504", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f858b1411f218693ca2245b918274f35560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4f485274" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2bf8f04f" + "737734735" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest456.json b/GeneralStateTests/stRandom/randomStatetest456.json index b314e3a9a..665a98189 100644 --- a/GeneralStateTests/stRandom/randomStatetest456.json +++ b/GeneralStateTests/stRandom/randomStatetest456.json @@ -2,92 +2,76 @@ "randomStatetest456" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest456Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41424143445a42f35b10773574016c9f", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "332075", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999567971", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0xfd87625e181210729a2eb90f115a5d8071e58b87b3ea32f95c85842cf2cdc2f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xfd87625e181210729a2eb90f115a5d8071e58b87b3ea32f95c85842cf2cdc2f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfd87625e181210729a2eb90f115a5d8071e58b87b3ea32f95c85842cf2cdc2f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfd87625e181210729a2eb90f115a5d8071e58b87b3ea32f95c85842cf2cdc2f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfd87625e181210729a2eb90f115a5d8071e58b87b3ea32f95c85842cf2cdc2f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8464ad6046be49963917e36af7d10ff41bc25f298dcb87c1e1a464bd05238f0b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41424143445a42f35b10773574016c9f", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest457.json b/GeneralStateTests/stRandom/randomStatetest457.json index 992c7f496..f347f3743 100644 --- a/GeneralStateTests/stRandom/randomStatetest457.json +++ b/GeneralStateTests/stRandom/randomStatetest457.json @@ -2,92 +2,77 @@ "randomStatetest457" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest457Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "316557712", + "code" : "0x44417f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f949fa28af308a37a136c626218927d5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x949fa28af308a37a136c626218927d55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45258", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999683397076", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7db537b28e282a8ce1726fa91e36b91a246577854aa6cf1158c2edd36734d77b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7db537b28e282a8ce1726fa91e36b91a246577854aa6cf1158c2edd36734d77b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7db537b28e282a8ce1726fa91e36b91a246577854aa6cf1158c2edd36734d77b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7db537b28e282a8ce1726fa91e36b91a246577854aa6cf1158c2edd36734d77b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7db537b28e282a8ce1726fa91e36b91a246577854aa6cf1158c2edd36734d77b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7db537b28e282a8ce1726fa91e36b91a246577854aa6cf1158c2edd36734d77b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x44417f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f949fa28af308a37a136c626218927d5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x22e280c9" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x12de4990" + "316557712" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest458.json b/GeneralStateTests/stRandom/randomStatetest458.json index 57d367b7a..02af29d17 100644 --- a/GeneralStateTests/stRandom/randomStatetest458.json +++ b/GeneralStateTests/stRandom/randomStatetest458.json @@ -2,17 +2,53 @@ "randomStatetest458" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest458Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x7f120206", + "code" : "0x7689747fb3520231748bbe5eb9617666e630019e3e84ce7179c5d83b7e36050e5c05623956e599f54eb56213e4f96f69f402cd73e13c366095a3fe56bdd6a815d9ba23f3a9729bc462385c697ed9f24192c949e33ff7ed256c84979d70148b8fd8a62438ca053de2642271456dde46ce78cf7c6d1d2cc48eee658a73ad9f9ca1e550720490e2d0769e0a429773e42fc965ea1030f6c0787b4e7bc4915150a99fc758d3373561d8917c4c7d605f0cd8d2203f4d69606198437429e2f2d2bf742b28760a9c0ab51203d0c5d5b9e16d74ce0428945aaff2d0f99240a901d3233bd04e366c367ab93ecea0c206fbf01084254636df9c1f308c7d6875d5d5d37f3ce27989e39048f175f0d2dc49eaa86530def7ab70553f5d3904c843b5736025e321e7e2ab92af570e5b3bef4014c54e65316bb546eb8906f155f7b9405326740104d8f5d98dc97ac374ad0c58f4385e086891b9b2657e982eb15a367eab6683b51ea9f219abae5ca39f669a1a88a82e14efd4192a3edbe04a12d35679cf6338130d67f37c324464d16cc866be846b0304ef9fd3c6611e6cdf1277d65f6b2a58ffb61ba979740b8df72816602071e979e6029c9307d718ffdc70f37ea0019353c06b0fb56d8e3738dfdb18418e952092e8625b51749f276cc6ae416a85bd070c61e65240d8c2719c76b0420f84ece41c9be0f93d4f30581c28f69768395163937f95b86da30fa76b6937870245d9250e06b6e07dffea8f849a37647378dd59ac8365a37dd908eea26be2f53375e1dbee32ecaa7e957eace8c6f0883e4ef830485bd43b2b7851a0b11497f752d3ee4560e312a7a91b7b2a88c109737c92feb7807d481ac3fd823f038c4ba82df40a60982a7c7a6f6ba2cb95233c257b30e1c9d3c84aa37b6f4268fec34fb9eef1f8602e6a7bf1ebfa162680b57af09f7a7fc584055ff32d68a92e59ddaf20bcaaaa70d5970fd71c04cdbab46cf86e566e870664b6df2c6861347b2a3886788bbebbd03cbb51ed29357f699c8b974c61528a0423f67a837bfab83afa78a0bff70a653ea0f398f73632d5e3bea0a31115d65486fb6d667110448e0208264a3f76f35972666e7aa7339f23b08e6028616337a0366016601d6014600b630e6db38e73095e7baea6a6c7c4c2dfeb977efac326af552d87635706352bf1695bb9e53d5ad3ba1191ea65ae1880d46c687605148e427a09d40172dbdd5fc72fffb1443080a39a0ee77feed9ddc9050affce41d68c34ad97c484f204a987bcfaf46b9fa4a9ed2dad3738771a3cf86b43f303a8db8cde3ed8a40ae35574b9084f4cab88701d150e628d9b2a33e71c8f9fb0ce9e72866257691776f999b7ddf64f22532351bd34743e08facd1acc94b0d6b56bf97491d5ed9d726af684d1a47abcb243b7c29d12a315e939f70af8d2617df63567c3bc56c16609a27871af77631fe1ccaa0d15f8da9bd9a712a544abb92b925b1d7561fced60b09b6b22f2121b105a65a209e151b76b31be481d57353d10a1d968ca7a185495a8a2935571a0d17443a327bf11cb421baca9064bc4e4497c7d4c486c40082cc2d01b3f6023b726de95ac2ad53ae0b731d741676338181e66c8ac8daf0d54776827987e79d9f617c51f6f4b87cf8fee734c99e5e3fc2e37f17e626cbfd1195157215d10fa39b4b0947c3339139b280c0b042da7ec93a24416d5c52e0ba21ec9d39d6fbcd3d74266580eef6ca9bb9d76bb4dc441f3d6d0cf38307b505251deea82ab39f9ccd17a6507bf16b38640679c22f2134e8258f79b", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x5706f950", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b2d14b04d8", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -23,77 +59,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x49b518fee7a1b850759b6baeb61e6dec05746aa7a289978b340b44abf523998c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x49b518fee7a1b850759b6baeb61e6dec05746aa7a289978b340b44abf523998c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe64691d98e2e982dacfd2758bcefc2345f42bca0d4a964bc47e8b75746ab544f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe64691d98e2e982dacfd2758bcefc2345f42bca0d4a964bc47e8b75746ab544f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x49b518fee7a1b850759b6baeb61e6dec05746aa7a289978b340b44abf523998c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e64691d98e2e982dacfd2758bcefc2345f42bca0d4a964bc47e8b75746ab544f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7689747fb3520231748bbe5eb9617666e630019e3e84ce7179c5d83b7e36050e5c05623956e599f54eb56213e4f96f69f402cd73e13c366095a3fe56bdd6a815d9ba23f3a9729bc462385c697ed9f24192c949e33ff7ed256c84979d70148b8fd8a62438ca053de2642271456dde46ce78cf7c6d1d2cc48eee658a73ad9f9ca1e550720490e2d0769e0a429773e42fc965ea1030f6c0787b4e7bc4915150a99fc758d3373561d8917c4c7d605f0cd8d2203f4d69606198437429e2f2d2bf742b28760a9c0ab51203d0c5d5b9e16d74ce0428945aaff2d0f99240a901d3233bd04e366c367ab93ecea0c206fbf01084254636df9c1f308c7d6875d5d5d37f3ce27989e39048f175f0d2dc49eaa86530def7ab70553f5d3904c843b5736025e321e7e2ab92af570e5b3bef4014c54e65316bb546eb8906f155f7b9405326740104d8f5d98dc97ac374ad0c58f4385e086891b9b2657e982eb15a367eab6683b51ea9f219abae5ca39f669a1a88a82e14efd4192a3edbe04a12d35679cf6338130d67f37c324464d16cc866be846b0304ef9fd3c6611e6cdf1277d65f6b2a58ffb61ba979740b8df72816602071e979e6029c9307d718ffdc70f37ea0019353c06b0fb56d8e3738dfdb18418e952092e8625b51749f276cc6ae416a85bd070c61e65240d8c2719c76b0420f84ece41c9be0f93d4f30581c28f69768395163937f95b86da30fa76b6937870245d9250e06b6e07dffea8f849a37647378dd59ac8365a37dd908eea26be2f53375e1dbee32ecaa7e957eace8c6f0883e4ef830485bd43b2b7851a0b11497f752d3ee4560e312a7a91b7b2a88c109737c92feb7807d481ac3fd823f038c4ba82df40a60982a7c7a6f6ba2cb95233c257b30e1c9d3c84aa37b6f4268fec34fb9eef1f8602e6a7bf1ebfa162680b57af09f7a7fc584055ff32d68a92e59ddaf20bcaaaa70d5970fd71c04cdbab46cf86e566e870664b6df2c6861347b2a3886788bbebbd03cbb51ed29357f699c8b974c61528a0423f67a837bfab83afa78a0bff70a653ea0f398f73632d5e3bea0a31115d65486fb6d667110448e0208264a3f76f35972666e7aa7339f23b08e6028616337a0366016601d6014600b630e6db38e73095e7baea6a6c7c4c2dfeb977efac326af552d87635706352bf1695bb9e53d5ad3ba1191ea65ae1880d46c687605148e427a09d40172dbdd5fc72fffb1443080a39a0ee77feed9ddc9050affce41d68c34ad97c484f204a987bcfaf46b9fa4a9ed2dad3738771a3cf86b43f303a8db8cde3ed8a40ae35574b9084f4cab88701d150e628d9b2a33e71c8f9fb0ce9e72866257691776f999b7ddf64f22532351bd34743e08facd1acc94b0d6b56bf97491d5ed9d726af684d1a47abcb243b7c29d12a315e939f70af8d2617df63567c3bc56c16609a27871af77631fe1ccaa0d15f8da9bd9a712a544abb92b925b1d7561fced60b09b6b22f2121b105a65a209e151b76b31be481d57353d10a1d968ca7a185495a8a2935571a0d17443a327bf11cb421baca9064bc4e4497c7d4c486c40082cc2d01b3f6023b726de95ac2ad53ae0b731d741676338181e66c8ac8daf0d54776827987e79d9f617c51f6f4b87cf8fee734c99e5e3fc2e37f17e626cbfd1195157215d10fa39b4b0947c3339139b280c0b042da7ec93a24416d5c52e0ba21ec9d39d6fbcd3d74266580eef6ca9bb9d76bb4dc441f3d6d0cf38307b505251deea82ab39f9ccd17a6507bf16b38640679c22f2134e8258f79b", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -108,8 +92,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x7f120206" ] diff --git a/GeneralStateTests/stRandom/randomStatetest46.json b/GeneralStateTests/stRandom/randomStatetest46.json index d2e5eac80..08849ea2b 100644 --- a/GeneralStateTests/stRandom/randomStatetest46.json +++ b/GeneralStateTests/stRandom/randomStatetest46.json @@ -2,91 +2,76 @@ "randomStatetest46" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest46Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x2f7e230c", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000004560005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x7fffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xb656", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b377e526cc", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7183e605a39b0bb03e629f510e4bff48e9e676076d919f3792fd572048740b02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7183e605a39b0bb03e629f510e4bff48e9e676076d919f3792fd572048740b02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7183e605a39b0bb03e629f510e4bff48e9e676076d919f3792fd572048740b02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7183e605a39b0bb03e629f510e4bff48e9e676076d919f3792fd572048740b02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7183e605a39b0bb03e629f510e4bff48e9e676076d919f3792fd572048740b02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "89a31aea399e1cdfed3e8749b53b15f3045d5243a20ef62d26bc7c1722a18e22", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000004560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x2f7e230c" ] diff --git a/GeneralStateTests/stRandom/randomStatetest460.json b/GeneralStateTests/stRandom/randomStatetest460.json index c5aa3f712..7bc5c0f57 100644 --- a/GeneralStateTests/stRandom/randomStatetest460.json +++ b/GeneralStateTests/stRandom/randomStatetest460.json @@ -2,92 +2,77 @@ "randomStatetest460" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest460Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1518569663", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000003a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350046f16a23c6c90739ba201697b4315778a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x16a23c6c90739ba201697b4315778a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49755", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998481380628", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2e82af4267e287bf6a3326cfd327cd098d9a4d2aea736c45206b69c46cde2f93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2e82af4267e287bf6a3326cfd327cd098d9a4d2aea736c45206b69c46cde2f93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2e82af4267e287bf6a3326cfd327cd098d9a4d2aea736c45206b69c46cde2f93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2e82af4267e287bf6a3326cfd327cd098d9a4d2aea736c45206b69c46cde2f93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2e82af4267e287bf6a3326cfd327cd098d9a4d2aea736c45206b69c46cde2f93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2e82af4267e287bf6a3326cfd327cd098d9a4d2aea736c45206b69c46cde2f93", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000003a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350046f16a23c6c90739ba201697b4315778a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0e831685" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5a8388bf" + "1518569663" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest461.json b/GeneralStateTests/stRandom/randomStatetest461.json index 76eff8268..2291405c8 100644 --- a/GeneralStateTests/stRandom/randomStatetest461.json +++ b/GeneralStateTests/stRandom/randomStatetest461.json @@ -2,92 +2,77 @@ "randomStatetest461" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest461Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "548509958", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350517f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4251525960005155", + "nonce" : "0", + "storage" : { + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0xc380" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "59748", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999451430340", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2411c06c4e0334f8dc399d4c79457c476893bf26d2d6ae8afa996d60de586d5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2411c06c4e0334f8dc399d4c79457c476893bf26d2d6ae8afa996d60de586d5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2411c06c4e0334f8dc399d4c79457c476893bf26d2d6ae8afa996d60de586d5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2411c06c4e0334f8dc399d4c79457c476893bf26d2d6ae8afa996d60de586d5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2411c06c4e0334f8dc399d4c79457c476893bf26d2d6ae8afa996d60de586d5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2411c06c4e0334f8dc399d4c79457c476893bf26d2d6ae8afa996d60de586d5d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350517f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4251525960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x47649f15" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x20b19906" + "548509958" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest462.json b/GeneralStateTests/stRandom/randomStatetest462.json index f15f08826..ce50ab210 100644 --- a/GeneralStateTests/stRandom/randomStatetest462.json +++ b/GeneralStateTests/stRandom/randomStatetest462.json @@ -2,92 +2,77 @@ "randomStatetest462" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest462Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1447977690", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000006f8e0186019d029d1354681482826f375560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x8e0186019d029d1354681482826f3755" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50330", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998551972026", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x30fc769caa24d621be5bcff4ec19d64892bad9931be765e05c82206aa98f7d68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x30fc769caa24d621be5bcff4ec19d64892bad9931be765e05c82206aa98f7d68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x30fc769caa24d621be5bcff4ec19d64892bad9931be765e05c82206aa98f7d68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x30fc769caa24d621be5bcff4ec19d64892bad9931be765e05c82206aa98f7d68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x30fc769caa24d621be5bcff4ec19d64892bad9931be765e05c82206aa98f7d68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "30fc769caa24d621be5bcff4ec19d64892bad9931be765e05c82206aa98f7d68", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000006f8e0186019d029d1354681482826f375560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3c8ef93a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x564e62da" + "1447977690" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest464.json b/GeneralStateTests/stRandom/randomStatetest464.json index 4aff925e9..58563f49e 100644 --- a/GeneralStateTests/stRandom/randomStatetest464.json +++ b/GeneralStateTests/stRandom/randomStatetest464.json @@ -2,92 +2,77 @@ "randomStatetest464" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest464Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2396601", + "code" : "0x447f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82095560005155", + "nonce" : "0", + "storage" : { + "0xffffffffffffffffffffffffffffffffffffffff" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "53169", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999997550276", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6a8d2c6e4b289b2382dd8aa04960a1b0aa05200230948a693867cd4eba0c49bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6a8d2c6e4b289b2382dd8aa04960a1b0aa05200230948a693867cd4eba0c49bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6a8d2c6e4b289b2382dd8aa04960a1b0aa05200230948a693867cd4eba0c49bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6a8d2c6e4b289b2382dd8aa04960a1b0aa05200230948a693867cd4eba0c49bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6a8d2c6e4b289b2382dd8aa04960a1b0aa05200230948a693867cd4eba0c49bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6a8d2c6e4b289b2382dd8aa04960a1b0aa05200230948a693867cd4eba0c49bb", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x447f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82095560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x31bad908" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2491b9" + "2396601" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest465.json b/GeneralStateTests/stRandom/randomStatetest465.json index 2e5b7067c..d5901f864 100644 --- a/GeneralStateTests/stRandom/randomStatetest465.json +++ b/GeneralStateTests/stRandom/randomStatetest465.json @@ -2,91 +2,76 @@ "randomStatetest465" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest465Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x5de12c27", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5437f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000160005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xc856", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b349820bb1", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf86368de65d734ca2c25bda227757d798e3a8a66dc8ce18ddceed0bd121a2518", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf86368de65d734ca2c25bda227757d798e3a8a66dc8ce18ddceed0bd121a2518", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf86368de65d734ca2c25bda227757d798e3a8a66dc8ce18ddceed0bd121a2518", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf86368de65d734ca2c25bda227757d798e3a8a66dc8ce18ddceed0bd121a2518", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf86368de65d734ca2c25bda227757d798e3a8a66dc8ce18ddceed0bd121a2518", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f86368de65d734ca2c25bda227757d798e3a8a66dc8ce18ddceed0bd121a2518", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5437f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000160005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x5de12c27" ] diff --git a/GeneralStateTests/stRandom/randomStatetest466.json b/GeneralStateTests/stRandom/randomStatetest466.json index 38784fd9d..0a79f5d37 100644 --- a/GeneralStateTests/stRandom/randomStatetest466.json +++ b/GeneralStateTests/stRandom/randomStatetest466.json @@ -2,91 +2,77 @@ "randomStatetest466" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest466Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x6ac01f3a", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff4244904244045560005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x020000", + "0x83" : "0x03e8" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x01077c", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b33ca2d978", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc1f3c0aa5128dab2961bb8894332602d2434bb572e83f0e66d5e6bdda2c8c08d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc1f3c0aa5128dab2961bb8894332602d2434bb572e83f0e66d5e6bdda2c8c08d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc1f3c0aa5128dab2961bb8894332602d2434bb572e83f0e66d5e6bdda2c8c08d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc1f3c0aa5128dab2961bb8894332602d2434bb572e83f0e66d5e6bdda2c8c08d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc1f3c0aa5128dab2961bb8894332602d2434bb572e83f0e66d5e6bdda2c8c08d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8b81447cdcd4755c4a1ec09b07a61216dd66106844fe384b5b0e9a7ddf83055d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff4244904244045560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +87,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x6ac01f3a" ] diff --git a/GeneralStateTests/stRandom/randomStatetest467.json b/GeneralStateTests/stRandom/randomStatetest467.json index 2f6e39848..9508b08a4 100644 --- a/GeneralStateTests/stRandom/randomStatetest467.json +++ b/GeneralStateTests/stRandom/randomStatetest467.json @@ -2,17 +2,53 @@ "randomStatetest467" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest467Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x6e30a0e3", + "code" : "0x700ab6605e03171122aeebd20b63699a72d454628639346ffaf92bcd1855c6dde5c90ba78a966a256c777ce8880c23f90f4a2ecc999a6cd42da7121d5e1fde1c9c340f9660b571a71e20a5753bc4e291adbd41a228289a0be175a606bc44dd2079ece46a2cba498bee0d80a41673d8016e7232f97a66b29954364570f6e2d08b6d429c6a75f737c594aca21580bc0d60e67c38a50ce1ddf0ce9963fd79da8a590429f5fcfb6e7fd9ee2d27201f95707235ce3dbc5997e44baa174111977f51dc6b333a9a63483e6a3d6f423ed5778057702664b65d4af9aab14d773a787d60bd24c439b29533c6b172278b6a78e64f8e319fbd6b45eeca466afd1eb2eecbaeed773da8711c4c65787e0a0a1297f525b7418f49fbc1b2446a847d74bb0a66e3b06ef70d8a8aa09a910a6be623c6a8239960381512da962eb868a21f99d90741128fcb711e029cff42f4f8f5d35947c4a7b39cff7fd46f916cc8612b146bbf52db1cd36e6c2fce7cd9ed232e21946081d78d87e61bc42fce313fa32b458d1e898e52cc2e607570a7e1d2ae3b5b7d58e0a70396bcfaae0789cd9202876488bb595d457a45bc48e190f5d56b34be6d244070ffe02107ceaf9313db08d9a1809b366fc956e6c5567da1d8a656406871eb0dd46268b5127366225cb464667bd081c949847a95e2821f589dad60c061ef2fa36b9e17c2b3a94181a8f8a89b486734ca1a8a0c86c26d076004601160066012635e0d738673095e7baea6a6c7c4c2dfeb977efac326af552d87636158e2e1f166e10de5d590572335", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x615a2b94", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b2d7d933b7", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -26,77 +62,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3bc552cd25f5b09eebbe4dd40ef523874785378d150321e05dc89f855ea35178", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3bc552cd25f5b09eebbe4dd40ef523874785378d150321e05dc89f855ea35178", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe8479c587ba5b6697c96becd91817b010279c8e80a126642770f338214de201d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe8479c587ba5b6697c96becd91817b010279c8e80a126642770f338214de201d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3bc552cd25f5b09eebbe4dd40ef523874785378d150321e05dc89f855ea35178", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e8479c587ba5b6697c96becd91817b010279c8e80a126642770f338214de201d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x700ab6605e03171122aeebd20b63699a72d454628639346ffaf92bcd1855c6dde5c90ba78a966a256c777ce8880c23f90f4a2ecc999a6cd42da7121d5e1fde1c9c340f9660b571a71e20a5753bc4e291adbd41a228289a0be175a606bc44dd2079ece46a2cba498bee0d80a41673d8016e7232f97a66b29954364570f6e2d08b6d429c6a75f737c594aca21580bc0d60e67c38a50ce1ddf0ce9963fd79da8a590429f5fcfb6e7fd9ee2d27201f95707235ce3dbc5997e44baa174111977f51dc6b333a9a63483e6a3d6f423ed5778057702664b65d4af9aab14d773a787d60bd24c439b29533c6b172278b6a78e64f8e319fbd6b45eeca466afd1eb2eecbaeed773da8711c4c65787e0a0a1297f525b7418f49fbc1b2446a847d74bb0a66e3b06ef70d8a8aa09a910a6be623c6a8239960381512da962eb868a21f99d90741128fcb711e029cff42f4f8f5d35947c4a7b39cff7fd46f916cc8612b146bbf52db1cd36e6c2fce7cd9ed232e21946081d78d87e61bc42fce313fa32b458d1e898e52cc2e607570a7e1d2ae3b5b7d58e0a70396bcfaae0789cd9202876488bb595d457a45bc48e190f5d56b34be6d244070ffe02107ceaf9313db08d9a1809b366fc956e6c5567da1d8a656406871eb0dd46268b5127366225cb464667bd081c949847a95e2821f589dad60c061ef2fa36b9e17c2b3a94181a8f8a89b486734ca1a8a0c86c26d076004601160066012635e0d738673095e7baea6a6c7c4c2dfeb977efac326af552d87636158e2e1f166e10de5d590572335", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -111,8 +95,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x6e30a0e3" ] diff --git a/GeneralStateTests/stRandom/randomStatetest468.json b/GeneralStateTests/stRandom/randomStatetest468.json index 8368706f5..b1802798c 100644 --- a/GeneralStateTests/stRandom/randomStatetest468.json +++ b/GeneralStateTests/stRandom/randomStatetest468.json @@ -2,92 +2,76 @@ "randomStatetest468" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest468Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "0x44404144434542425220356a3b1a", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "400046", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999600000", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb775d6e61ee51fcc8412cd4ab306cc7ee30327cdb4d7997dd1872064d4818fdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb775d6e61ee51fcc8412cd4ab306cc7ee30327cdb4d7997dd1872064d4818fdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb775d6e61ee51fcc8412cd4ab306cc7ee30327cdb4d7997dd1872064d4818fdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb775d6e61ee51fcc8412cd4ab306cc7ee30327cdb4d7997dd1872064d4818fdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb775d6e61ee51fcc8412cd4ab306cc7ee30327cdb4d7997dd1872064d4818fdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9e25620dd9039c8044b101b6d5b5e40c8c2a7c9cf347ca4cbae7e9898dd004a1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x44404144434542425220356a3b1a", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest469.json b/GeneralStateTests/stRandom/randomStatetest469.json index d3d96819a..92b5b8c92 100644 --- a/GeneralStateTests/stRandom/randomStatetest469.json +++ b/GeneralStateTests/stRandom/randomStatetest469.json @@ -2,17 +2,53 @@ "randomStatetest469" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest469Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1762323696", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350f36409156a6aa261413b56f20855", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "456118", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998237220232", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -23,78 +59,26 @@ } ], "out" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0xd71ce638907117f6bdacd55d5547feb04ea50a8c2da296dc887f5bbb909540b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd71ce638907117f6bdacd55d5547feb04ea50a8c2da296dc887f5bbb909540b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd71ce638907117f6bdacd55d5547feb04ea50a8c2da296dc887f5bbb909540b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd71ce638907117f6bdacd55d5547feb04ea50a8c2da296dc887f5bbb909540b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd71ce638907117f6bdacd55d5547feb04ea50a8c2da296dc887f5bbb909540b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d71ce638907117f6bdacd55d5547feb04ea50a8c2da296dc887f5bbb909540b5", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350f36409156a6aa261413b56f20855", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -106,12 +90,12 @@ "gasLimit" : [ "0x39619002" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x690aecf0" + "1762323696" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest47.json b/GeneralStateTests/stRandom/randomStatetest47.json index 90f484e61..51e0d151d 100644 --- a/GeneralStateTests/stRandom/randomStatetest47.json +++ b/GeneralStateTests/stRandom/randomStatetest47.json @@ -2,92 +2,77 @@ "randomStatetest47" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest47Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2007082101", + "code" : "0x437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350437f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f1544898b167c6a6f6d5b953714457e5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x1544898b167c6a6f6d5b953714457e55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51544", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997992866401", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc749fbe6272d55b32cd73500b502d49abfaabb3e762944260687b705f834d5a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc749fbe6272d55b32cd73500b502d49abfaabb3e762944260687b705f834d5a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc749fbe6272d55b32cd73500b502d49abfaabb3e762944260687b705f834d5a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc749fbe6272d55b32cd73500b502d49abfaabb3e762944260687b705f834d5a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc749fbe6272d55b32cd73500b502d49abfaabb3e762944260687b705f834d5a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c749fbe6272d55b32cd73500b502d49abfaabb3e762944260687b705f834d5a7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350437f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f1544898b167c6a6f6d5b953714457e5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3f53d841" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x77a1a475" + "2007082101" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest470.json b/GeneralStateTests/stRandom/randomStatetest470.json index 74fe47675..0ca0d2a13 100644 --- a/GeneralStateTests/stRandom/randomStatetest470.json +++ b/GeneralStateTests/stRandom/randomStatetest470.json @@ -2,92 +2,77 @@ "randomStatetest470" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest470Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1740863815", + "code" : "0x457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000000b60005155", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45343", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998259090888", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x803f04e36d462235dee12690809f33cb0020c810a6b421a46f97a89b5fade3b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x803f04e36d462235dee12690809f33cb0020c810a6b421a46f97a89b5fade3b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x803f04e36d462235dee12690809f33cb0020c810a6b421a46f97a89b5fade3b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x803f04e36d462235dee12690809f33cb0020c810a6b421a46f97a89b5fade3b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x803f04e36d462235dee12690809f33cb0020c810a6b421a46f97a89b5fade3b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "803f04e36d462235dee12690809f33cb0020c810a6b421a46f97a89b5fade3b3", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000000b60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x25a86258" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x67c37947" + "1740863815" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest471.json b/GeneralStateTests/stRandom/randomStatetest471.json index 585e92a50..c0c0f9b32 100644 --- a/GeneralStateTests/stRandom/randomStatetest471.json +++ b/GeneralStateTests/stRandom/randomStatetest471.json @@ -2,92 +2,77 @@ "randomStatetest471" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest471Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1662521271", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09650618701355040655183a51377d8260005155", + "nonce" : "0", + "storage" : { + "0x061870135504" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "54197", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998337424578", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9fbe514a2a700d3b0185d85ca7dc85d74af0ceaf8ad297c54155208387c44ec0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9fbe514a2a700d3b0185d85ca7dc85d74af0ceaf8ad297c54155208387c44ec0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9fbe514a2a700d3b0185d85ca7dc85d74af0ceaf8ad297c54155208387c44ec0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9fbe514a2a700d3b0185d85ca7dc85d74af0ceaf8ad297c54155208387c44ec0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9fbe514a2a700d3b0185d85ca7dc85d74af0ceaf8ad297c54155208387c44ec0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9fbe514a2a700d3b0185d85ca7dc85d74af0ceaf8ad297c54155208387c44ec0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09650618701355040655183a51377d8260005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x305bc4a4" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x63180fb7" + "1662521271" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest472.json b/GeneralStateTests/stRandom/randomStatetest472.json index 6bd357132..01ae91d33 100644 --- a/GeneralStateTests/stRandom/randomStatetest472.json +++ b/GeneralStateTests/stRandom/randomStatetest472.json @@ -2,92 +2,76 @@ "randomStatetest472" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest472Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1691421230", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b541437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff090a60005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "35799", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998308543017", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc9b499ab5875451743ab43a7223fc04505840740850b00c23af8ac46efbec207", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf8fc68962ca0b53cbf683816a31e9d1d0fc46969442d5c8e09a269d65d25eca3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc9b499ab5875451743ab43a7223fc04505840740850b00c23af8ac46efbec207", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc9b499ab5875451743ab43a7223fc04505840740850b00c23af8ac46efbec207", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf8fc68962ca0b53cbf683816a31e9d1d0fc46969442d5c8e09a269d65d25eca3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c9b499ab5875451743ab43a7223fc04505840740850b00c23af8ac46efbec207", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b541437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff090a60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x6d4e6c85" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x64d10a2e" + "1691421230" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest473.json b/GeneralStateTests/stRandom/randomStatetest473.json index 03d28a995..f8229f30a 100644 --- a/GeneralStateTests/stRandom/randomStatetest473.json +++ b/GeneralStateTests/stRandom/randomStatetest473.json @@ -2,92 +2,77 @@ "randomStatetest473" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest473Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1147652673", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff317f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b59102095560005155", + "nonce" : "0", + "storage" : { + "0xffffffffffffffffffffffff6bacfb1469f9a4d5674a85b75f951d72d7a58e4a" : "0xc350" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "56652", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998852290721", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x04d6b581202997058f403b27486f229cd5957b14c111d18ee9d55f51a0989a05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x04d6b581202997058f403b27486f229cd5957b14c111d18ee9d55f51a0989a05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc3b4377f40fdd50b14dff23a822170d4f067e723a800569efdb4e1b9f6e57cf8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc3b4377f40fdd50b14dff23a822170d4f067e723a800569efdb4e1b9f6e57cf8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x04d6b581202997058f403b27486f229cd5957b14c111d18ee9d55f51a0989a05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c3b4377f40fdd50b14dff23a822170d4f067e723a800569efdb4e1b9f6e57cf8", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff317f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b59102095560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3904c84b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4467ca41" + "1147652673" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest474.json b/GeneralStateTests/stRandom/randomStatetest474.json index b2f70ed13..19e45b112 100644 --- a/GeneralStateTests/stRandom/randomStatetest474.json +++ b/GeneralStateTests/stRandom/randomStatetest474.json @@ -2,92 +2,77 @@ "randomStatetest474" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest474Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2065350381", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe027f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f7d6f6b1051778ea1670387810b58055560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x7d6f6b1051778ea1670387810b580555" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48782", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997934600883", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x924815f435d63091a25b4b80aee866e4b9e7f5d48d63798efd5598340e5f5de3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x924815f435d63091a25b4b80aee866e4b9e7f5d48d63798efd5598340e5f5de3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x924815f435d63091a25b4b80aee866e4b9e7f5d48d63798efd5598340e5f5de3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x924815f435d63091a25b4b80aee866e4b9e7f5d48d63798efd5598340e5f5de3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x924815f435d63091a25b4b80aee866e4b9e7f5d48d63798efd5598340e5f5de3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "924815f435d63091a25b4b80aee866e4b9e7f5d48d63798efd5598340e5f5de3", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe027f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f7d6f6b1051778ea1670387810b58055560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0b5a2160" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7b1abeed" + "2065350381" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest475.json b/GeneralStateTests/stRandom/randomStatetest475.json index ee6736c5c..18499d672 100644 --- a/GeneralStateTests/stRandom/randomStatetest475.json +++ b/GeneralStateTests/stRandom/randomStatetest475.json @@ -2,92 +2,77 @@ "randomStatetest475" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest475Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "428358692", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955", + "nonce" : "0", + "storage" : { + "0xfffffffffffffffffffffffe000000000000000000000001ffffffffffffffff" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50778", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999571590576", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc302eb7ff4e4283445a61c43514c0011ef5b95c4be283f30da3a407c8c31d9a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc302eb7ff4e4283445a61c43514c0011ef5b95c4be283f30da3a407c8c31d9a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc302eb7ff4e4283445a61c43514c0011ef5b95c4be283f30da3a407c8c31d9a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc302eb7ff4e4283445a61c43514c0011ef5b95c4be283f30da3a407c8c31d9a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc302eb7ff4e4283445a61c43514c0011ef5b95c4be283f30da3a407c8c31d9a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c302eb7ff4e4283445a61c43514c0011ef5b95c4be283f30da3a407c8c31d9a7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4c9f0852" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x19883c24" + "428358692" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest476.json b/GeneralStateTests/stRandom/randomStatetest476.json index e75fcc749..95b8a5c5a 100644 --- a/GeneralStateTests/stRandom/randomStatetest476.json +++ b/GeneralStateTests/stRandom/randomStatetest476.json @@ -2,17 +2,54 @@ "randomStatetest476" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest476Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2098819291", + "code" : "0x447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000010000000000000000000000000000000000000000448243628c0970843ba460005155", + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "234981086", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997666199669", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -27,78 +64,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x24c926a05cf07d794c1d83f0f60093f1efb7da76d285c21befb885cf561d7b4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x24c926a05cf07d794c1d83f0f60093f1efb7da76d285c21befb885cf561d7b4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2c7c47e9cb899ce0782f3a8e0c3acc3b789536efa478ee8e64c11ea1eb1a7e81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2c7c47e9cb899ce0782f3a8e0c3acc3b789536efa478ee8e64c11ea1eb1a7e81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x24c926a05cf07d794c1d83f0f60093f1efb7da76d285c21befb885cf561d7b4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2c7c47e9cb899ce0782f3a8e0c3acc3b789536efa478ee8e64c11ea1eb1a7e81", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000010000000000000000000000000000000000000000448243628c0970843ba460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -110,12 +95,12 @@ "gasLimit" : [ "0x5a7f675f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7d1970db" + "2098819291" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest477.json b/GeneralStateTests/stRandom/randomStatetest477.json index 19fb977d5..2ceb0e400 100644 --- a/GeneralStateTests/stRandom/randomStatetest477.json +++ b/GeneralStateTests/stRandom/randomStatetest477.json @@ -2,92 +2,77 @@ "randomStatetest477" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest477Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "11119317", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f9084a3758d3456763aa4f09c8b735b5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x9084a3758d3456763aa4f09c8b735b55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50457", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999988830272", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3e4f5a8b6e2d7207666c21e44646fb978e0a1202b6aeb7b46747af86eeef7ee0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3e4f5a8b6e2d7207666c21e44646fb978e0a1202b6aeb7b46747af86eeef7ee0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3e4f5a8b6e2d7207666c21e44646fb978e0a1202b6aeb7b46747af86eeef7ee0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3e4f5a8b6e2d7207666c21e44646fb978e0a1202b6aeb7b46747af86eeef7ee0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3e4f5a8b6e2d7207666c21e44646fb978e0a1202b6aeb7b46747af86eeef7ee0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3e4f5a8b6e2d7207666c21e44646fb978e0a1202b6aeb7b46747af86eeef7ee0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f9084a3758d3456763aa4f09c8b735b5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6373c048" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0xa9aad5" + "11119317" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest478.json b/GeneralStateTests/stRandom/randomStatetest478.json index ef8bd428d..1cb65b09b 100644 --- a/GeneralStateTests/stRandom/randomStatetest478.json +++ b/GeneralStateTests/stRandom/randomStatetest478.json @@ -2,92 +2,76 @@ "randomStatetest478" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest478Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "844312201", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001447f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f1606588a909558021569", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "25756", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999155662089", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1b827147bee0055ef753387d41f23fc8e5599501ec201dc57e209e9da6ced93d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1b827147bee0055ef753387d41f23fc8e5599501ec201dc57e209e9da6ced93d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1b827147bee0055ef753387d41f23fc8e5599501ec201dc57e209e9da6ced93d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1b827147bee0055ef753387d41f23fc8e5599501ec201dc57e209e9da6ced93d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1b827147bee0055ef753387d41f23fc8e5599501ec201dc57e209e9da6ced93d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1b827147bee0055ef753387d41f23fc8e5599501ec201dc57e209e9da6ced93d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001447f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f1606588a909558021569", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x0d3c510a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x32532e89" + "844312201" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest48.json b/GeneralStateTests/stRandom/randomStatetest48.json index 959bf4e92..935a90100 100644 --- a/GeneralStateTests/stRandom/randomStatetest48.json +++ b/GeneralStateTests/stRandom/randomStatetest48.json @@ -2,17 +2,53 @@ "randomStatetest48" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest48Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x5c4c6e38", + "code" : "0x38785231d8e75db11d6da7040cee1a12ebf739e5022caa60f92d51636060b6d96d698fc0e9ced2f6a0087344559c43612f0561a73ba3600a600d6014600963186262c173095e7baea6a6c7c4c2dfeb977efac326af552d876370f82d9ff1604166f49ef1fea120af77ba4cce3f35bc52ca5c40bf14c77e95ea92e69520143ff9c7827bcfe760aee06d241e31a0773476da22f7ce8131475838c23b59f7a3c46b2b99c0955e169ee3527ca9f7674467bdf2c0eebf6f60129232", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x70fab3c7", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b2da1cde2f", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -26,77 +62,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xbba6f89356c1dd64d8a64751b4d11f53db94532bc404bbf22f3ce85969f3cb09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xbba6f89356c1dd64d8a64751b4d11f53db94532bc404bbf22f3ce85969f3cb09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xad61be3564d4de068c89e806f88633ecfcaf3505f0b2f2dd59ab437c46f48d08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xad61be3564d4de068c89e806f88633ecfcaf3505f0b2f2dd59ab437c46f48d08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbba6f89356c1dd64d8a64751b4d11f53db94532bc404bbf22f3ce85969f3cb09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ad61be3564d4de068c89e806f88633ecfcaf3505f0b2f2dd59ab437c46f48d08", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x38785231d8e75db11d6da7040cee1a12ebf739e5022caa60f92d51636060b6d96d698fc0e9ced2f6a0087344559c43612f0561a73ba3600a600d6014600963186262c173095e7baea6a6c7c4c2dfeb977efac326af552d876370f82d9ff1604166f49ef1fea120af77ba4cce3f35bc52ca5c40bf14c77e95ea92e69520143ff9c7827bcfe760aee06d241e31a0773476da22f7ce8131475838c23b59f7a3c46b2b99c0955e169ee3527ca9f7674467bdf2c0eebf6f60129232", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -111,8 +95,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x5c4c6e38" ] diff --git a/GeneralStateTests/stRandom/randomStatetest480.json b/GeneralStateTests/stRandom/randomStatetest480.json index 7e866554b..b50a5a20c 100644 --- a/GeneralStateTests/stRandom/randomStatetest480.json +++ b/GeneralStateTests/stRandom/randomStatetest480.json @@ -2,92 +2,77 @@ "randomStatetest480" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest480Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "745095931", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff037f0000000000000000000000000000000000000000000000000000000000000000427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f5af3a474ff64f3a37d51f36a6a607f5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x5af3a474ff64f3a37d51f36a6a607f55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50706", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999254853409", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7ad3dbf43136fb19c06e40ab6cfb9bc86bf9252e96f0d146686302f2c0297a2a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7ad3dbf43136fb19c06e40ab6cfb9bc86bf9252e96f0d146686302f2c0297a2a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7ad3dbf43136fb19c06e40ab6cfb9bc86bf9252e96f0d146686302f2c0297a2a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7ad3dbf43136fb19c06e40ab6cfb9bc86bf9252e96f0d146686302f2c0297a2a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7ad3dbf43136fb19c06e40ab6cfb9bc86bf9252e96f0d146686302f2c0297a2a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7ad3dbf43136fb19c06e40ab6cfb9bc86bf9252e96f0d146686302f2c0297a2a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff037f0000000000000000000000000000000000000000000000000000000000000000427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f5af3a474ff64f3a37d51f36a6a607f5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7db624ae" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2c6942fb" + "745095931" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest481.json b/GeneralStateTests/stRandom/randomStatetest481.json index 929314e88..a37a0cbe6 100644 --- a/GeneralStateTests/stRandom/randomStatetest481.json +++ b/GeneralStateTests/stRandom/randomStatetest481.json @@ -2,17 +2,53 @@ "randomStatetest481" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest481Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x447f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09437f0000000000000000000000010000000000000000000000000000000000000000a2695a7d52064361127350", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "547156688", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999452843358", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -25,78 +61,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x91f751eb8ebd34d4ed7c7482f702b43ab8ce666d00ac98b69d006bb3ef293e5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x91f751eb8ebd34d4ed7c7482f702b43ab8ce666d00ac98b69d006bb3ef293e5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x91f751eb8ebd34d4ed7c7482f702b43ab8ce666d00ac98b69d006bb3ef293e5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x91f751eb8ebd34d4ed7c7482f702b43ab8ce666d00ac98b69d006bb3ef293e5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x91f751eb8ebd34d4ed7c7482f702b43ab8ce666d00ac98b69d006bb3ef293e5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1a07c553e3ea92e24b9b7d2089974bded1ef130e4c27c60fb47f5f398f7b8f14", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x447f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff09437f0000000000000000000000010000000000000000000000000000000000000000a2695a7d52064361127350", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -108,12 +92,12 @@ "gasLimit" : [ "0x209cf2a2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x430c0389" + "1124860809" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest482.json b/GeneralStateTests/stRandom/randomStatetest482.json index 5669796be..b758b36fb 100644 --- a/GeneralStateTests/stRandom/randomStatetest482.json +++ b/GeneralStateTests/stRandom/randomStatetest482.json @@ -2,92 +2,77 @@ "randomStatetest482" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest482Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1668252863", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f027c9d313d9b09376505927c8e71565560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x027c9d313d9b09376505927c8e715655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52441", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998331694742", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x53d900ff9c6f88ac0f4c423646ab5ad0bf61853ef03ca31800dab4f5ae6c5e6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x53d900ff9c6f88ac0f4c423646ab5ad0bf61853ef03ca31800dab4f5ae6c5e6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x53d900ff9c6f88ac0f4c423646ab5ad0bf61853ef03ca31800dab4f5ae6c5e6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x53d900ff9c6f88ac0f4c423646ab5ad0bf61853ef03ca31800dab4f5ae6c5e6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x53d900ff9c6f88ac0f4c423646ab5ad0bf61853ef03ca31800dab4f5ae6c5e6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "53d900ff9c6f88ac0f4c423646ab5ad0bf61853ef03ca31800dab4f5ae6c5e6d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f027c9d313d9b09376505927c8e71565560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4d741f9d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x636f84bf" + "1668252863" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest483.json b/GeneralStateTests/stRandom/randomStatetest483.json index 110a5de51..f6373d075 100644 --- a/GeneralStateTests/stRandom/randomStatetest483.json +++ b/GeneralStateTests/stRandom/randomStatetest483.json @@ -2,92 +2,77 @@ "randomStatetest483" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest483Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2129514006", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840955", + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50785", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997870435255", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1d756896619a01fb76a58466ffba5994f4a426f197b646d8d6d3486196d0a890", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1d756896619a01fb76a58466ffba5994f4a426f197b646d8d6d3486196d0a890", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1d756896619a01fb76a58466ffba5994f4a426f197b646d8d6d3486196d0a890", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1d756896619a01fb76a58466ffba5994f4a426f197b646d8d6d3486196d0a890", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1d756896619a01fb76a58466ffba5994f4a426f197b646d8d6d3486196d0a890", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1d756896619a01fb76a58466ffba5994f4a426f197b646d8d6d3486196d0a890", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe840955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x27a417be" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7eedce16" + "2129514006" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest484.json b/GeneralStateTests/stRandom/randomStatetest484.json index d3f9ce79f..57bc0403b 100644 --- a/GeneralStateTests/stRandom/randomStatetest484.json +++ b/GeneralStateTests/stRandom/randomStatetest484.json @@ -2,92 +2,76 @@ "randomStatetest484" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest484Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff35427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5595584a2558493a25b5a6a60005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "155778310", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999844221736", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x05fb639609fc4553f7566f7aca01caba3908916c56656c72ef2d4fba8e9ddb32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x05fb639609fc4553f7566f7aca01caba3908916c56656c72ef2d4fba8e9ddb32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x05fb639609fc4553f7566f7aca01caba3908916c56656c72ef2d4fba8e9ddb32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x05fb639609fc4553f7566f7aca01caba3908916c56656c72ef2d4fba8e9ddb32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x05fb639609fc4553f7566f7aca01caba3908916c56656c72ef2d4fba8e9ddb32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "05fb639609fc4553f7566f7aca01caba3908916c56656c72ef2d4fba8e9ddb32", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff35427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5595584a2558493a25b5a6a60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x0948fcd8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1bbd5e60" + "465395296" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest485.json b/GeneralStateTests/stRandom/randomStatetest485.json index 0fc05a025..f83a6931a 100644 --- a/GeneralStateTests/stRandom/randomStatetest485.json +++ b/GeneralStateTests/stRandom/randomStatetest485.json @@ -2,92 +2,76 @@ "randomStatetest485" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest485Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000008e447f00000000000000000000000100000000000000000000000000000000000000003a1a7e", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "157799148", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999842200898", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5a92da9d20ba315a915849860cb82e883ea9b833444a30ef9aa59034a45e2b61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5a92da9d20ba315a915849860cb82e883ea9b833444a30ef9aa59034a45e2b61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5a92da9d20ba315a915849860cb82e883ea9b833444a30ef9aa59034a45e2b61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5a92da9d20ba315a915849860cb82e883ea9b833444a30ef9aa59034a45e2b61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5a92da9d20ba315a915849860cb82e883ea9b833444a30ef9aa59034a45e2b61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5a92da9d20ba315a915849860cb82e883ea9b833444a30ef9aa59034a45e2b61", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000008e447f00000000000000000000000100000000000000000000000000000000000000003a1a7e", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x0967d2be" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5dc4941a" + "1573164058" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest487.json b/GeneralStateTests/stRandom/randomStatetest487.json index 86b1c176c..3e82e6c28 100644 --- a/GeneralStateTests/stRandom/randomStatetest487.json +++ b/GeneralStateTests/stRandom/randomStatetest487.json @@ -2,92 +2,76 @@ "randomStatetest487" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest487Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "17617", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999158930906", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + }, + "ffffffffffffffffffffffffffffffffffff3cae" : { + "balance" : "841051523", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x19a6f5644266b1f5e7f9145ef7af36eb07fd60f2a5dbab0271384a36876e7371", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x19a6f5644266b1f5e7f9145ef7af36eb07fd60f2a5dbab0271384a36876e7371", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd6510ef476cba7e1a61c4e81d74ef72d3d131b167e0bba682b70341f0fb977dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd6510ef476cba7e1a61c4e81d74ef72d3d131b167e0bba682b70341f0fb977dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x19a6f5644266b1f5e7f9145ef7af36eb07fd60f2a5dbab0271384a36876e7371", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d6510ef476cba7e1a61c4e81d74ef72d3d131b167e0bba682b70341f0fb977dd", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0308ff9f708d1710086a73a0766a6b55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x26482acd" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x32216d83" + "841051523" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest488.json b/GeneralStateTests/stRandom/randomStatetest488.json index f7c81600c..4cfc5b05e 100644 --- a/GeneralStateTests/stRandom/randomStatetest488.json +++ b/GeneralStateTests/stRandom/randomStatetest488.json @@ -2,92 +2,77 @@ "randomStatetest488" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest488Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1401176215", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5427f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f3250648093577f6364a218f0907e7d5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x3250648093577f6364a218f0907e7d55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50130", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998598773701", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x41bec878da08fb2c35a75e7966eca29f801f66de7c063102305953a814c66b43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x41bec878da08fb2c35a75e7966eca29f801f66de7c063102305953a814c66b43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x41bec878da08fb2c35a75e7966eca29f801f66de7c063102305953a814c66b43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x41bec878da08fb2c35a75e7966eca29f801f66de7c063102305953a814c66b43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x41bec878da08fb2c35a75e7966eca29f801f66de7c063102305953a814c66b43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "41bec878da08fb2c35a75e7966eca29f801f66de7c063102305953a814c66b43", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5427f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f3250648093577f6364a218f0907e7d5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5663f4fe" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x53844097" + "1401176215" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest489.json b/GeneralStateTests/stRandom/randomStatetest489.json index 1d9dc8067..49f3b444e 100644 --- a/GeneralStateTests/stRandom/randomStatetest489.json +++ b/GeneralStateTests/stRandom/randomStatetest489.json @@ -2,92 +2,77 @@ "randomStatetest489" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest489Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1856101458", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000456f2b8e846b91987417705a126e7707645560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x2b8e846b91987417705a126e77076455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50834", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998143847754", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x14e961d4a120a5cc85ca21f286b423500fef5529e84c7912f2d5f0e5bf5ca134", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x14e961d4a120a5cc85ca21f286b423500fef5529e84c7912f2d5f0e5bf5ca134", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x14e961d4a120a5cc85ca21f286b423500fef5529e84c7912f2d5f0e5bf5ca134", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x14e961d4a120a5cc85ca21f286b423500fef5529e84c7912f2d5f0e5bf5ca134", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x14e961d4a120a5cc85ca21f286b423500fef5529e84c7912f2d5f0e5bf5ca134", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "14e961d4a120a5cc85ca21f286b423500fef5529e84c7912f2d5f0e5bf5ca134", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000456f2b8e846b91987417705a126e7707645560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x30ad098b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6ea1dc52" + "1856101458" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest49.json b/GeneralStateTests/stRandom/randomStatetest49.json index cd72a2868..8e9614626 100644 --- a/GeneralStateTests/stRandom/randomStatetest49.json +++ b/GeneralStateTests/stRandom/randomStatetest49.json @@ -2,91 +2,76 @@ "randomStatetest49" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest49Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x69d65f4b", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000807f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b561859c55", + "nonce" : "0x00", + "storage" : { + "0x859c" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xbedd", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b33d8ce206", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa265c829988541b742b10dcb192bbe97f8c2c06e1a14bd88d479f50e7110aa24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa265c829988541b742b10dcb192bbe97f8c2c06e1a14bd88d479f50e7110aa24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa265c829988541b742b10dcb192bbe97f8c2c06e1a14bd88d479f50e7110aa24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa265c829988541b742b10dcb192bbe97f8c2c06e1a14bd88d479f50e7110aa24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa265c829988541b742b10dcb192bbe97f8c2c06e1a14bd88d479f50e7110aa24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a265c829988541b742b10dcb192bbe97f8c2c06e1a14bd88d479f50e7110aa24", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000807f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b561859c55", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x69d65f4b" ] diff --git a/GeneralStateTests/stRandom/randomStatetest491.json b/GeneralStateTests/stRandom/randomStatetest491.json index aeda3907b..3c24566f3 100644 --- a/GeneralStateTests/stRandom/randomStatetest491.json +++ b/GeneralStateTests/stRandom/randomStatetest491.json @@ -2,92 +2,77 @@ "randomStatetest491" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest491Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1805810722", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000006fa0f670645a778c71127d3b5598308b1760005155", + "nonce" : "0", + "storage" : { + "0x" : "0xa0f670645a778c71127d3b5598308b17" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49815", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998194139509", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x319b3f153a09fba00cad7420a79438b47e69c7e406b64c29660df5012c26857a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x319b3f153a09fba00cad7420a79438b47e69c7e406b64c29660df5012c26857a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x319b3f153a09fba00cad7420a79438b47e69c7e406b64c29660df5012c26857a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x319b3f153a09fba00cad7420a79438b47e69c7e406b64c29660df5012c26857a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x319b3f153a09fba00cad7420a79438b47e69c7e406b64c29660df5012c26857a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "319b3f153a09fba00cad7420a79438b47e69c7e406b64c29660df5012c26857a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000006fa0f670645a778c71127d3b5598308b1760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x30ef58f5" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6ba27c22" + "1805810722" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest493.json b/GeneralStateTests/stRandom/randomStatetest493.json index feb97a59a..b4dd2e061 100644 --- a/GeneralStateTests/stRandom/randomStatetest493.json +++ b/GeneralStateTests/stRandom/randomStatetest493.json @@ -2,92 +2,78 @@ "randomStatetest493" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest493Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1422979897", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff095560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffff", + "0xffffffffffffffffffffffffffffffffffffffff" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "70658", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998576949491", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1634528f33c1e24f624ec36021b26c37392cdd6977a1c06fdb51935668ca398b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1634528f33c1e24f624ec36021b26c37392cdd6977a1c06fdb51935668ca398b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1634528f33c1e24f624ec36021b26c37392cdd6977a1c06fdb51935668ca398b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1634528f33c1e24f624ec36021b26c37392cdd6977a1c06fdb51935668ca398b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1634528f33c1e24f624ec36021b26c37392cdd6977a1c06fdb51935668ca398b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1634528f33c1e24f624ec36021b26c37392cdd6977a1c06fdb51935668ca398b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff095560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x1ef0f8a1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x54d0f339" + "1422979897" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest494.json b/GeneralStateTests/stRandom/randomStatetest494.json index c6def6043..a70dc08e9 100644 --- a/GeneralStateTests/stRandom/randomStatetest494.json +++ b/GeneralStateTests/stRandom/randomStatetest494.json @@ -2,92 +2,76 @@ "randomStatetest494" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest494Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x847f000000000000000000000000000000000000000000000000000000000000c35043657f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4362f03c897f50f073f219105455", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1095160435", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998904839611", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x440660f4f8e63e8399d8ff0c24d1ce4f96b1957dede66eaf4e49c5ad3bdbbdb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x440660f4f8e63e8399d8ff0c24d1ce4f96b1957dede66eaf4e49c5ad3bdbbdb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x440660f4f8e63e8399d8ff0c24d1ce4f96b1957dede66eaf4e49c5ad3bdbbdb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x440660f4f8e63e8399d8ff0c24d1ce4f96b1957dede66eaf4e49c5ad3bdbbdb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x440660f4f8e63e8399d8ff0c24d1ce4f96b1957dede66eaf4e49c5ad3bdbbdb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "440660f4f8e63e8399d8ff0c24d1ce4f96b1957dede66eaf4e49c5ad3bdbbdb0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x847f000000000000000000000000000000000000000000000000000000000000c35043657f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4362f03c897f50f073f219105455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x4146d245" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x67cc0f2d" + "1741426477" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest495.json b/GeneralStateTests/stRandom/randomStatetest495.json index dc811476e..f258ef907 100644 --- a/GeneralStateTests/stRandom/randomStatetest495.json +++ b/GeneralStateTests/stRandom/randomStatetest495.json @@ -2,92 +2,76 @@ "randomStatetest495" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest495Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "00000000427fffffffffffffffffffffffffffff" : { + "balance" : "211829998", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "15653", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999788154395", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8d5281cbe8803a800dea2b6e8f64e4078d14d21fd1bc4bab72d6ac6abce8519b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8d5281cbe8803a800dea2b6e8f64e4078d14d21fd1bc4bab72d6ac6abce8519b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4b0266280765370fc26f2ecee50a128fcc7d1ff0e578ce684a43f546fabf41ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4b0266280765370fc26f2ecee50a128fcc7d1ff0e578ce684a43f546fabf41ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8d5281cbe8803a800dea2b6e8f64e4078d14d21fd1bc4bab72d6ac6abce8519b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "4b0266280765370fc26f2ecee50a128fcc7d1ff0e578ce684a43f546fabf41ad", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000006f427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7e6410f26f519c538ea2070a6c60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x2c138ff5" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0ca044ee" + "211829998" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest496.json b/GeneralStateTests/stRandom/randomStatetest496.json index 1ddc6f639..a58171ea2 100644 --- a/GeneralStateTests/stRandom/randomStatetest496.json +++ b/GeneralStateTests/stRandom/randomStatetest496.json @@ -2,92 +2,76 @@ "randomStatetest496" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest496Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f0000000000000000000000000000000000000000000000000000000000000000355b7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3500b0b0207965560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1410953384", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998589046662", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd9d8ae88eb4d3763f05d111564017b5abe73ffb844b0b988acbbc35047e1fba5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd9d8ae88eb4d3763f05d111564017b5abe73ffb844b0b988acbbc35047e1fba5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd9d8ae88eb4d3763f05d111564017b5abe73ffb844b0b988acbbc35047e1fba5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd9d8ae88eb4d3763f05d111564017b5abe73ffb844b0b988acbbc35047e1fba5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd9d8ae88eb4d3763f05d111564017b5abe73ffb844b0b988acbbc35047e1fba5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d9d8ae88eb4d3763f05d111564017b5abe73ffb844b0b988acbbc35047e1fba5", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f0000000000000000000000000000000000000000000000000000000000000000355b7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3500b0b0207965560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x5419707a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0f4c9558" + "256677208" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest497.json b/GeneralStateTests/stRandom/randomStatetest497.json index 8e85ee025..d5c31af9e 100644 --- a/GeneralStateTests/stRandom/randomStatetest497.json +++ b/GeneralStateTests/stRandom/randomStatetest497.json @@ -2,92 +2,77 @@ "randomStatetest497" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest497Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1143211377", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff090455", + "nonce" : "0", + "storage" : { + "0x" : "0xc350" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50204", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998856738465", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc581ce49c01fd5a1819ebbc0436beab7f47e50f51b711effbcc58f4483cb0e43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc581ce49c01fd5a1819ebbc0436beab7f47e50f51b711effbcc58f4483cb0e43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc581ce49c01fd5a1819ebbc0436beab7f47e50f51b711effbcc58f4483cb0e43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc581ce49c01fd5a1819ebbc0436beab7f47e50f51b711effbcc58f4483cb0e43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc581ce49c01fd5a1819ebbc0436beab7f47e50f51b711effbcc58f4483cb0e43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c581ce49c01fd5a1819ebbc0436beab7f47e50f51b711effbcc58f4483cb0e43", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff090455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x794c8040" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x44240571" + "1143211377" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest498.json b/GeneralStateTests/stRandom/randomStatetest498.json index 8279f52f4..93a4f88e8 100644 --- a/GeneralStateTests/stRandom/randomStatetest498.json +++ b/GeneralStateTests/stRandom/randomStatetest498.json @@ -2,17 +2,54 @@ "randomStatetest498" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest498Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x74c15a91", + "code" : "0x6bd243dbcfdc6982733e4cd6261574fc6cdec93282ff50ef24d8be05d58be29301ddb00d7547f6b65997e73d232b76d6484c11eb15c87b01f89e2779c427711ba193e4e163967efd1b9315187c3227f67b9282fc7524692fbf851cb370d396d53f7a86353aacecc5c1eadeddbb3925522f935fc5ed03568fbf40261c056a124f1334cc9fa8eea2bdbf68f04c10cc08b6babcbb6ee8d3fb88dd42d06d445b5eab34cb5d64408cf652fd7568acaa81b573f66fa8781e83185438e42796631ae9a9987f714d986f94fc6354921a9367bb6b9e555f24107cb814557f8bd87547ad612c3e726f9f495b0ac9e37fbe5f23014c68d8d032bfae779a5213c33778af679417d77733645f87b6042be92c553dbb6d85a2c56b21a53c0e612ae0a8d78d60f162b52efea464ebb0472b3e7794198cdb286cd2f21f06659320130750e7aa2c83ceb2801555785c9f02455252560846587006e90cbffc955445d9ef1f55eeb07011c02cee02df12dc35b36702539873e4b766e4ae9e829a442460dd7f845cd37dc08f93bef98a4d5b53ecd4cf4dd1a5c416f92116160f0fb673c30b7873b85a2ff6331a5d371f3d109f5794d712e03493b17fc562ac7589411127e654ce32d273f8300cc8544e7bd782aa7828b543958dadf872d7f13401a51b13835cc8a36be87cc7347cdf0f7aa2df420bb03e925c117d4befbc7e69472fd75f01f3f6c966de818174aba3b7a43014c3dd39414fb3d239d72e06852ae48e6203c60a7e844d6fd61c5b519d43780d383d103989f9bfce5ed122804cba183c188f5ce47c348a96973eca904f096aed4fb77d40ca9139447527f267a028eae5e3706e1975fc3e38327505e81d0e8c9fab1f60ec7ece71cc87510f308984ebdcb8ab84e1905dfdc0a19ee3c5f37e88dc3a9f26497c51427da28f6d777d9585b4ec790722bacaa179b1dc5b086d945623f9d29f6013600c60096019634f4421eb73095e7baea6a6c7c4c2dfeb977efac326af552d87631ac754faf17506f9cc63229e7fe309b7a2f1acf074a43aa4dd2b75bf6dadf21aadb9a3e239a9592f576c9265eebd2420e2626d2b2f1f7ee7a56725d7d4fe23da45725e8b709d2976703147ef66a8fc9a6c1225df7b79eec95ddda5e91c6e19bbc55baf9d6c440cc805f0d229738d17a76f95e329f94d5bc48cc5964933f9597fb57a6f7290649722d68a72fa2d081c4547943b3bbca2edc5f4032c5c916e585fa6abd1b209e2b6fb64498a37b9796c95da3fdb8013c13ef99ed49b29282ae55458c651fdb8598b527024d2da1e8a7015f65ee4ab0178b68ab8c877d55f3c89a7f1f7bc6c0d86bc69688cbcc252972693993bf766aac4efb2b65b216cca2e721dea3f3b3df3abbbfb7b8d", + "nonce" : "0x00", + "storage" : { + "0x94198cdb286cd2f21f06659320130750e7aa2c83ceb28015" : "0xebb0472b3e" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x2ae19366", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b307c11237", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -27,77 +64,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd19bf1f6eae804b8296e8556d87b2b818573fb2ccd2dff01af563fee71b5d6e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd19bf1f6eae804b8296e8556d87b2b818573fb2ccd2dff01af563fee71b5d6e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x21d1a847eeea201a5087d9a368949ee94fabe30175c06b6836c7398d3b8b41ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x21d1a847eeea201a5087d9a368949ee94fabe30175c06b6836c7398d3b8b41ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd19bf1f6eae804b8296e8556d87b2b818573fb2ccd2dff01af563fee71b5d6e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "21d1a847eeea201a5087d9a368949ee94fabe30175c06b6836c7398d3b8b41ee", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x6bd243dbcfdc6982733e4cd6261574fc6cdec93282ff50ef24d8be05d58be29301ddb00d7547f6b65997e73d232b76d6484c11eb15c87b01f89e2779c427711ba193e4e163967efd1b9315187c3227f67b9282fc7524692fbf851cb370d396d53f7a86353aacecc5c1eadeddbb3925522f935fc5ed03568fbf40261c056a124f1334cc9fa8eea2bdbf68f04c10cc08b6babcbb6ee8d3fb88dd42d06d445b5eab34cb5d64408cf652fd7568acaa81b573f66fa8781e83185438e42796631ae9a9987f714d986f94fc6354921a9367bb6b9e555f24107cb814557f8bd87547ad612c3e726f9f495b0ac9e37fbe5f23014c68d8d032bfae779a5213c33778af679417d77733645f87b6042be92c553dbb6d85a2c56b21a53c0e612ae0a8d78d60f162b52efea464ebb0472b3e7794198cdb286cd2f21f06659320130750e7aa2c83ceb2801555785c9f02455252560846587006e90cbffc955445d9ef1f55eeb07011c02cee02df12dc35b36702539873e4b766e4ae9e829a442460dd7f845cd37dc08f93bef98a4d5b53ecd4cf4dd1a5c416f92116160f0fb673c30b7873b85a2ff6331a5d371f3d109f5794d712e03493b17fc562ac7589411127e654ce32d273f8300cc8544e7bd782aa7828b543958dadf872d7f13401a51b13835cc8a36be87cc7347cdf0f7aa2df420bb03e925c117d4befbc7e69472fd75f01f3f6c966de818174aba3b7a43014c3dd39414fb3d239d72e06852ae48e6203c60a7e844d6fd61c5b519d43780d383d103989f9bfce5ed122804cba183c188f5ce47c348a96973eca904f096aed4fb77d40ca9139447527f267a028eae5e3706e1975fc3e38327505e81d0e8c9fab1f60ec7ece71cc87510f308984ebdcb8ab84e1905dfdc0a19ee3c5f37e88dc3a9f26497c51427da28f6d777d9585b4ec790722bacaa179b1dc5b086d945623f9d29f6013600c60096019634f4421eb73095e7baea6a6c7c4c2dfeb977efac326af552d87631ac754faf17506f9cc63229e7fe309b7a2f1acf074a43aa4dd2b75bf6dadf21aadb9a3e239a9592f576c9265eebd2420e2626d2b2f1f7ee7a56725d7d4fe23da45725e8b709d2976703147ef66a8fc9a6c1225df7b79eec95ddda5e91c6e19bbc55baf9d6c440cc805f0d229738d17a76f95e329f94d5bc48cc5964933f9597fb57a6f7290649722d68a72fa2d081c4547943b3bbca2edc5f4032c5c916e585fa6abd1b209e2b6fb64498a37b9796c95da3fdb8013c13ef99ed49b29282ae55458c651fdb8598b527024d2da1e8a7015f65ee4ab0178b68ab8c877d55f3c89a7f1f7bc6c0d86bc69688cbcc252972693993bf766aac4efb2b65b216cca2e721dea3f3b3df3abbbfb7b8d", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -112,8 +97,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x74c15a91" ] diff --git a/GeneralStateTests/stRandom/randomStatetest499.json b/GeneralStateTests/stRandom/randomStatetest499.json index 297eaa1bb..c7fd85ce5 100644 --- a/GeneralStateTests/stRandom/randomStatetest499.json +++ b/GeneralStateTests/stRandom/randomStatetest499.json @@ -2,92 +2,76 @@ "randomStatetest499" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest499Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000399f869aff3b06333860005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "526560004", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999473440042", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x462ff1e3cfe9f27035a3316763bdedf8e8a992d7999aa04af6d8dd1206fac2da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x462ff1e3cfe9f27035a3316763bdedf8e8a992d7999aa04af6d8dd1206fac2da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x462ff1e3cfe9f27035a3316763bdedf8e8a992d7999aa04af6d8dd1206fac2da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x462ff1e3cfe9f27035a3316763bdedf8e8a992d7999aa04af6d8dd1206fac2da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x462ff1e3cfe9f27035a3316763bdedf8e8a992d7999aa04af6d8dd1206fac2da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "462ff1e3cfe9f27035a3316763bdedf8e8a992d7999aa04af6d8dd1206fac2da", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000399f869aff3b06333860005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x1f62aad6" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7aab34a5" + "2058040485" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest5.json b/GeneralStateTests/stRandom/randomStatetest5.json index 44f5b9647..e5d2fa472 100644 --- a/GeneralStateTests/stRandom/randomStatetest5.json +++ b/GeneralStateTests/stRandom/randomStatetest5.json @@ -2,92 +2,76 @@ "randomStatetest5" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest5Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1016957738", + "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0960005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "36426", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998983005882", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6d418b444178233d6c7aeebe84e0dfdce70ae365b5420aa76768e7b4f2596b1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6d418b444178233d6c7aeebe84e0dfdce70ae365b5420aa76768e7b4f2596b1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6d418b444178233d6c7aeebe84e0dfdce70ae365b5420aa76768e7b4f2596b1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6d418b444178233d6c7aeebe84e0dfdce70ae365b5420aa76768e7b4f2596b1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6d418b444178233d6c7aeebe84e0dfdce70ae365b5420aa76768e7b4f2596b1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6d418b444178233d6c7aeebe84e0dfdce70ae365b5420aa76768e7b4f2596b1d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x07345d54" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3c9d8b2a" + "1016957738" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest50.json b/GeneralStateTests/stRandom/randomStatetest50.json index 16c700a4d..0f7aa1285 100644 --- a/GeneralStateTests/stRandom/randomStatetest50.json +++ b/GeneralStateTests/stRandom/randomStatetest50.json @@ -2,92 +2,76 @@ "randomStatetest50" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest50Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000407f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9a8b7379431080346b159960005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1150985044", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998849015002", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc124ab3ba66012badfe5f44331fa53fbfeda3936fc6d01a5402f2210e41ddd08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc124ab3ba66012badfe5f44331fa53fbfeda3936fc6d01a5402f2210e41ddd08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc124ab3ba66012badfe5f44331fa53fbfeda3936fc6d01a5402f2210e41ddd08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc124ab3ba66012badfe5f44331fa53fbfeda3936fc6d01a5402f2210e41ddd08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc124ab3ba66012badfe5f44331fa53fbfeda3936fc6d01a5402f2210e41ddd08", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c124ab3ba66012badfe5f44331fa53fbfeda3936fc6d01a5402f2210e41ddd08", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000010000000000000000000000000000000000000000407f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9a8b7379431080346b159960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x449aa326" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x58fcecbd" + "1492970685" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest500.json b/GeneralStateTests/stRandom/randomStatetest500.json index b9f991d64..04f834ff0 100644 --- a/GeneralStateTests/stRandom/randomStatetest500.json +++ b/GeneralStateTests/stRandom/randomStatetest500.json @@ -2,92 +2,77 @@ "randomStatetest500" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest500Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "34424143", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f87196584968a97046c6791993114825560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x87196584968a97046c67919931148255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51411", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999965524492", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe231640303aa5abe7f94a028bcc8c60ea2cdaf4a760bd843f3a37235201adb24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe231640303aa5abe7f94a028bcc8c60ea2cdaf4a760bd843f3a37235201adb24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe231640303aa5abe7f94a028bcc8c60ea2cdaf4a760bd843f3a37235201adb24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe231640303aa5abe7f94a028bcc8c60ea2cdaf4a760bd843f3a37235201adb24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe231640303aa5abe7f94a028bcc8c60ea2cdaf4a760bd843f3a37235201adb24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e231640303aa5abe7f94a028bcc8c60ea2cdaf4a760bd843f3a37235201adb24", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f87196584968a97046c6791993114825560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x30cf086f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x020d454f" + "34424143" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest501.json b/GeneralStateTests/stRandom/randomStatetest501.json index 57699ecee..dbc1a4a0f 100644 --- a/GeneralStateTests/stRandom/randomStatetest501.json +++ b/GeneralStateTests/stRandom/randomStatetest501.json @@ -2,92 +2,74 @@ "randomStatetest501" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest501Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x653f0054738694e585611b712ed5887b2648def1d956f6846dd8047c82738a31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "156676500", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff095560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0xffffffffffffffffffffffff0000000000000000000000000000000000000000" : "0xc350" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "74439", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999843249107", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x653f0054738694e585611b712ed5887b2648def1d956f6846dd8047c82738a31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x653f0054738694e585611b712ed5887b2648def1d956f6846dd8047c82738a31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x653f0054738694e585611b712ed5887b2648def1d956f6846dd8047c82738a31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x653f0054738694e585611b712ed5887b2648def1d956f6846dd8047c82738a31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, - "postStateRoot" : "653f0054738694e585611b712ed5887b2648def1d956f6846dd8047c82738a31", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff095560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +81,12 @@ "gasLimit" : [ "0x19fec0a8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0956b194" + "156676500" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest502.json b/GeneralStateTests/stRandom/randomStatetest502.json index 488d5ad8f..4ae8c5a1a 100644 --- a/GeneralStateTests/stRandom/randomStatetest502.json +++ b/GeneralStateTests/stRandom/randomStatetest502.json @@ -2,92 +2,77 @@ "randomStatetest502" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest502Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "345377880", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b59c66369a85a46da182186158637860005155", + "nonce" : "0", + "storage" : { + "0xb59c66369a85a46da1821861586378600051" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49478", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999654572688", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x79c5155a5e9ba0b27961d5693b01ef2dbca2495d0ddeb71302a575b01a8d4773", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x79c5155a5e9ba0b27961d5693b01ef2dbca2495d0ddeb71302a575b01a8d4773", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x79c5155a5e9ba0b27961d5693b01ef2dbca2495d0ddeb71302a575b01a8d4773", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x79c5155a5e9ba0b27961d5693b01ef2dbca2495d0ddeb71302a575b01a8d4773", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x79c5155a5e9ba0b27961d5693b01ef2dbca2495d0ddeb71302a575b01a8d4773", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "79c5155a5e9ba0b27961d5693b01ef2dbca2495d0ddeb71302a575b01a8d4773", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b59c66369a85a46da182186158637860005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x54710976" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x14960c58" + "345377880" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest503.json b/GeneralStateTests/stRandom/randomStatetest503.json index 9d3e6d4be..07568478c 100644 --- a/GeneralStateTests/stRandom/randomStatetest503.json +++ b/GeneralStateTests/stRandom/randomStatetest503.json @@ -2,92 +2,77 @@ "randomStatetest503" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest503Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2071462314", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f0886a83c66553c9889528d8f1294ff5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x0886a83c66553c9889528d8f1294ff55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46298", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997928491434", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3838d2e1a699d5b20e784ef83c3a165dfccfb971517bfc8baa119512bec1fcc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3838d2e1a699d5b20e784ef83c3a165dfccfb971517bfc8baa119512bec1fcc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3838d2e1a699d5b20e784ef83c3a165dfccfb971517bfc8baa119512bec1fcc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3838d2e1a699d5b20e784ef83c3a165dfccfb971517bfc8baa119512bec1fcc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3838d2e1a699d5b20e784ef83c3a165dfccfb971517bfc8baa119512bec1fcc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3838d2e1a699d5b20e784ef83c3a165dfccfb971517bfc8baa119512bec1fcc0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f0886a83c66553c9889528d8f1294ff5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x55a3043d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7b7801aa" + "2071462314" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest504.json b/GeneralStateTests/stRandom/randomStatetest504.json index 06d72da24..32c50ed0d 100644 --- a/GeneralStateTests/stRandom/randomStatetest504.json +++ b/GeneralStateTests/stRandom/randomStatetest504.json @@ -2,92 +2,76 @@ "randomStatetest504" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest504Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f0000000000000000000000000000000000000000000000000000000000000001e37f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c35001589a84106d9c60005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1891130376", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998108869670", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6eeb44aa195850cff56903b1bc6ad37ae32a33bf577e45dcda5013ecd50cf546", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6eeb44aa195850cff56903b1bc6ad37ae32a33bf577e45dcda5013ecd50cf546", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6eeb44aa195850cff56903b1bc6ad37ae32a33bf577e45dcda5013ecd50cf546", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6eeb44aa195850cff56903b1bc6ad37ae32a33bf577e45dcda5013ecd50cf546", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6eeb44aa195850cff56903b1bc6ad37ae32a33bf577e45dcda5013ecd50cf546", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6eeb44aa195850cff56903b1bc6ad37ae32a33bf577e45dcda5013ecd50cf546", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f0000000000000000000000000000000000000000000000000000000000000001e37f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c35001589a84106d9c60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x70b85bda" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x41464c8e" + "1095126158" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest505.json b/GeneralStateTests/stRandom/randomStatetest505.json index 85becf85d..1d15e141f 100644 --- a/GeneralStateTests/stRandom/randomStatetest505.json +++ b/GeneralStateTests/stRandom/randomStatetest505.json @@ -2,92 +2,77 @@ "randomStatetest505" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest505Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1075033443", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000006f44a06f550371317376738c539984375560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x44a06f550371317376738c5399843755" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47704", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998924918899", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x52e98ba2380b764b31a76588cec8b8190e426dc12c17a5141c68e40fdd93c1af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x52e98ba2380b764b31a76588cec8b8190e426dc12c17a5141c68e40fdd93c1af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x52e98ba2380b764b31a76588cec8b8190e426dc12c17a5141c68e40fdd93c1af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x52e98ba2380b764b31a76588cec8b8190e426dc12c17a5141c68e40fdd93c1af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x52e98ba2380b764b31a76588cec8b8190e426dc12c17a5141c68e40fdd93c1af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "52e98ba2380b764b31a76588cec8b8190e426dc12c17a5141c68e40fdd93c1af", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe457f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000006f44a06f550371317376738c539984375560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1942ac90" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4013b563" + "1075033443" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest506.json b/GeneralStateTests/stRandom/randomStatetest506.json index 948d84670..a8c16c516 100644 --- a/GeneralStateTests/stRandom/randomStatetest506.json +++ b/GeneralStateTests/stRandom/randomStatetest506.json @@ -2,92 +2,78 @@ "randomStatetest506" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest506Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "947509958", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000000042377f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006ba218f370862059149e3cff2060005155", + "nonce" : "0", + "storage" : { + "0x00" : "0xa218f370862059149e3cff20", + "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "62507", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999052427581", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa97f1d4662256ab6c1913e78a165b345420bbf1f5a89520803c54da3fe737937", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa97f1d4662256ab6c1913e78a165b345420bbf1f5a89520803c54da3fe737937", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa97f1d4662256ab6c1913e78a165b345420bbf1f5a89520803c54da3fe737937", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa97f1d4662256ab6c1913e78a165b345420bbf1f5a89520803c54da3fe737937", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa97f1d4662256ab6c1913e78a165b345420bbf1f5a89520803c54da3fe737937", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b4e662a2c2bc80db9f92d6e76529ac438544e4bc22f713eab59a05c764d1144e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000000042377f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006ba218f370862059149e3cff2060005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x7aa74d62" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3879dac6" + "947509958" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest507.json b/GeneralStateTests/stRandom/randomStatetest507.json index a22ed2dd5..d658714b8 100644 --- a/GeneralStateTests/stRandom/randomStatetest507.json +++ b/GeneralStateTests/stRandom/randomStatetest507.json @@ -2,92 +2,77 @@ "randomStatetest507" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest507Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "696746762", + "code" : "0x5a7f0000000000000000000000010000000000000000000000000000000000000000327f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f99a4527612a199a06d1a348b02563a9b60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x99a4527612a199a06d1a348b02563a9b" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48085", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999303205199", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x192265c0723dc7c2d20ffdcfee7110c09e76add57cd068dc374c021eee3e17f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x192265c0723dc7c2d20ffdcfee7110c09e76add57cd068dc374c021eee3e17f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x192265c0723dc7c2d20ffdcfee7110c09e76add57cd068dc374c021eee3e17f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x192265c0723dc7c2d20ffdcfee7110c09e76add57cd068dc374c021eee3e17f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x192265c0723dc7c2d20ffdcfee7110c09e76add57cd068dc374c021eee3e17f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "192265c0723dc7c2d20ffdcfee7110c09e76add57cd068dc374c021eee3e17f3", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x5a7f0000000000000000000000010000000000000000000000000000000000000000327f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f99a4527612a199a06d1a348b02563a9b60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6f62fdbd" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2987830a" + "696746762" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest508.json b/GeneralStateTests/stRandom/randomStatetest508.json index a94d90120..441bf6a7c 100644 --- a/GeneralStateTests/stRandom/randomStatetest508.json +++ b/GeneralStateTests/stRandom/randomStatetest508.json @@ -2,92 +2,76 @@ "randomStatetest508" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest508Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41414444424143448231537241317f55", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "21165", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999878881", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9ae2579ba5b9d5c58e22e61dce07e9ed484addf5a7f7e05ead85bc579c6547a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9ae2579ba5b9d5c58e22e61dce07e9ed484addf5a7f7e05ead85bc579c6547a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3d03bc1c45759cac030d4352629c83013c6f475445189fa2b4b38fad8e11c021", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3d03bc1c45759cac030d4352629c83013c6f475445189fa2b4b38fad8e11c021", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9ae2579ba5b9d5c58e22e61dce07e9ed484addf5a7f7e05ead85bc579c6547a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3d03bc1c45759cac030d4352629c83013c6f475445189fa2b4b38fad8e11c021", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41414444424143448231537241317f55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest509.json b/GeneralStateTests/stRandom/randomStatetest509.json index d625ab5b0..f594dfd80 100644 --- a/GeneralStateTests/stRandom/randomStatetest509.json +++ b/GeneralStateTests/stRandom/randomStatetest509.json @@ -2,92 +2,76 @@ "randomStatetest509" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest509Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x4542", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "21118", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999878928", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7bf406e499739a794f51923be7a9504443e4a9a34b34e5127f350d66865f8451", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7bf406e499739a794f51923be7a9504443e4a9a34b34e5127f350d66865f8451", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7bf406e499739a794f51923be7a9504443e4a9a34b34e5127f350d66865f8451", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7bf406e499739a794f51923be7a9504443e4a9a34b34e5127f350d66865f8451", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7bf406e499739a794f51923be7a9504443e4a9a34b34e5127f350d66865f8451", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7bf406e499739a794f51923be7a9504443e4a9a34b34e5127f350d66865f8451", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x4542", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest51.json b/GeneralStateTests/stRandom/randomStatetest51.json index 5f0534c04..f102f5848 100644 --- a/GeneralStateTests/stRandom/randomStatetest51.json +++ b/GeneralStateTests/stRandom/randomStatetest51.json @@ -2,92 +2,76 @@ "randomStatetest51" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest51Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000001757f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57a7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe83189b60005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1861454639", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998138545407", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9d35d961673db10b4083751411fb01ce25c9d6b4dae15c4bc12db4ae3aa45b06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9d35d961673db10b4083751411fb01ce25c9d6b4dae15c4bc12db4ae3aa45b06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9d35d961673db10b4083751411fb01ce25c9d6b4dae15c4bc12db4ae3aa45b06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9d35d961673db10b4083751411fb01ce25c9d6b4dae15c4bc12db4ae3aa45b06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9d35d961673db10b4083751411fb01ce25c9d6b4dae15c4bc12db4ae3aa45b06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9d35d961673db10b4083751411fb01ce25c9d6b4dae15c4bc12db4ae3aa45b06", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000001757f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57a7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe83189b60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x6ef38b01" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3f4d7811" + "1062041617" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest510.json b/GeneralStateTests/stRandom/randomStatetest510.json index c53b54283..36fd01d10 100644 --- a/GeneralStateTests/stRandom/randomStatetest510.json +++ b/GeneralStateTests/stRandom/randomStatetest510.json @@ -2,92 +2,77 @@ "randomStatetest510" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest510Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1913364794", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5447f00000000000000000000000000000000000000000000000000000000000000005a456ff23a88535564545969f162615b93325560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xf23a88535564545969f162615b933255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46039", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998086589213", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x89b38c7da2c1aa8c535ccbff5392c3f23c50a3ff50569d528baf04c7b1fc71f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x89b38c7da2c1aa8c535ccbff5392c3f23c50a3ff50569d528baf04c7b1fc71f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x89b38c7da2c1aa8c535ccbff5392c3f23c50a3ff50569d528baf04c7b1fc71f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x89b38c7da2c1aa8c535ccbff5392c3f23c50a3ff50569d528baf04c7b1fc71f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x89b38c7da2c1aa8c535ccbff5392c3f23c50a3ff50569d528baf04c7b1fc71f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "89b38c7da2c1aa8c535ccbff5392c3f23c50a3ff50569d528baf04c7b1fc71f0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5447f00000000000000000000000000000000000000000000000000000000000000005a456ff23a88535564545969f162615b93325560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x55fe2d15" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x720ba13a" + "1913364794" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest511.json b/GeneralStateTests/stRandom/randomStatetest511.json index d6e238f1f..072d7c84c 100644 --- a/GeneralStateTests/stRandom/randomStatetest511.json +++ b/GeneralStateTests/stRandom/randomStatetest511.json @@ -2,92 +2,77 @@ "randomStatetest511" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest511Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "462006051", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff416f6a52027f41f267453843630a6644414560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x6a52027f41f267453843630a66444145" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48342", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999537945653", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x18fe0ad1e56bfffdff063202d62837a841c423282e6365a96a34b02c9978a36a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x18fe0ad1e56bfffdff063202d62837a841c423282e6365a96a34b02c9978a36a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x18fe0ad1e56bfffdff063202d62837a841c423282e6365a96a34b02c9978a36a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x18fe0ad1e56bfffdff063202d62837a841c423282e6365a96a34b02c9978a36a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x18fe0ad1e56bfffdff063202d62837a841c423282e6365a96a34b02c9978a36a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "18fe0ad1e56bfffdff063202d62837a841c423282e6365a96a34b02c9978a36a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff416f6a52027f41f267453843630a6644414560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x019f7430" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1b89a723" + "462006051" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest512.json b/GeneralStateTests/stRandom/randomStatetest512.json index d7378fa6a..9033b8ff0 100644 --- a/GeneralStateTests/stRandom/randomStatetest512.json +++ b/GeneralStateTests/stRandom/randomStatetest512.json @@ -2,92 +2,77 @@ "randomStatetest512" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest512Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "871411208", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f3b5bff4056709774995150026344925560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x3b5bff40567097749951500263449255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52441", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999128536397", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xea9e2334a34bdc4cca759398b5b8bb20794dc7c1be990a3ef80ac799aa8403ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xea9e2334a34bdc4cca759398b5b8bb20794dc7c1be990a3ef80ac799aa8403ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xea9e2334a34bdc4cca759398b5b8bb20794dc7c1be990a3ef80ac799aa8403ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xea9e2334a34bdc4cca759398b5b8bb20794dc7c1be990a3ef80ac799aa8403ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xea9e2334a34bdc4cca759398b5b8bb20794dc7c1be990a3ef80ac799aa8403ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ea9e2334a34bdc4cca759398b5b8bb20794dc7c1be990a3ef80ac799aa8403ef", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f3b5bff4056709774995150026344925560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7716ad27" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x33f0ae08" + "871411208" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest513.json b/GeneralStateTests/stRandom/randomStatetest513.json index d60c1e2df..ac3a030b5 100644 --- a/GeneralStateTests/stRandom/randomStatetest513.json +++ b/GeneralStateTests/stRandom/randomStatetest513.json @@ -2,92 +2,76 @@ "randomStatetest513" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest513Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff3b437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001982046817382a13afa3760088d55", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "485979581", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999514020465", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb94e1ef66b03fbd5194cde790dd593e3b32dc1f940fc219df947586e28602cb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb94e1ef66b03fbd5194cde790dd593e3b32dc1f940fc219df947586e28602cb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb94e1ef66b03fbd5194cde790dd593e3b32dc1f940fc219df947586e28602cb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb94e1ef66b03fbd5194cde790dd593e3b32dc1f940fc219df947586e28602cb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb94e1ef66b03fbd5194cde790dd593e3b32dc1f940fc219df947586e28602cb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b94e1ef66b03fbd5194cde790dd593e3b32dc1f940fc219df947586e28602cb1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff3b437ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001982046817382a13afa3760088d55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x1cf7758f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x183a4af8" + "406473464" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest514.json b/GeneralStateTests/stRandom/randomStatetest514.json index 290dbe287..d83d7a1a7 100644 --- a/GeneralStateTests/stRandom/randomStatetest514.json +++ b/GeneralStateTests/stRandom/randomStatetest514.json @@ -2,91 +2,76 @@ "randomStatetest514" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest514Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x105d80ad", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe44447f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506c8ea356796d65546d3883768f5560005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x8ea356796d65546d3883768f55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xc24c", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b39705bd35", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x40a5c7197419fb4c4bbd2c399eddc9ad8bcd01b0b950428958c21339ed0253ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x40a5c7197419fb4c4bbd2c399eddc9ad8bcd01b0b950428958c21339ed0253ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x40a5c7197419fb4c4bbd2c399eddc9ad8bcd01b0b950428958c21339ed0253ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x40a5c7197419fb4c4bbd2c399eddc9ad8bcd01b0b950428958c21339ed0253ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x40a5c7197419fb4c4bbd2c399eddc9ad8bcd01b0b950428958c21339ed0253ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "40a5c7197419fb4c4bbd2c399eddc9ad8bcd01b0b950428958c21339ed0253ef", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe44447f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3506c8ea356796d65546d3883768f5560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x105d80ad" ] diff --git a/GeneralStateTests/stRandom/randomStatetest516.json b/GeneralStateTests/stRandom/randomStatetest516.json index 327f95907..42507fb6c 100644 --- a/GeneralStateTests/stRandom/randomStatetest516.json +++ b/GeneralStateTests/stRandom/randomStatetest516.json @@ -2,92 +2,77 @@ "randomStatetest516" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest516Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "46630890", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6a32787358019b39186861940960005155", + "nonce" : "0", + "storage" : { + "0x" : "0x32787358019b3918686193ffffffffffffffffffcd878ca7fe64c6e7979e6c" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "53270", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999953315886", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7adf35a566488b6f07d1b3df73f78141341a13e859fe05d6d0469778ddf24895", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7adf35a566488b6f07d1b3df73f78141341a13e859fe05d6d0469778ddf24895", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7adf35a566488b6f07d1b3df73f78141341a13e859fe05d6d0469778ddf24895", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7adf35a566488b6f07d1b3df73f78141341a13e859fe05d6d0469778ddf24895", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7adf35a566488b6f07d1b3df73f78141341a13e859fe05d6d0469778ddf24895", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7adf35a566488b6f07d1b3df73f78141341a13e859fe05d6d0469778ddf24895", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6a32787358019b39186861940960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1abc8d08" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x02c787ea" + "46630890" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest517.json b/GeneralStateTests/stRandom/randomStatetest517.json index 3f4fa378a..4b5c4462b 100644 --- a/GeneralStateTests/stRandom/randomStatetest517.json +++ b/GeneralStateTests/stRandom/randomStatetest517.json @@ -2,92 +2,78 @@ "randomStatetest517" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest517Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1922148943", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff3a6f450831a46a867f32569596f0099f7b8c915560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x450831a46a867f32569596f0099f7b8c", + "0xffffffffffffffffffffffffffffffffffffffff" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "68086", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998077783017", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x0375c4ffc1cda5322d96617111cb9151c91589cd4b9a92856701aa046067a4b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0375c4ffc1cda5322d96617111cb9151c91589cd4b9a92856701aa046067a4b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0375c4ffc1cda5322d96617111cb9151c91589cd4b9a92856701aa046067a4b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0375c4ffc1cda5322d96617111cb9151c91589cd4b9a92856701aa046067a4b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0375c4ffc1cda5322d96617111cb9151c91589cd4b9a92856701aa046067a4b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0375c4ffc1cda5322d96617111cb9151c91589cd4b9a92856701aa046067a4b7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff3a6f450831a46a867f32569596f0099f7b8c915560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x22d1e6e1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7291aa4f" + "1922148943" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest518.json b/GeneralStateTests/stRandom/randomStatetest518.json index 6b142ae12..ed58b4699 100644 --- a/GeneralStateTests/stRandom/randomStatetest518.json +++ b/GeneralStateTests/stRandom/randomStatetest518.json @@ -2,92 +2,77 @@ "randomStatetest518" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest518Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1096593865", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f3c589f416d947a5134f268515b6c925560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x3c589f416d947a5134f268515b6c9255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49946", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998903356235", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x356061dda37e155624c4341318a571b634341e459ea80c8ba38f1e616cce75e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x356061dda37e155624c4341318a571b634341e459ea80c8ba38f1e616cce75e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x356061dda37e155624c4341318a571b634341e459ea80c8ba38f1e616cce75e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x356061dda37e155624c4341318a571b634341e459ea80c8ba38f1e616cce75e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x356061dda37e155624c4341318a571b634341e459ea80c8ba38f1e616cce75e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "356061dda37e155624c4341318a571b634341e459ea80c8ba38f1e616cce75e7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f3c589f416d947a5134f268515b6c925560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6854f401" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x415cb1c9" + "1096593865" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest519.json b/GeneralStateTests/stRandom/randomStatetest519.json index 7193e6319..2ea8facda 100644 --- a/GeneralStateTests/stRandom/randomStatetest519.json +++ b/GeneralStateTests/stRandom/randomStatetest519.json @@ -2,92 +2,77 @@ "randomStatetest519" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest519Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "245898175", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000001000000000000000000000000000000000000000009457f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3501a02556b85a4531155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48573", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999754053298", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x008998dffe180dfdea2806ecb245f6fa99182df32462cac44d4d9bc9343ad763", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x008998dffe180dfdea2806ecb245f6fa99182df32462cac44d4d9bc9343ad763", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x008998dffe180dfdea2806ecb245f6fa99182df32462cac44d4d9bc9343ad763", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x008998dffe180dfdea2806ecb245f6fa99182df32462cac44d4d9bc9343ad763", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x008998dffe180dfdea2806ecb245f6fa99182df32462cac44d4d9bc9343ad763", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "008998dffe180dfdea2806ecb245f6fa99182df32462cac44d4d9bc9343ad763", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000001000000000000000000000000000000000000000009457f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3501a02556b85a4531155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x76fec4ed" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0ea81bbf" + "245898175" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest52.json b/GeneralStateTests/stRandom/randomStatetest52.json index a5c655c5f..a74d905b5 100644 --- a/GeneralStateTests/stRandom/randomStatetest52.json +++ b/GeneralStateTests/stRandom/randomStatetest52.json @@ -2,92 +2,77 @@ "randomStatetest52" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest52Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "667679116", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe410a81437f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f59a130a10a189fc653057a185b886c5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x59a130a10a189fc653057a185b886c55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45727", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999332275203", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x01b3692c1a97599e3d570ac4319b0ebe50555552f3d9958b2b4c5ac4fef2c8ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf1f32496e98d94deef759c088703253a00f2adbed488d04e109106ae0f544644", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x01b3692c1a97599e3d570ac4319b0ebe50555552f3d9958b2b4c5ac4fef2c8ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x01b3692c1a97599e3d570ac4319b0ebe50555552f3d9958b2b4c5ac4fef2c8ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf1f32496e98d94deef759c088703253a00f2adbed488d04e109106ae0f544644", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "01b3692c1a97599e3d570ac4319b0ebe50555552f3d9958b2b4c5ac4fef2c8ed", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe410a81437f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f59a130a10a189fc653057a185b886c5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x118e1472" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x27cbf98c" + "667679116" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest520.json b/GeneralStateTests/stRandom/randomStatetest520.json index 0c9ecc187..6a85eb1c1 100644 --- a/GeneralStateTests/stRandom/randomStatetest520.json +++ b/GeneralStateTests/stRandom/randomStatetest520.json @@ -2,92 +2,77 @@ "randomStatetest520" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest520Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "333039523", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff19030860005155", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffff0000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52465", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999666908058", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x794d825de7d715e2ec9be8ed324ba4b02e7971cf509325a90568a8e9f92629fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x794d825de7d715e2ec9be8ed324ba4b02e7971cf509325a90568a8e9f92629fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x794d825de7d715e2ec9be8ed324ba4b02e7971cf509325a90568a8e9f92629fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x794d825de7d715e2ec9be8ed324ba4b02e7971cf509325a90568a8e9f92629fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x794d825de7d715e2ec9be8ed324ba4b02e7971cf509325a90568a8e9f92629fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "794d825de7d715e2ec9be8ed324ba4b02e7971cf509325a90568a8e9f92629fa", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff19030860005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5732b2f3" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x13d9c7a3" + "333039523" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest521.json b/GeneralStateTests/stRandom/randomStatetest521.json index e004c0d32..65df6a8ed 100644 --- a/GeneralStateTests/stRandom/randomStatetest521.json +++ b/GeneralStateTests/stRandom/randomStatetest521.json @@ -2,92 +2,78 @@ "randomStatetest521" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest521Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2095633379", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6a73905597946a57769a6d9209335560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x010000000000000000000000000000000000000000", + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : "0xffffffffffffffffffffffffffffffffffffffffff8c6faa686b95a88965926d" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "70524", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997904296143", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xde8f0646239826016ac16c15b27ba6d23c236b503206bbad2325cfe3514b6d3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xde8f0646239826016ac16c15b27ba6d23c236b503206bbad2325cfe3514b6d3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xde8f0646239826016ac16c15b27ba6d23c236b503206bbad2325cfe3514b6d3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xde8f0646239826016ac16c15b27ba6d23c236b503206bbad2325cfe3514b6d3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xde8f0646239826016ac16c15b27ba6d23c236b503206bbad2325cfe3514b6d3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "de8f0646239826016ac16c15b27ba6d23c236b503206bbad2325cfe3514b6d3f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6a73905597946a57769a6d9209335560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x6039159a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7ce8d3e3" + "2095633379" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest523.json b/GeneralStateTests/stRandom/randomStatetest523.json index 2aa7c988b..f03cda2f6 100644 --- a/GeneralStateTests/stRandom/randomStatetest523.json +++ b/GeneralStateTests/stRandom/randomStatetest523.json @@ -2,92 +2,76 @@ "randomStatetest523" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest523Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x417f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4450427f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000003560080b348d5560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1842335616", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998157664430", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf49c16027e28753abd81f7d12958fa86ec206e3473dfef64c410177d9051ba9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf49c16027e28753abd81f7d12958fa86ec206e3473dfef64c410177d9051ba9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf49c16027e28753abd81f7d12958fa86ec206e3473dfef64c410177d9051ba9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf49c16027e28753abd81f7d12958fa86ec206e3473dfef64c410177d9051ba9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf49c16027e28753abd81f7d12958fa86ec206e3473dfef64c410177d9051ba9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f49c16027e28753abd81f7d12958fa86ec206e3473dfef64c410177d9051ba9f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x417f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4450427f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000003560080b348d5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x6dcfcf52" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5741bf83" + "1463926659" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest524.json b/GeneralStateTests/stRandom/randomStatetest524.json index b54ed465f..60ad8634c 100644 --- a/GeneralStateTests/stRandom/randomStatetest524.json +++ b/GeneralStateTests/stRandom/randomStatetest524.json @@ -2,92 +2,76 @@ "randomStatetest524" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest524Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff357f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000034208a340a9e5560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "692102669", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999307897377", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xcd011ca3a24ae9664db18ee1273cf494ad2047f020e4285ced363653fe1f02ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcd011ca3a24ae9664db18ee1273cf494ad2047f020e4285ced363653fe1f02ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcd011ca3a24ae9664db18ee1273cf494ad2047f020e4285ced363653fe1f02ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcd011ca3a24ae9664db18ee1273cf494ad2047f020e4285ced363653fe1f02ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcd011ca3a24ae9664db18ee1273cf494ad2047f020e4285ced363653fe1f02ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "cd011ca3a24ae9664db18ee1273cf494ad2047f020e4285ced363653fe1f02ed", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff357f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000034208a340a9e5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x2940a5df" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x754eb077" + "1968091255" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest525.json b/GeneralStateTests/stRandom/randomStatetest525.json index 59858e8d2..6991907de 100644 --- a/GeneralStateTests/stRandom/randomStatetest525.json +++ b/GeneralStateTests/stRandom/randomStatetest525.json @@ -2,92 +2,76 @@ "randomStatetest525" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest525Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "177899732", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe02207160005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50491", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999822049823", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf0bd0d32959c5f9f46c5fc153d3c72cff1e8c3c4c817178039528fac216b834e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf0bd0d32959c5f9f46c5fc153d3c72cff1e8c3c4c817178039528fac216b834e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf0bd0d32959c5f9f46c5fc153d3c72cff1e8c3c4c817178039528fac216b834e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf0bd0d32959c5f9f46c5fc153d3c72cff1e8c3c4c817178039528fac216b834e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf0bd0d32959c5f9f46c5fc153d3c72cff1e8c3c4c817178039528fac216b834e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f0bd0d32959c5f9f46c5fc153d3c72cff1e8c3c4c817178039528fac216b834e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe02207160005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x51e47512" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a9a88d4" + "177899732" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest526.json b/GeneralStateTests/stRandom/randomStatetest526.json index 32738b952..b7175265d 100644 --- a/GeneralStateTests/stRandom/randomStatetest526.json +++ b/GeneralStateTests/stRandom/randomStatetest526.json @@ -2,92 +2,77 @@ "randomStatetest526" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest526Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "984138850", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5419e01950777810975058c746f5560005155", + "nonce" : "0", + "storage" : { + "0xb5419e01950777810975058c746f55600051" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45754", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999015815442", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8f399c1f578afcf3bc564e7c71194fcfe5a3668584658909ef97041b80db23c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8f399c1f578afcf3bc564e7c71194fcfe5a3668584658909ef97041b80db23c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8f399c1f578afcf3bc564e7c71194fcfe5a3668584658909ef97041b80db23c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8f399c1f578afcf3bc564e7c71194fcfe5a3668584658909ef97041b80db23c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8f399c1f578afcf3bc564e7c71194fcfe5a3668584658909ef97041b80db23c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8f399c1f578afcf3bc564e7c71194fcfe5a3668584658909ef97041b80db23c3", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5419e01950777810975058c746f5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x2d1d285d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3aa8c462" + "984138850" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest527.json b/GeneralStateTests/stRandom/randomStatetest527.json index 945c9b696..2d7eb1592 100644 --- a/GeneralStateTests/stRandom/randomStatetest527.json +++ b/GeneralStateTests/stRandom/randomStatetest527.json @@ -2,92 +2,76 @@ "randomStatetest527" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest527Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x347f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff447f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff80a160005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "423699300", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999576300746", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x50e33a02616d3b0f18c73efa68528c6611152a537a23947e3b3ab013fc7bc945", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x50e33a02616d3b0f18c73efa68528c6611152a537a23947e3b3ab013fc7bc945", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x50e33a02616d3b0f18c73efa68528c6611152a537a23947e3b3ab013fc7bc945", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x50e33a02616d3b0f18c73efa68528c6611152a537a23947e3b3ab013fc7bc945", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x50e33a02616d3b0f18c73efa68528c6611152a537a23947e3b3ab013fc7bc945", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "50e33a02616d3b0f18c73efa68528c6611152a537a23947e3b3ab013fc7bc945", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x347f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff447f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff80a160005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x19412336" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0ab00b0e" + "179309326" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest528.json b/GeneralStateTests/stRandom/randomStatetest528.json index 552a1583b..0df87327f 100644 --- a/GeneralStateTests/stRandom/randomStatetest528.json +++ b/GeneralStateTests/stRandom/randomStatetest528.json @@ -2,92 +2,76 @@ "randomStatetest528" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest528Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x457f000000000000000000000000000000000000000000000000000000000000c350397ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a9d30390b8c858455", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "2071421771", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997928578275", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd1b4c4dbe542c00c23f35c9610b0d0e1e826e9e82dbad3b22ac582b128bd9bba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd1b4c4dbe542c00c23f35c9610b0d0e1e826e9e82dbad3b22ac582b128bd9bba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd1b4c4dbe542c00c23f35c9610b0d0e1e826e9e82dbad3b22ac582b128bd9bba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd1b4c4dbe542c00c23f35c9610b0d0e1e826e9e82dbad3b22ac582b128bd9bba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd1b4c4dbe542c00c23f35c9610b0d0e1e826e9e82dbad3b22ac582b128bd9bba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d1b4c4dbe542c00c23f35c9610b0d0e1e826e9e82dbad3b22ac582b128bd9bba", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457f000000000000000000000000000000000000000000000000000000000000c350397ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a9d30390b8c858455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x7b77631d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1fc3b22e" + "532918830" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest53.json b/GeneralStateTests/stRandom/randomStatetest53.json index 6429b05a8..85c012389 100644 --- a/GeneralStateTests/stRandom/randomStatetest53.json +++ b/GeneralStateTests/stRandom/randomStatetest53.json @@ -2,92 +2,76 @@ "randomStatetest53" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest53Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1485632", + "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b940860005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "4379639", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999994134775", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b940860005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x01a76401" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x16ab40" + "1485632" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest531.json b/GeneralStateTests/stRandom/randomStatetest531.json index 46b358ee5..2b5219fb4 100644 --- a/GeneralStateTests/stRandom/randomStatetest531.json +++ b/GeneralStateTests/stRandom/randomStatetest531.json @@ -2,92 +2,76 @@ "randomStatetest531" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest531Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41414143434344456a12c140f3933655", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "21133", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999878913", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xcbb19c5b0411315db21caddc52d03b78779489209a58a6ce48af07e762bce246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcbb19c5b0411315db21caddc52d03b78779489209a58a6ce48af07e762bce246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcbb19c5b0411315db21caddc52d03b78779489209a58a6ce48af07e762bce246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcbb19c5b0411315db21caddc52d03b78779489209a58a6ce48af07e762bce246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcbb19c5b0411315db21caddc52d03b78779489209a58a6ce48af07e762bce246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "cbb19c5b0411315db21caddc52d03b78779489209a58a6ce48af07e762bce246", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41414143434344456a12c140f3933655", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest532.json b/GeneralStateTests/stRandom/randomStatetest532.json index 3e09773da..e940cb8c7 100644 --- a/GeneralStateTests/stRandom/randomStatetest532.json +++ b/GeneralStateTests/stRandom/randomStatetest532.json @@ -2,92 +2,77 @@ "randomStatetest532" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest532Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1139122760", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe54447f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f78297ba08ba478507f413b3597109c5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x78297ba08ba478507f413b3597109c55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49928", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998860827358", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb60e6463331ea8c26f6146c4f6b7a1e4af696f9ecdeae12757f2d5469362fab2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb60e6463331ea8c26f6146c4f6b7a1e4af696f9ecdeae12757f2d5469362fab2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd0b51e522347b9c14152ea84403d4e2d4a2ef4f0318283d00965856c311e6429", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd0b51e522347b9c14152ea84403d4e2d4a2ef4f0318283d00965856c311e6429", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb60e6463331ea8c26f6146c4f6b7a1e4af696f9ecdeae12757f2d5469362fab2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d0b51e522347b9c14152ea84403d4e2d4a2ef4f0318283d00965856c311e6429", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe54447f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f78297ba08ba478507f413b3597109c5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x40b88610" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x43e5a248" + "1139122760" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest533.json b/GeneralStateTests/stRandom/randomStatetest533.json index d7ed302ef..a4cc4440c 100644 --- a/GeneralStateTests/stRandom/randomStatetest533.json +++ b/GeneralStateTests/stRandom/randomStatetest533.json @@ -2,91 +2,76 @@ "randomStatetest533" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest533Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x70d690f4", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001847f00000000000000000000000100000000000000000000000000000000000000003a0761525560005155", + "nonce" : "0x00", + "storage" : { + "0x" : "0x5255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xbef1", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3368cb049", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd522c2441010ceff4a7042baa0b1578fdb453046c0e2c523cc4c24fafaf906a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd522c2441010ceff4a7042baa0b1578fdb453046c0e2c523cc4c24fafaf906a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd522c2441010ceff4a7042baa0b1578fdb453046c0e2c523cc4c24fafaf906a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd522c2441010ceff4a7042baa0b1578fdb453046c0e2c523cc4c24fafaf906a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd522c2441010ceff4a7042baa0b1578fdb453046c0e2c523cc4c24fafaf906a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d522c2441010ceff4a7042baa0b1578fdb453046c0e2c523cc4c24fafaf906a6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001847f00000000000000000000000100000000000000000000000000000000000000003a0761525560005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x70d690f4" ] diff --git a/GeneralStateTests/stRandom/randomStatetest534.json b/GeneralStateTests/stRandom/randomStatetest534.json index 2b5d879a7..e8f332a02 100644 --- a/GeneralStateTests/stRandom/randomStatetest534.json +++ b/GeneralStateTests/stRandom/randomStatetest534.json @@ -2,92 +2,77 @@ "randomStatetest534" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest534Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1440446145", + "code" : "0x7f000000000000000000000001000000000000000000000000000000000000000045437f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff457f0000000000000000000000000000000000000000000000000000000000000000436ff3075243846d88747b6a9e7ff28c615560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xf3075243846d88747b6a9e7ff28c6155" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46614", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998559507287", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1574eff7e6ced4d527e646ef4e568a5d0414751286ef2fd92d956bb53424c4e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1574eff7e6ced4d527e646ef4e568a5d0414751286ef2fd92d956bb53424c4e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1574eff7e6ced4d527e646ef4e568a5d0414751286ef2fd92d956bb53424c4e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1574eff7e6ced4d527e646ef4e568a5d0414751286ef2fd92d956bb53424c4e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1574eff7e6ced4d527e646ef4e568a5d0414751286ef2fd92d956bb53424c4e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1574eff7e6ced4d527e646ef4e568a5d0414751286ef2fd92d956bb53424c4e5", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000001000000000000000000000000000000000000000045437f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff457f0000000000000000000000000000000000000000000000000000000000000000436ff3075243846d88747b6a9e7ff28c615560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0810f1e2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x55db76c1" + "1440446145" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest535.json b/GeneralStateTests/stRandom/randomStatetest535.json index 54ff54e7d..32c9102b7 100644 --- a/GeneralStateTests/stRandom/randomStatetest535.json +++ b/GeneralStateTests/stRandom/randomStatetest535.json @@ -2,91 +2,76 @@ "randomStatetest535" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest535Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x4cd4dc30", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xbc8e", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b35a8e6770", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb098726ac5c2f7001c66db547c70b9ba7a42db05d839fb969f114818d9db1544", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb098726ac5c2f7001c66db547c70b9ba7a42db05d839fb969f114818d9db1544", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb098726ac5c2f7001c66db547c70b9ba7a42db05d839fb969f114818d9db1544", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb098726ac5c2f7001c66db547c70b9ba7a42db05d839fb969f114818d9db1544", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb098726ac5c2f7001c66db547c70b9ba7a42db05d839fb969f114818d9db1544", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b098726ac5c2f7001c66db547c70b9ba7a42db05d839fb969f114818d9db1544", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000055", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x4cd4dc30" ] diff --git a/GeneralStateTests/stRandom/randomStatetest536.json b/GeneralStateTests/stRandom/randomStatetest536.json index aeb04b688..0975c0eb7 100644 --- a/GeneralStateTests/stRandom/randomStatetest536.json +++ b/GeneralStateTests/stRandom/randomStatetest536.json @@ -2,92 +2,76 @@ "randomStatetest536" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest536Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1392179737", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350537f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9309f3999c7d92795a947a6f317f55", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41509", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998607778800", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0xd48e2cd18cfbab19f208076885dbf9161398e91c1d8eb4c3b8ff97965d51be22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd48e2cd18cfbab19f208076885dbf9161398e91c1d8eb4c3b8ff97965d51be22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd48e2cd18cfbab19f208076885dbf9161398e91c1d8eb4c3b8ff97965d51be22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd48e2cd18cfbab19f208076885dbf9161398e91c1d8eb4c3b8ff97965d51be22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd48e2cd18cfbab19f208076885dbf9161398e91c1d8eb4c3b8ff97965d51be22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d48e2cd18cfbab19f208076885dbf9161398e91c1d8eb4c3b8ff97965d51be22", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c350537f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9309f3999c7d92795a947a6f317f55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x11f18cf7" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x52fafa19" + "1392179737" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest537.json b/GeneralStateTests/stRandom/randomStatetest537.json index ccf4a90e2..90f6fc4d5 100644 --- a/GeneralStateTests/stRandom/randomStatetest537.json +++ b/GeneralStateTests/stRandom/randomStatetest537.json @@ -2,92 +2,77 @@ "randomStatetest537" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest537Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1910780625", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5688068515a6a996a540a03686d6d60005155", + "nonce" : "0", + "storage" : { + "0xb5688068515a6a996a540a03686d6d600051" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48326", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998089171095", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf5f1d160a4dbfe330a774f839fabe850ee58a0d4de98f4a9cf70bfddbe33317f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf5f1d160a4dbfe330a774f839fabe850ee58a0d4de98f4a9cf70bfddbe33317f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf5f1d160a4dbfe330a774f839fabe850ee58a0d4de98f4a9cf70bfddbe33317f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf5f1d160a4dbfe330a774f839fabe850ee58a0d4de98f4a9cf70bfddbe33317f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf5f1d160a4dbfe330a774f839fabe850ee58a0d4de98f4a9cf70bfddbe33317f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f5f1d160a4dbfe330a774f839fabe850ee58a0d4de98f4a9cf70bfddbe33317f", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5688068515a6a996a540a03686d6d60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x46ac408d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x71e432d1" + "1910780625" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest538.json b/GeneralStateTests/stRandom/randomStatetest538.json index 9dc29804d..53dbf8c29 100644 --- a/GeneralStateTests/stRandom/randomStatetest538.json +++ b/GeneralStateTests/stRandom/randomStatetest538.json @@ -2,92 +2,76 @@ "randomStatetest538" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest538Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000004340427f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52835a546b6685923465", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1241595343", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998758404703", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xadebc5b15e70b5b8ad3eb5d2d0bc7880149d6f86d96cbc861494f810c3d325c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xadebc5b15e70b5b8ad3eb5d2d0bc7880149d6f86d96cbc861494f810c3d325c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xadebc5b15e70b5b8ad3eb5d2d0bc7880149d6f86d96cbc861494f810c3d325c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xadebc5b15e70b5b8ad3eb5d2d0bc7880149d6f86d96cbc861494f810c3d325c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xadebc5b15e70b5b8ad3eb5d2d0bc7880149d6f86d96cbc861494f810c3d325c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "adebc5b15e70b5b8ad3eb5d2d0bc7880149d6f86d96cbc861494f810c3d325c1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000004340427f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52835a546b6685923465", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x4a013da1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x74d18d6b" + "1959890283" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest539.json b/GeneralStateTests/stRandom/randomStatetest539.json index feb10945b..4f85d4294 100644 --- a/GeneralStateTests/stRandom/randomStatetest539.json +++ b/GeneralStateTests/stRandom/randomStatetest539.json @@ -2,92 +2,77 @@ "randomStatetest539" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest539Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1428708105", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff096794200bf18b0b316e415560005155", + "nonce" : "0", + "storage" : { + "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : "0x94200bf18b0b316e" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "55575", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998571236366", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5b769df394b81be945938b4b63a2806dad29b30558ba93537f81f0c1acd79d97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5b769df394b81be945938b4b63a2806dad29b30558ba93537f81f0c1acd79d97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5b769df394b81be945938b4b63a2806dad29b30558ba93537f81f0c1acd79d97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5b769df394b81be945938b4b63a2806dad29b30558ba93537f81f0c1acd79d97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5b769df394b81be945938b4b63a2806dad29b30558ba93537f81f0c1acd79d97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5b769df394b81be945938b4b63a2806dad29b30558ba93537f81f0c1acd79d97", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff096794200bf18b0b316e415560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x40a1f17a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x55285b09" + "1428708105" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest54.json b/GeneralStateTests/stRandom/randomStatetest54.json index 8209b84d8..511f7e68c 100644 --- a/GeneralStateTests/stRandom/randomStatetest54.json +++ b/GeneralStateTests/stRandom/randomStatetest54.json @@ -2,92 +2,76 @@ "randomStatetest54" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest54Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001c9206e3b8f9d858f438a", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1582728260", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998417271786", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xcbcd9800020c801c45de04da2bd7697b9fd44d571860a7555ebc61ba44ae11af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcbcd9800020c801c45de04da2bd7697b9fd44d571860a7555ebc61ba44ae11af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcbcd9800020c801c45de04da2bd7697b9fd44d571860a7555ebc61ba44ae11af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcbcd9800020c801c45de04da2bd7697b9fd44d571860a7555ebc61ba44ae11af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcbcd9800020c801c45de04da2bd7697b9fd44d571860a7555ebc61ba44ae11af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "cbcd9800020c801c45de04da2bd7697b9fd44d571860a7555ebc61ba44ae11af", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001c9206e3b8f9d858f438a", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x5e568416" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4602ad8c" + "1174580620" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest541.json b/GeneralStateTests/stRandom/randomStatetest541.json index 4013109af..ffac26bac 100644 --- a/GeneralStateTests/stRandom/randomStatetest541.json +++ b/GeneralStateTests/stRandom/randomStatetest541.json @@ -2,92 +2,77 @@ "randomStatetest541" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest541Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "525505301", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000004335696e089257368d07897d57350b105560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49763", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999474444982", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x941269097ac5280c635054b3872a3f735c56a718043d887c8a339842dfb928e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x941269097ac5280c635054b3872a3f735c56a718043d887c8a339842dfb928e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x941269097ac5280c635054b3872a3f735c56a718043d887c8a339842dfb928e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x941269097ac5280c635054b3872a3f735c56a718043d887c8a339842dfb928e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x941269097ac5280c635054b3872a3f735c56a718043d887c8a339842dfb928e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "941269097ac5280c635054b3872a3f735c56a718043d887c8a339842dfb928e2", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff457f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000004335696e089257368d07897d57350b105560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7b88a390" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1f529315" + "525505301" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest542.json b/GeneralStateTests/stRandom/randomStatetest542.json index 3f60cb384..5f50e0c72 100644 --- a/GeneralStateTests/stRandom/randomStatetest542.json +++ b/GeneralStateTests/stRandom/randomStatetest542.json @@ -2,92 +2,78 @@ "randomStatetest542" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest542Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2111491039", + "code" : "0x427f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000397f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5925560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "0xffffffffffffffffffffffffffffffffffffffff" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "67388", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997888441619", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x26f9ef7553b68e53d55a79839655fd6c35690c38926ac2f26ed1c72eae52d63f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x26f9ef7553b68e53d55a79839655fd6c35690c38926ac2f26ed1c72eae52d63f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x26f9ef7553b68e53d55a79839655fd6c35690c38926ac2f26ed1c72eae52d63f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x26f9ef7553b68e53d55a79839655fd6c35690c38926ac2f26ed1c72eae52d63f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x26f9ef7553b68e53d55a79839655fd6c35690c38926ac2f26ed1c72eae52d63f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "77c725d792dce4219ca91d10a797446637a88f1761dbb8dd1daba161c4e8979e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x427f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000397f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5925560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x073df881" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7ddacbdf" + "2111491039" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest543.json b/GeneralStateTests/stRandom/randomStatetest543.json index a310ace73..93e6411f0 100644 --- a/GeneralStateTests/stRandom/randomStatetest543.json +++ b/GeneralStateTests/stRandom/randomStatetest543.json @@ -2,91 +2,75 @@ "randomStatetest543" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest543Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x025dcd0a", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000004586", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x68b4", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a505ca70", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x009cdfe12bb06588c7382e66facc4058eb08d3cacaa89e128a7cf367b31d0682", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x009cdfe12bb06588c7382e66facc4058eb08d3cacaa89e128a7cf367b31d0682", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x009cdfe12bb06588c7382e66facc4058eb08d3cacaa89e128a7cf367b31d0682", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x009cdfe12bb06588c7382e66facc4058eb08d3cacaa89e128a7cf367b31d0682", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x009cdfe12bb06588c7382e66facc4058eb08d3cacaa89e128a7cf367b31d0682", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "009cdfe12bb06588c7382e66facc4058eb08d3cacaa89e128a7cf367b31d0682", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000004586", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x025dcd0a" ] diff --git a/GeneralStateTests/stRandom/randomStatetest544.json b/GeneralStateTests/stRandom/randomStatetest544.json index cf9522b68..196aaa5e4 100644 --- a/GeneralStateTests/stRandom/randomStatetest544.json +++ b/GeneralStateTests/stRandom/randomStatetest544.json @@ -2,92 +2,77 @@ "randomStatetest544" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest544Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1348206974", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3503b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff097f000000000000000000000000000000000000000000000000000000000000000055", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47709", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998651745363", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4c82fbc09c054508c63d819f3a65964a080e971ecf80e311ec83d1f7b0f8d4dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4c82fbc09c054508c63d819f3a65964a080e971ecf80e311ec83d1f7b0f8d4dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x59bc15059d9dc8600ccada761966b3313282a210ae4fa560934d6b327b42f026", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x59bc15059d9dc8600ccada761966b3313282a210ae4fa560934d6b327b42f026", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4c82fbc09c054508c63d819f3a65964a080e971ecf80e311ec83d1f7b0f8d4dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "59bc15059d9dc8600ccada761966b3313282a210ae4fa560934d6b327b42f026", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3503b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff097f000000000000000000000000000000000000000000000000000000000000000055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x68b20f67" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x505c017e" + "1348206974" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest545.json b/GeneralStateTests/stRandom/randomStatetest545.json index 99515a908..9deb55d2b 100644 --- a/GeneralStateTests/stRandom/randomStatetest545.json +++ b/GeneralStateTests/stRandom/randomStatetest545.json @@ -2,92 +2,77 @@ "randomStatetest545" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest545Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "321021476", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350637c9c8213300560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x133f69d3addbd85daa8b17484bed8731" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51325", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999678927245", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7c3fd223a72b38606bc451d71688c466575f034493c1ea41b7250196727d0f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7c3fd223a72b38606bc451d71688c466575f034493c1ea41b7250196727d0f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7c3fd223a72b38606bc451d71688c466575f034493c1ea41b7250196727d0f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7c3fd223a72b38606bc451d71688c466575f034493c1ea41b7250196727d0f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7c3fd223a72b38606bc451d71688c466575f034493c1ea41b7250196727d0f44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7c3fd223a72b38606bc451d71688c466575f034493c1ea41b7250196727d0f44", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350637c9c8213300560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3424aed3" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x13226624" + "321021476" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest546.json b/GeneralStateTests/stRandom/randomStatetest546.json index 608cd0052..e127ea8c4 100644 --- a/GeneralStateTests/stRandom/randomStatetest546.json +++ b/GeneralStateTests/stRandom/randomStatetest546.json @@ -2,92 +2,77 @@ "randomStatetest546" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest546Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1796553007", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff447f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000010000000000000000000000000000000000000000956f895258826c355765922086717315015560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x895258826c3557659220867173150155" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47065", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998203399974", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe2424cd2e7ecd99f68d701e09cf51a96eef20a217478da5361c5aae39e7a361e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe2424cd2e7ecd99f68d701e09cf51a96eef20a217478da5361c5aae39e7a361e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe2424cd2e7ecd99f68d701e09cf51a96eef20a217478da5361c5aae39e7a361e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe2424cd2e7ecd99f68d701e09cf51a96eef20a217478da5361c5aae39e7a361e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe2424cd2e7ecd99f68d701e09cf51a96eef20a217478da5361c5aae39e7a361e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e2424cd2e7ecd99f68d701e09cf51a96eef20a217478da5361c5aae39e7a361e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff447f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000010000000000000000000000000000000000000000956f895258826c355765922086717315015560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1284e7d1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6b15392f" + "1796553007" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest547.json b/GeneralStateTests/stRandom/randomStatetest547.json index 1f44ae912..9c470715e 100644 --- a/GeneralStateTests/stRandom/randomStatetest547.json +++ b/GeneralStateTests/stRandom/randomStatetest547.json @@ -2,17 +2,53 @@ "randomStatetest547" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest547Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1980806241", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c35014623971943854a009768255", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "57530954", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997961662851", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -23,78 +59,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc1caaee92a003ced2a5e937992db24db13336c6f82e0a22c5c38bb79a945428c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc1caaee92a003ced2a5e937992db24db13336c6f82e0a22c5c38bb79a945428c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0f7291ecb91b63577349784d5460818fec6539a23abb9041157bf70b00962de3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0f7291ecb91b63577349784d5460818fec6539a23abb9041157bf70b00962de3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc1caaee92a003ced2a5e937992db24db13336c6f82e0a22c5c38bb79a945428c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0f7291ecb91b63577349784d5460818fec6539a23abb9041157bf70b00962de3", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c35014623971943854a009768255", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -106,12 +90,12 @@ "gasLimit" : [ "0x605781c3" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7610b461" + "1980806241" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest548.json b/GeneralStateTests/stRandom/randomStatetest548.json index 0bb27c161..b4e7b6820 100644 --- a/GeneralStateTests/stRandom/randomStatetest548.json +++ b/GeneralStateTests/stRandom/randomStatetest548.json @@ -2,92 +2,77 @@ "randomStatetest548" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest548Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "715419522", + "code" : "0x7f0000000000000000000000010000000000000000000000000000000000000000417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000019417f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f777a349a646633977da01a315a3c035560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x777a349a646633977da01a315a3c0355" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47640", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999284532884", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x93780ea38353849c8b44571282a8da97c9ca498714dc6d9c6b70f0a53f0b4b13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x93780ea38353849c8b44571282a8da97c9ca498714dc6d9c6b70f0a53f0b4b13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x93780ea38353849c8b44571282a8da97c9ca498714dc6d9c6b70f0a53f0b4b13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x93780ea38353849c8b44571282a8da97c9ca498714dc6d9c6b70f0a53f0b4b13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x93780ea38353849c8b44571282a8da97c9ca498714dc6d9c6b70f0a53f0b4b13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "93780ea38353849c8b44571282a8da97c9ca498714dc6d9c6b70f0a53f0b4b13", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f0000000000000000000000010000000000000000000000000000000000000000417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000019417f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f777a349a646633977da01a315a3c035560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x66ad794c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2aa46f82" + "715419522" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest549.json b/GeneralStateTests/stRandom/randomStatetest549.json index 6df67c8f8..09c52a98a 100644 --- a/GeneralStateTests/stRandom/randomStatetest549.json +++ b/GeneralStateTests/stRandom/randomStatetest549.json @@ -2,92 +2,76 @@ "randomStatetest549" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest549Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "00000000000000000000000080000000000003e7" : { + "balance" : "1000000000000100000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "10592", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999889454", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x990db9d5f07c4c9e80aa47e60c6e94930a6ecebb5502bf526af142affecc9f4a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x990db9d5f07c4c9e80aa47e60c6e94930a6ecebb5502bf526af142affecc9f4a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x80a4f96c995f31704d3c94c2a5476bbfa9dc76b497d01b31ef91a88609cad0a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x80a4f96c995f31704d3c94c2a5476bbfa9dc76b497d01b31ef91a88609cad0a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x990db9d5f07c4c9e80aa47e60c6e94930a6ecebb5502bf526af142affecc9f4a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "4bb7b2c32daf12a48ab214c74b5cf1c8634e40b6273e17a62555d0e2b86bd25c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x424441444141454208ff65a0090272", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest55.json b/GeneralStateTests/stRandom/randomStatetest55.json index 359b70b27..5c82ef1d9 100644 --- a/GeneralStateTests/stRandom/randomStatetest55.json +++ b/GeneralStateTests/stRandom/randomStatetest55.json @@ -2,92 +2,76 @@ "randomStatetest55" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest55Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000000084967f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff137ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016f3a5b594088a2f238089b71", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "735473324", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999264526722", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6679658a0098c0b2d5bfcad043a0d321ac3bd90a2202253d1ac2db557560f0b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6679658a0098c0b2d5bfcad043a0d321ac3bd90a2202253d1ac2db557560f0b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6679658a0098c0b2d5bfcad043a0d321ac3bd90a2202253d1ac2db557560f0b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6679658a0098c0b2d5bfcad043a0d321ac3bd90a2202253d1ac2db557560f0b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6679658a0098c0b2d5bfcad043a0d321ac3bd90a2202253d1ac2db557560f0b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6679658a0098c0b2d5bfcad043a0d321ac3bd90a2202253d1ac2db557560f0b6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000000084967f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff137ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016f3a5b594088a2f238089b71", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x2bd66e7e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x40bfde69" + "1086316137" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest550.json b/GeneralStateTests/stRandom/randomStatetest550.json index a4d992204..4914066a0 100644 --- a/GeneralStateTests/stRandom/randomStatetest550.json +++ b/GeneralStateTests/stRandom/randomStatetest550.json @@ -2,92 +2,77 @@ "randomStatetest550" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest550Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1391193544", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f4472a17829659c94a29041419564313a60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x4472a17829659c94a29041419564313a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51095", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998608755407", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x353b1f732d1ad4a79fb1f07fd73d816eea624ad5de613efc884291c890595b2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x353b1f732d1ad4a79fb1f07fd73d816eea624ad5de613efc884291c890595b2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x353b1f732d1ad4a79fb1f07fd73d816eea624ad5de613efc884291c890595b2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x353b1f732d1ad4a79fb1f07fd73d816eea624ad5de613efc884291c890595b2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x353b1f732d1ad4a79fb1f07fd73d816eea624ad5de613efc884291c890595b2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "353b1f732d1ad4a79fb1f07fd73d816eea624ad5de613efc884291c890595b2e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f4472a17829659c94a29041419564313a60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0b32e55b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x52ebedc8" + "1391193544" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest552.json b/GeneralStateTests/stRandom/randomStatetest552.json index a617ed6c8..b544fff13 100644 --- a/GeneralStateTests/stRandom/randomStatetest552.json +++ b/GeneralStateTests/stRandom/randomStatetest552.json @@ -2,92 +2,77 @@ "randomStatetest552" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest552Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1809429900", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff42147ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe547f00000000000000000000000000000000000000000000000000000000000000006f6a72a37b5219f089416d4336a08e825560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x6a72a37b5219f089416d4336a08e8255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48904", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998190521242", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2c1938140279367e997725f0ba927415a4feeed657192f114bed35d9a945cc79", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2c1938140279367e997725f0ba927415a4feeed657192f114bed35d9a945cc79", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x09b3473145b654d689add3df15495a407a140334dd3e2f107a0b0f556ca39391", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x09b3473145b654d689add3df15495a407a140334dd3e2f107a0b0f556ca39391", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2c1938140279367e997725f0ba927415a4feeed657192f114bed35d9a945cc79", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "09b3473145b654d689add3df15495a407a140334dd3e2f107a0b0f556ca39391", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff42147ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe547f00000000000000000000000000000000000000000000000000000000000000006f6a72a37b5219f089416d4336a08e825560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x59f4666c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6bd9b58c" + "1809429900" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest553.json b/GeneralStateTests/stRandom/randomStatetest553.json index e4468bc47..18ecf88ce 100644 --- a/GeneralStateTests/stRandom/randomStatetest553.json +++ b/GeneralStateTests/stRandom/randomStatetest553.json @@ -2,92 +2,77 @@ "randomStatetest553" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest553Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "143286", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000016f94819c780585376da073368c45828ca060005155", + "nonce" : "0", + "storage" : { + "0x" : "0x94819c780585376da073368c45828ca0" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49687", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999807073", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x639c1bf1ec0f21503c18a8ef77400118874ca8ba3c94ed1f5435f9d3c49774c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x639c1bf1ec0f21503c18a8ef77400118874ca8ba3c94ed1f5435f9d3c49774c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x639c1bf1ec0f21503c18a8ef77400118874ca8ba3c94ed1f5435f9d3c49774c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x639c1bf1ec0f21503c18a8ef77400118874ca8ba3c94ed1f5435f9d3c49774c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x639c1bf1ec0f21503c18a8ef77400118874ca8ba3c94ed1f5435f9d3c49774c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "639c1bf1ec0f21503c18a8ef77400118874ca8ba3c94ed1f5435f9d3c49774c4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000016f94819c780585376da073368c45828ca060005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x54f14b65" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x022fb6" + "143286" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest554.json b/GeneralStateTests/stRandom/randomStatetest554.json index 38015e91a..07a51bf07 100644 --- a/GeneralStateTests/stRandom/randomStatetest554.json +++ b/GeneralStateTests/stRandom/randomStatetest554.json @@ -2,17 +2,53 @@ "randomStatetest554" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest554Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x485341cc", + "code" : "0x601460dca06029728b67ba4c2fc8c63c46f19bb45a4be3f678b30669ba571e944074c21b140a7a65d14a921ec804a45ecf4d952aa923fb23a0574acd8ef9f82c7db17e157f651bbeb520203bd398160345137b0419a395630fce1a7ed24c0cccfd91766140e0682f6bd571db701b4616b567f215faf42fb37d2a7c43c05a634612322eda99f09cc2907a6cba01bb6869b7d24b897ec43b9b63a8747a897af14c1f4c0b186c6311d36de86b8c8172aa43c3dfe3ea16503380877fa7f32deb9f60254d124338105942b4b5b88c443351de5ebf14c2380f4a91327d68a0da66abd627db75739942675f5855728fd677646cafec536e37d0da8122cf8681bc106013601b600360086307efe33a73095e7baea6a6c7c4c2dfeb977efac326af552d8763176fe819f16566b603cccf387c5f10e5cdb2ba1b456d2a0386ee72ddf3ff65b33a551afa423f8af05e347b5c50b6fe69c77f0682ef890d8ed8ab3833f128389f6407911fb20590642c9765e97c7f31dfa251377a47ca45b72ce5c1896a697990d60a01cabaf5e4d8f55f11fd37427351d1f8e89810c7aeec6482fd03d7e7ca58fbaae361e3936936543d6dacb1f97f19c3721866491bad73f32faea37b4a8c273668e04dff8863a542e11775a693c3b4bcd4fc1a87ddb6450f8f6c2f1ba807aaffb67e62af22cd93175b5ffb428ee9116dad4a695aa514b8ca4d615fd728a61c124c796554a98241320ac2d6b9f16ee1c203dbba537a211142df4c2e626e4108f87ab6d5b8e9ce86f92aba50a47acc60d734e7a066131d99dad149451b386120eed210723bd8304caa61048c67512ca417ae8857a46ad24ca1f2cb75f75ef86a927152bd86981a216d8147f49ead4be46967dd10751491f9f1ac2f50fd5dad394b7838a9eb89b372698362647bddbb90586e4e921a8cc96ea0c50d07da472b3e6360a39c", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x17711987", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3479fa4db", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -23,77 +59,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5904ba514537a4da19e4dda5cd7f0fca9f444bcfe3f40b83fe02b627bae9e261", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5904ba514537a4da19e4dda5cd7f0fca9f444bcfe3f40b83fe02b627bae9e261", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe5c36420d3cdf522a37504c4ac4cc5669337f45f2f634f666494d34f92c8d190", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe5c36420d3cdf522a37504c4ac4cc5669337f45f2f634f666494d34f92c8d190", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5904ba514537a4da19e4dda5cd7f0fca9f444bcfe3f40b83fe02b627bae9e261", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e5c36420d3cdf522a37504c4ac4cc5669337f45f2f634f666494d34f92c8d190", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x601460dca06029728b67ba4c2fc8c63c46f19bb45a4be3f678b30669ba571e944074c21b140a7a65d14a921ec804a45ecf4d952aa923fb23a0574acd8ef9f82c7db17e157f651bbeb520203bd398160345137b0419a395630fce1a7ed24c0cccfd91766140e0682f6bd571db701b4616b567f215faf42fb37d2a7c43c05a634612322eda99f09cc2907a6cba01bb6869b7d24b897ec43b9b63a8747a897af14c1f4c0b186c6311d36de86b8c8172aa43c3dfe3ea16503380877fa7f32deb9f60254d124338105942b4b5b88c443351de5ebf14c2380f4a91327d68a0da66abd627db75739942675f5855728fd677646cafec536e37d0da8122cf8681bc106013601b600360086307efe33a73095e7baea6a6c7c4c2dfeb977efac326af552d8763176fe819f16566b603cccf387c5f10e5cdb2ba1b456d2a0386ee72ddf3ff65b33a551afa423f8af05e347b5c50b6fe69c77f0682ef890d8ed8ab3833f128389f6407911fb20590642c9765e97c7f31dfa251377a47ca45b72ce5c1896a697990d60a01cabaf5e4d8f55f11fd37427351d1f8e89810c7aeec6482fd03d7e7ca58fbaae361e3936936543d6dacb1f97f19c3721866491bad73f32faea37b4a8c273668e04dff8863a542e11775a693c3b4bcd4fc1a87ddb6450f8f6c2f1ba807aaffb67e62af22cd93175b5ffb428ee9116dad4a695aa514b8ca4d615fd728a61c124c796554a98241320ac2d6b9f16ee1c203dbba537a211142df4c2e626e4108f87ab6d5b8e9ce86f92aba50a47acc60d734e7a066131d99dad149451b386120eed210723bd8304caa61048c67512ca417ae8857a46ad24ca1f2cb75f75ef86a927152bd86981a216d8147f49ead4be46967dd10751491f9f1ac2f50fd5dad394b7838a9eb89b372698362647bddbb90586e4e921a8cc96ea0c50d07da472b3e6360a39c", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -108,8 +92,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x485341cc" ] diff --git a/GeneralStateTests/stRandom/randomStatetest555.json b/GeneralStateTests/stRandom/randomStatetest555.json index 9c6110dea..272031655 100644 --- a/GeneralStateTests/stRandom/randomStatetest555.json +++ b/GeneralStateTests/stRandom/randomStatetest555.json @@ -2,92 +2,77 @@ "randomStatetest555" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest555Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "119135864", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000c3506f3b8f936e6f3874603c59120707e3588c60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x3b8f936e6f3874603c59120707e3588c" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48213", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999880815969", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x78ea6d6870dd607c16f72de4ae9ebf001157f996ee36dd7c2d4460472e93bbeb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x78ea6d6870dd607c16f72de4ae9ebf001157f996ee36dd7c2d4460472e93bbeb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x78ea6d6870dd607c16f72de4ae9ebf001157f996ee36dd7c2d4460472e93bbeb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x78ea6d6870dd607c16f72de4ae9ebf001157f996ee36dd7c2d4460472e93bbeb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x78ea6d6870dd607c16f72de4ae9ebf001157f996ee36dd7c2d4460472e93bbeb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "78ea6d6870dd607c16f72de4ae9ebf001157f996ee36dd7c2d4460472e93bbeb", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000c3506f3b8f936e6f3874603c59120707e3588c60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1d8ad73a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0719de78" + "119135864" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest556.json b/GeneralStateTests/stRandom/randomStatetest556.json index 34990defc..b6b1a6142 100644 --- a/GeneralStateTests/stRandom/randomStatetest556.json +++ b/GeneralStateTests/stRandom/randomStatetest556.json @@ -2,92 +2,77 @@ "randomStatetest556" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest556Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1156625804", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f726e757692a2ad96526b9e8b77a33a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x726e757692a2ad96526b9e8b77a33a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48345", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998843325897", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x0055816a27a63f97f415e9f2ae5fa3ff2bd61d3a08d29c54aad8ffd7665f3a47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0055816a27a63f97f415e9f2ae5fa3ff2bd61d3a08d29c54aad8ffd7665f3a47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0055816a27a63f97f415e9f2ae5fa3ff2bd61d3a08d29c54aad8ffd7665f3a47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0055816a27a63f97f415e9f2ae5fa3ff2bd61d3a08d29c54aad8ffd7665f3a47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0055816a27a63f97f415e9f2ae5fa3ff2bd61d3a08d29c54aad8ffd7665f3a47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0055816a27a63f97f415e9f2ae5fa3ff2bd61d3a08d29c54aad8ffd7665f3a47", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f726e757692a2ad96526b9e8b77a33a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6e98031d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x44f0b58c" + "1156625804" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest558.json b/GeneralStateTests/stRandom/randomStatetest558.json index 0a214d08d..dba13a52b 100644 --- a/GeneralStateTests/stRandom/randomStatetest558.json +++ b/GeneralStateTests/stRandom/randomStatetest558.json @@ -2,92 +2,76 @@ "randomStatetest558" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest558Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x43767855", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "21119", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999878927", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4cf7506d1dea424f139b33df9f98b63319321abdc35573704330cdaabd604e80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4cf7506d1dea424f139b33df9f98b63319321abdc35573704330cdaabd604e80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4cf7506d1dea424f139b33df9f98b63319321abdc35573704330cdaabd604e80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4cf7506d1dea424f139b33df9f98b63319321abdc35573704330cdaabd604e80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4cf7506d1dea424f139b33df9f98b63319321abdc35573704330cdaabd604e80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "4cf7506d1dea424f139b33df9f98b63319321abdc35573704330cdaabd604e80", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x43767855", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest559.json b/GeneralStateTests/stRandom/randomStatetest559.json index 71c45182d..cfd22a573 100644 --- a/GeneralStateTests/stRandom/randomStatetest559.json +++ b/GeneralStateTests/stRandom/randomStatetest559.json @@ -2,92 +2,76 @@ "randomStatetest559" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest559Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000ffffffffffffffffffffffff" : { + "balance" : "312647948", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "14396", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999687337702", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xbf0eb5473b48cd5d7480cb723150f0140fb6b426c83ad8165dc012d0a2a38473", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xbf0eb5473b48cd5d7480cb723150f0140fb6b426c83ad8165dc012d0a2a38473", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9461e2fa23cb2804ba815d6a49dccd298976a131c36f717823ea7641622a5892", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9461e2fa23cb2804ba815d6a49dccd298976a131c36f717823ea7641622a5892", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbf0eb5473b48cd5d7480cb723150f0140fb6b426c83ad8165dc012d0a2a38473", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9461e2fa23cb2804ba815d6a49dccd298976a131c36f717823ea7641622a5892", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000008509ff1555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x07d9fc6d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x12a2a10c" + "312647948" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest560.json b/GeneralStateTests/stRandom/randomStatetest560.json index 76f8b6076..95f49e7db 100644 --- a/GeneralStateTests/stRandom/randomStatetest560.json +++ b/GeneralStateTests/stRandom/randomStatetest560.json @@ -2,17 +2,53 @@ "randomStatetest560" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest560Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "50481116", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c35059a17f0000000000000000000000000000000000000000000000000000000000000001f38f07bf60005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "436309", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999949082621", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -24,78 +60,26 @@ } ], "out" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0x57a9813176db0f5c519221d0d8c132b50ab7d92fa3d9287027dcf454696c3c93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x57a9813176db0f5c519221d0d8c132b50ab7d92fa3d9287027dcf454696c3c93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x57a9813176db0f5c519221d0d8c132b50ab7d92fa3d9287027dcf454696c3c93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x57a9813176db0f5c519221d0d8c132b50ab7d92fa3d9287027dcf454696c3c93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x57a9813176db0f5c519221d0d8c132b50ab7d92fa3d9287027dcf454696c3c93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "57a9813176db0f5c519221d0d8c132b50ab7d92fa3d9287027dcf454696c3c93", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c35059a17f0000000000000000000000000000000000000000000000000000000000000001f38f07bf60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -107,12 +91,12 @@ "gasLimit" : [ "0x5a11064f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x030247dc" + "50481116" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest562.json b/GeneralStateTests/stRandom/randomStatetest562.json index 9ecbc6174..127574b45 100644 --- a/GeneralStateTests/stRandom/randomStatetest562.json +++ b/GeneralStateTests/stRandom/randomStatetest562.json @@ -2,91 +2,75 @@ "randomStatetest562" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest562Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350a094448744", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x7f8db131", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b327d64efd", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xfe6e569b97acd94e53ee5ff7f687b912625f587fc7b4efefba311fe07df2a9c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xfe6e569b97acd94e53ee5ff7f687b912625f587fc7b4efefba311fe07df2a9c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfe6e569b97acd94e53ee5ff7f687b912625f587fc7b4efefba311fe07df2a9c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfe6e569b97acd94e53ee5ff7f687b912625f587fc7b4efefba311fe07df2a9c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfe6e569b97acd94e53ee5ff7f687b912625f587fc7b4efefba311fe07df2a9c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "fe6e569b97acd94e53ee5ff7f687b912625f587fc7b4efefba311fe07df2a9c5", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350a094448744", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x591bc129" ] diff --git a/GeneralStateTests/stRandom/randomStatetest563.json b/GeneralStateTests/stRandom/randomStatetest563.json index 040fe4e61..8970d9b2f 100644 --- a/GeneralStateTests/stRandom/randomStatetest563.json +++ b/GeneralStateTests/stRandom/randomStatetest563.json @@ -2,92 +2,76 @@ "randomStatetest563" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest563Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe418b7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50461098038315ba267", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1043284103", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998956715943", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x0e20a3eb1ed620f84ba16992f75adeca330f8b2c2c1790fc8b57346d3c44a9eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0e20a3eb1ed620f84ba16992f75adeca330f8b2c2c1790fc8b57346d3c44a9eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0e20a3eb1ed620f84ba16992f75adeca330f8b2c2c1790fc8b57346d3c44a9eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0e20a3eb1ed620f84ba16992f75adeca330f8b2c2c1790fc8b57346d3c44a9eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0e20a3eb1ed620f84ba16992f75adeca330f8b2c2c1790fc8b57346d3c44a9eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0e20a3eb1ed620f84ba16992f75adeca330f8b2c2c1790fc8b57346d3c44a9eb", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe418b7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50461098038315ba267", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x3e2f4059" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4c814c67" + "1283542119" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest564.json b/GeneralStateTests/stRandom/randomStatetest564.json index 88656b3a6..e572f54de 100644 --- a/GeneralStateTests/stRandom/randomStatetest564.json +++ b/GeneralStateTests/stRandom/randomStatetest564.json @@ -2,92 +2,77 @@ "randomStatetest564" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest564Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "286796184", + "code" : "0x5b7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4550081655", + "nonce" : "0", + "storage" : { + "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51627", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999713152235", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x2f60c3c775a535cab4c171c937018759a0cac0f9485d90a72c9a739becf406c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2f60c3c775a535cab4c171c937018759a0cac0f9485d90a72c9a739becf406c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2f60c3c775a535cab4c171c937018759a0cac0f9485d90a72c9a739becf406c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2f60c3c775a535cab4c171c937018759a0cac0f9485d90a72c9a739becf406c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2f60c3c775a535cab4c171c937018759a0cac0f9485d90a72c9a739becf406c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2f60c3c775a535cab4c171c937018759a0cac0f9485d90a72c9a739becf406c7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x5b7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe4550081655", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x79ad8da8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x11182998" + "286796184" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest565.json b/GeneralStateTests/stRandom/randomStatetest565.json index ca1e14368..a203928db 100644 --- a/GeneralStateTests/stRandom/randomStatetest565.json +++ b/GeneralStateTests/stRandom/randomStatetest565.json @@ -2,92 +2,77 @@ "randomStatetest565" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest565Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "684525926", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c350137f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000010000000000000000000000000000000000000000923760005155", + "nonce" : "0", + "storage" : { + "0x7f00000000000000000000000100000000000000000000000000000000000000" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "58272", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999315415848", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x97aa08cd6d0b13b54c19e7b6f22643344a9e43fd6508f4f028137a3a2a1c42f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x97aa08cd6d0b13b54c19e7b6f22643344a9e43fd6508f4f028137a3a2a1c42f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x97aa08cd6d0b13b54c19e7b6f22643344a9e43fd6508f4f028137a3a2a1c42f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x97aa08cd6d0b13b54c19e7b6f22643344a9e43fd6508f4f028137a3a2a1c42f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x97aa08cd6d0b13b54c19e7b6f22643344a9e43fd6508f4f028137a3a2a1c42f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "97aa08cd6d0b13b54c19e7b6f22643344a9e43fd6508f4f028137a3a2a1c42f9", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c350137f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000010000000000000000000000000000000000000000923760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x273f739f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x28cd0966" + "684525926" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest566.json b/GeneralStateTests/stRandom/randomStatetest566.json index 7c2347865..b65414ba5 100644 --- a/GeneralStateTests/stRandom/randomStatetest566.json +++ b/GeneralStateTests/stRandom/randomStatetest566.json @@ -2,92 +2,76 @@ "randomStatetest566" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest566Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x9a7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000117f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b593963332578665734360005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "304093142", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999695906904", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xda9ba6a63835b74e053ed244ee764e193863ac80eac5d74c597213f341f63dc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xda9ba6a63835b74e053ed244ee764e193863ac80eac5d74c597213f341f63dc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xda9ba6a63835b74e053ed244ee764e193863ac80eac5d74c597213f341f63dc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xda9ba6a63835b74e053ed244ee764e193863ac80eac5d74c597213f341f63dc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xda9ba6a63835b74e053ed244ee764e193863ac80eac5d74c597213f341f63dc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "da9ba6a63835b74e053ed244ee764e193863ac80eac5d74c597213f341f63dc2", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x9a7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000117f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b593963332578665734360005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x122017a8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x21b918f0" + "565778672" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest567.json b/GeneralStateTests/stRandom/randomStatetest567.json index 1852af2ab..7752121e7 100644 --- a/GeneralStateTests/stRandom/randomStatetest567.json +++ b/GeneralStateTests/stRandom/randomStatetest567.json @@ -2,92 +2,76 @@ "randomStatetest567" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest567Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "600472398", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017e7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe906697998df1160b", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "29512", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999399498136", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd2a415a9f1f0c6293af9e5e47f963d989f96b88d16e8db6556ec8733d76b0655", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd2a415a9f1f0c6293af9e5e47f963d989f96b88d16e8db6556ec8733d76b0655", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd2a415a9f1f0c6293af9e5e47f963d989f96b88d16e8db6556ec8733d76b0655", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd2a415a9f1f0c6293af9e5e47f963d989f96b88d16e8db6556ec8733d76b0655", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd2a415a9f1f0c6293af9e5e47f963d989f96b88d16e8db6556ec8733d76b0655", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d2a415a9f1f0c6293af9e5e47f963d989f96b88d16e8db6556ec8733d76b0655", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017e7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe906697998df1160b", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x213b31cb" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x23ca7b4e" + "600472398" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest569.json b/GeneralStateTests/stRandom/randomStatetest569.json index f91e2abea..b12289e75 100644 --- a/GeneralStateTests/stRandom/randomStatetest569.json +++ b/GeneralStateTests/stRandom/randomStatetest569.json @@ -2,92 +2,76 @@ "randomStatetest569" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest569Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5097f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8e0781816fff31986c0a773c9b014460005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1172118239", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998827881807", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x61be519aff25f0c4f5eaede65d1ee274fd776b8736dd5628bda0a155bb3adc7c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x61be519aff25f0c4f5eaede65d1ee274fd776b8736dd5628bda0a155bb3adc7c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x61be519aff25f0c4f5eaede65d1ee274fd776b8736dd5628bda0a155bb3adc7c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x61be519aff25f0c4f5eaede65d1ee274fd776b8736dd5628bda0a155bb3adc7c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x61be519aff25f0c4f5eaede65d1ee274fd776b8736dd5628bda0a155bb3adc7c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "61be519aff25f0c4f5eaede65d1ee274fd776b8736dd5628bda0a155bb3adc7c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5097f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8e0781816fff31986c0a773c9b014460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x45dd1ab1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6795ecce" + "1737878734" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest57.json b/GeneralStateTests/stRandom/randomStatetest57.json index 96064f857..02d913af4 100644 --- a/GeneralStateTests/stRandom/randomStatetest57.json +++ b/GeneralStateTests/stRandom/randomStatetest57.json @@ -2,92 +2,76 @@ "randomStatetest57" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest57Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "277972730", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f000000000000000000000000000000000000000000000000000000000000c350819055", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "33992", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999721993324", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xfe3bb11ce4456526f0cfbf5b5c2eb8965906325bb9911dbabb777c31ab954403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xfe3bb11ce4456526f0cfbf5b5c2eb8965906325bb9911dbabb777c31ab954403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfe3bb11ce4456526f0cfbf5b5c2eb8965906325bb9911dbabb777c31ab954403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfe3bb11ce4456526f0cfbf5b5c2eb8965906325bb9911dbabb777c31ab954403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfe3bb11ce4456526f0cfbf5b5c2eb8965906325bb9911dbabb777c31ab954403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "fe3bb11ce4456526f0cfbf5b5c2eb8965906325bb9911dbabb777c31ab954403", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350417ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f000000000000000000000000000000000000000000000000000000000000c350819055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x194cdf90" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x109186fa" + "277972730" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest571.json b/GeneralStateTests/stRandom/randomStatetest571.json index f15ab729f..facc1327a 100644 --- a/GeneralStateTests/stRandom/randomStatetest571.json +++ b/GeneralStateTests/stRandom/randomStatetest571.json @@ -2,92 +2,77 @@ "randomStatetest571" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest571Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1402161028", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000015b7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b53c6508766c8b6b403a60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50005", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998597789013", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xcaceb4f090d351957e1f07b1e8ee3b28d8ff6cf37776187f349abcce13be2af1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcaceb4f090d351957e1f07b1e8ee3b28d8ff6cf37776187f349abcce13be2af1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3fc8d24bb9a5f1b7d3d51bf41295c7a94c5679c302d624ae15a9313b32f4fa8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3fc8d24bb9a5f1b7d3d51bf41295c7a94c5679c302d624ae15a9313b32f4fa8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcaceb4f090d351957e1f07b1e8ee3b28d8ff6cf37776187f349abcce13be2af1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3fc8d24bb9a5f1b7d3d51bf41295c7a94c5679c302d624ae15a9313b32f4fa8a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000015b7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b53c6508766c8b6b403a60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7592dd6b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x53934784" + "1402161028" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest572.json b/GeneralStateTests/stRandom/randomStatetest572.json index 0ff915ece..62c8aa766 100644 --- a/GeneralStateTests/stRandom/randomStatetest572.json +++ b/GeneralStateTests/stRandom/randomStatetest572.json @@ -2,17 +2,53 @@ "randomStatetest572" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest572Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1943383964", + "code" : "0x457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5440ba13b38", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "32010", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998056584072", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -24,78 +60,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb7807ea76423b6d539a5f44ab0a3b01046986dfb8a0d1a910d658335f91bd098", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb7807ea76423b6d539a5f44ab0a3b01046986dfb8a0d1a910d658335f91bd098", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x99238bd7c7286d4f8af2f99dbeeb264eab9c2e5eb3f7e90181d44fbde7f34712", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x99238bd7c7286d4f8af2f99dbeeb264eab9c2e5eb3f7e90181d44fbde7f34712", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb7807ea76423b6d539a5f44ab0a3b01046986dfb8a0d1a910d658335f91bd098", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "99238bd7c7286d4f8af2f99dbeeb264eab9c2e5eb3f7e90181d44fbde7f34712", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5440ba13b38", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -107,12 +91,12 @@ "gasLimit" : [ "0x3291d5d5" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x73d5af9c" + "1943383964" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest573.json b/GeneralStateTests/stRandom/randomStatetest573.json index 8c1750f8f..3222c853b 100644 --- a/GeneralStateTests/stRandom/randomStatetest573.json +++ b/GeneralStateTests/stRandom/randomStatetest573.json @@ -2,92 +2,76 @@ "randomStatetest573" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest573Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000140523c6d91f24568a3393490820630181a", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1904591245", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998095408801", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x9f0735add7612c06e51b8e53a857ff6a4fc74171d6681ae40baa764eba0cb4f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9f0735add7612c06e51b8e53a857ff6a4fc74171d6681ae40baa764eba0cb4f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9f0735add7612c06e51b8e53a857ff6a4fc74171d6681ae40baa764eba0cb4f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9f0735add7612c06e51b8e53a857ff6a4fc74171d6681ae40baa764eba0cb4f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9f0735add7612c06e51b8e53a857ff6a4fc74171d6681ae40baa764eba0cb4f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "9f0735add7612c06e51b8e53a857ff6a4fc74171d6681ae40baa764eba0cb4f0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000140523c6d91f24568a3393490820630181a", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x7185c15f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7978b387" + "2037953415" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest574.json b/GeneralStateTests/stRandom/randomStatetest574.json index 7ef53b7d6..b874acda9 100644 --- a/GeneralStateTests/stRandom/randomStatetest574.json +++ b/GeneralStateTests/stRandom/randomStatetest574.json @@ -2,92 +2,77 @@ "randomStatetest574" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest574Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1595303022", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001047f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff046d369354827d7433a335af5560005155", + "nonce" : "0", + "storage" : { + "0x369354827d7433a335af55600051" : "0x014f8b588e368f08461f9f01b866e43aa79bbadc0980b242070b8cfbfc6540" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49096", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998404647928", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc04e73cee83437964f7841a23889fec2b99b82dc87d66f069599862766d24a56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc04e73cee83437964f7841a23889fec2b99b82dc87d66f069599862766d24a56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc04e73cee83437964f7841a23889fec2b99b82dc87d66f069599862766d24a56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc04e73cee83437964f7841a23889fec2b99b82dc87d66f069599862766d24a56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc04e73cee83437964f7841a23889fec2b99b82dc87d66f069599862766d24a56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c04e73cee83437964f7841a23889fec2b99b82dc87d66f069599862766d24a56", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000001047f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff046d369354827d7433a335af5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x04faf66d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5f16646e" + "1595303022" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest575.json b/GeneralStateTests/stRandom/randomStatetest575.json index c80625278..011a2b4bf 100644 --- a/GeneralStateTests/stRandom/randomStatetest575.json +++ b/GeneralStateTests/stRandom/randomStatetest575.json @@ -2,92 +2,76 @@ "randomStatetest575" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest575Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b595949655558f6771c7798d047d7b5560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "580880909", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999419119137", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5c778496277721dc7ac26f5c33a0cfec443e512a8d8cbc1b6c4e527f1c7e1741", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5c778496277721dc7ac26f5c33a0cfec443e512a8d8cbc1b6c4e527f1c7e1741", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5c778496277721dc7ac26f5c33a0cfec443e512a8d8cbc1b6c4e527f1c7e1741", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5c778496277721dc7ac26f5c33a0cfec443e512a8d8cbc1b6c4e527f1c7e1741", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5c778496277721dc7ac26f5c33a0cfec443e512a8d8cbc1b6c4e527f1c7e1741", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5c778496277721dc7ac26f5c33a0cfec443e512a8d8cbc1b6c4e527f1c7e1741", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b595949655558f6771c7798d047d7b5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x229f89df" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0acfc65c" + "181388892" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest576.json b/GeneralStateTests/stRandom/randomStatetest576.json index 5272f4789..13737859b 100644 --- a/GeneralStateTests/stRandom/randomStatetest576.json +++ b/GeneralStateTests/stRandom/randomStatetest576.json @@ -2,91 +2,75 @@ "randomStatetest576" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest576Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000000086053a0b43890710810651116e1555", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x06420934", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a121f6fa", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb9eb731c28b05ecb2edf808265c21744852ae3061758f9351393b9174682d96e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb9eb731c28b05ecb2edf808265c21744852ae3061758f9351393b9174682d96e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb9eb731c28b05ecb2edf808265c21744852ae3061758f9351393b9174682d96e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb9eb731c28b05ecb2edf808265c21744852ae3061758f9351393b9174682d96e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb9eb731c28b05ecb2edf808265c21744852ae3061758f9351393b9174682d96e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b9eb731c28b05ecb2edf808265c21744852ae3061758f9351393b9174682d96e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f0000000000000000000000000000000000000000000000000000000000000000447f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000000086053a0b43890710810651116e1555", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x2dcb28af" ] diff --git a/GeneralStateTests/stRandom/randomStatetest577.json b/GeneralStateTests/stRandom/randomStatetest577.json index c933671b1..981502cba 100644 --- a/GeneralStateTests/stRandom/randomStatetest577.json +++ b/GeneralStateTests/stRandom/randomStatetest577.json @@ -2,92 +2,77 @@ "randomStatetest577" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest577Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x45414344434244413155", + "nonce" : "0", + "storage" : { + "0x2e" : "0x0000000000000000000000000000000000000000000000000000000000020000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41150", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858896", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7a21ae0069d20397bb649a8bcb10e0061d06884ffb33e03ceea9a1c55864a054", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7a21ae0069d20397bb649a8bcb10e0061d06884ffb33e03ceea9a1c55864a054", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x163335902014459959a25a8fcb030af9691b4a5139a28845031856c22a166150", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x163335902014459959a25a8fcb030af9691b4a5139a28845031856c22a166150", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7a21ae0069d20397bb649a8bcb10e0061d06884ffb33e03ceea9a1c55864a054", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b5aeeeeb6122543c3148c6a1642160daf324dc501ba38cb0c1c15472571d804b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x45414344434244413155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest578.json b/GeneralStateTests/stRandom/randomStatetest578.json index 44081e56a..bc587a268 100644 --- a/GeneralStateTests/stRandom/randomStatetest578.json +++ b/GeneralStateTests/stRandom/randomStatetest578.json @@ -2,92 +2,78 @@ "randomStatetest578" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest578Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "399078357", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350457f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff4255", + "nonce" : "0", + "storage" : { + "0x01" : "0", + "0x3e8" : "0x000000000000000000000000ffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46028", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999600875661", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf0d52079d7b8754341bed4b5db05d2f3af137f83438f638a188b406d33cc8c58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf0d52079d7b8754341bed4b5db05d2f3af137f83438f638a188b406d33cc8c58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf0d52079d7b8754341bed4b5db05d2f3af137f83438f638a188b406d33cc8c58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf0d52079d7b8754341bed4b5db05d2f3af137f83438f638a188b406d33cc8c58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf0d52079d7b8754341bed4b5db05d2f3af137f83438f638a188b406d33cc8c58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "67230074006cf0475a284a552238e611525750b787814f9ebdfa25f176f5ac6e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350457f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff4255", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x73673a3c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x17c973d5" + "399078357" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest579.json b/GeneralStateTests/stRandom/randomStatetest579.json index bfab8bf00..49dcb6111 100644 --- a/GeneralStateTests/stRandom/randomStatetest579.json +++ b/GeneralStateTests/stRandom/randomStatetest579.json @@ -2,92 +2,76 @@ "randomStatetest579" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest579Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1929468879", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350f2075b67c755", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "57163", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998070474004", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x16ffd202e368dc61157e0f816f1bc72aad3322589650a7c2af920c53db7ace74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x16ffd202e368dc61157e0f816f1bc72aad3322589650a7c2af920c53db7ace74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x25f892418fe7e1ae2d2e5ad784206760c69df950cd5e6ad1cad656d6114c2045", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x25f892418fe7e1ae2d2e5ad784206760c69df950cd5e6ad1cad656d6114c2045", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x16ffd202e368dc61157e0f816f1bc72aad3322589650a7c2af920c53db7ace74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "25f892418fe7e1ae2d2e5ad784206760c69df950cd5e6ad1cad656d6114c2045", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350f2075b67c755", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x390c2e5b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x73015bcf" + "1929468879" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest58.json b/GeneralStateTests/stRandom/randomStatetest58.json index 3f488e070..ea16a9950 100644 --- a/GeneralStateTests/stRandom/randomStatetest58.json +++ b/GeneralStateTests/stRandom/randomStatetest58.json @@ -2,92 +2,77 @@ "randomStatetest58" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest58Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "520154270", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe096902947d567838719e97f30160005155", + "nonce" : "0", + "storage" : { + "0x" : "0x02947d567838719e97f3" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52887", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999479792889", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x38658a4c7f87af6d01d2cbb5535e789423324c3012493330e0ca0dcc88cfd039", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x38658a4c7f87af6d01d2cbb5535e789423324c3012493330e0ca0dcc88cfd039", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x38658a4c7f87af6d01d2cbb5535e789423324c3012493330e0ca0dcc88cfd039", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x38658a4c7f87af6d01d2cbb5535e789423324c3012493330e0ca0dcc88cfd039", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x38658a4c7f87af6d01d2cbb5535e789423324c3012493330e0ca0dcc88cfd039", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "38658a4c7f87af6d01d2cbb5535e789423324c3012493330e0ca0dcc88cfd039", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c350367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe096902947d567838719e97f30160005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x46a13dad" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1f00ec9e" + "520154270" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest580.json b/GeneralStateTests/stRandom/randomStatetest580.json index a81dbc459..69ea77b9d 100644 --- a/GeneralStateTests/stRandom/randomStatetest580.json +++ b/GeneralStateTests/stRandom/randomStatetest580.json @@ -2,92 +2,77 @@ "randomStatetest580" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest580Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "741737505", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000457f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f4640879d18777b953a209836379a305560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x4640879d18777b953a209836379a3055" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45849", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999258216692", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xfb32a0660bf4ce6df3bf89548a2033d4b69e7d5403314653c05cb087a033981a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xfb32a0660bf4ce6df3bf89548a2033d4b69e7d5403314653c05cb087a033981a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfb32a0660bf4ce6df3bf89548a2033d4b69e7d5403314653c05cb087a033981a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfb32a0660bf4ce6df3bf89548a2033d4b69e7d5403314653c05cb087a033981a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfb32a0660bf4ce6df3bf89548a2033d4b69e7d5403314653c05cb087a033981a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "fb32a0660bf4ce6df3bf89548a2033d4b69e7d5403314653c05cb087a033981a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000000457f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f4640879d18777b953a209836379a305560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0a3b391c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2c360421" + "741737505" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest581.json b/GeneralStateTests/stRandom/randomStatetest581.json index f0a02b604..3b48aaac4 100644 --- a/GeneralStateTests/stRandom/randomStatetest581.json +++ b/GeneralStateTests/stRandom/randomStatetest581.json @@ -2,92 +2,76 @@ "randomStatetest581" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest581Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "13862", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998436470773", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "1563515411", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd9ae844ed4fde2c8a6bc0bd0b85f51a204bf702a6402e9685e064d7eac450345", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd9ae844ed4fde2c8a6bc0bd0b85f51a204bf702a6402e9685e064d7eac450345", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd3fbc8e77ebe7322fa9959282a5d47153a941a2e6af71e591492b84eb24d52af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd3fbc8e77ebe7322fa9959282a5d47153a941a2e6af71e591492b84eb24d52af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd9ae844ed4fde2c8a6bc0bd0b85f51a204bf702a6402e9685e064d7eac450345", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "339fdbd5dbc1ce5d5ec495fc334259a50c8b9ec9490d7019a10cfb45301d6011", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000001037f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff44920907ff7e7d701260005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x12fe8a68" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x5d315a13" + "1563515411" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest582.json b/GeneralStateTests/stRandom/randomStatetest582.json index 587f09839..c53b7c007 100644 --- a/GeneralStateTests/stRandom/randomStatetest582.json +++ b/GeneralStateTests/stRandom/randomStatetest582.json @@ -2,92 +2,76 @@ "randomStatetest582" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest582Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1969973721", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000045086201771880f35560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "116938", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998029909387", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0xcb0b378007773f83910fc6d961638b346e88bd701d4bb53909f668245000c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcb0b378007773f83910fc6d961638b346e88bd701d4bb53909f668245000c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcb0b378007773f83910fc6d961638b346e88bd701d4bb53909f668245000c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcb0b378007773f83910fc6d961638b346e88bd701d4bb53909f668245000c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcb0b378007773f83910fc6d961638b346e88bd701d4bb53909f668245000c803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "cb0b378007773f83910fc6d961638b346e88bd701d4bb53909f668245000c803", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000045086201771880f35560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x090f60db" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x756b69d9" + "1969973721" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest583.json b/GeneralStateTests/stRandom/randomStatetest583.json index a10eff06e..444af59a0 100644 --- a/GeneralStateTests/stRandom/randomStatetest583.json +++ b/GeneralStateTests/stRandom/randomStatetest583.json @@ -2,17 +2,53 @@ "randomStatetest583" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest583Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1472402212", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5425162327c5536a36af3809c3a8f396660005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47696725", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998479901109", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -26,78 +62,26 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xfcf3cdf39852d7d72a5df5518835ee722da3bc6b8c6789e02e79c470c44df3c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xfcf3cdf39852d7d72a5df5518835ee722da3bc6b8c6789e02e79c470c44df3c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfcf3cdf39852d7d72a5df5518835ee722da3bc6b8c6789e02e79c470c44df3c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfcf3cdf39852d7d72a5df5518835ee722da3bc6b8c6789e02e79c470c44df3c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfcf3cdf39852d7d72a5df5518835ee722da3bc6b8c6789e02e79c470c44df3c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "fcf3cdf39852d7d72a5df5518835ee722da3bc6b8c6789e02e79c470c44df3c5", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5425162327c5536a36af3809c3a8f396660005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -109,12 +93,12 @@ "gasLimit" : [ "0x62ab0e44" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x57c31324" + "1472402212" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest584.json b/GeneralStateTests/stRandom/randomStatetest584.json index c3ab1fbf2..42dcf25a3 100644 --- a/GeneralStateTests/stRandom/randomStatetest584.json +++ b/GeneralStateTests/stRandom/randomStatetest584.json @@ -2,92 +2,78 @@ "randomStatetest584" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest584Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "352685837", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe96921909335560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffff", + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : "0xffffffffffffffffffffffff0000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "72414", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999647241795", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5a39131896212a9849d03dc260d50d42d876c8cc5bf483b0b5176992979a3e66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5a39131896212a9849d03dc260d50d42d876c8cc5bf483b0b5176992979a3e66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5a39131896212a9849d03dc260d50d42d876c8cc5bf483b0b5176992979a3e66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5a39131896212a9849d03dc260d50d42d876c8cc5bf483b0b5176992979a3e66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5a39131896212a9849d03dc260d50d42d876c8cc5bf483b0b5176992979a3e66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5a39131896212a9849d03dc260d50d42d876c8cc5bf483b0b5176992979a3e66", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe96921909335560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x05a07ffb" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x15058f0d" + "352685837" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest585.json b/GeneralStateTests/stRandom/randomStatetest585.json index a97d1f3a6..cd7e6a21e 100644 --- a/GeneralStateTests/stRandom/randomStatetest585.json +++ b/GeneralStateTests/stRandom/randomStatetest585.json @@ -2,92 +2,77 @@ "randomStatetest585" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest585Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "380785530", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe55", + "nonce" : "0", + "storage" : { + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52366", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999619162150", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf1c347fdb630a79c4abbea6110b2ec2be15f193f4fb48c4032a3216705a50462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf1c347fdb630a79c4abbea6110b2ec2be15f193f4fb48c4032a3216705a50462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf1c347fdb630a79c4abbea6110b2ec2be15f193f4fb48c4032a3216705a50462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf1c347fdb630a79c4abbea6110b2ec2be15f193f4fb48c4032a3216705a50462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf1c347fdb630a79c4abbea6110b2ec2be15f193f4fb48c4032a3216705a50462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f1c347fdb630a79c4abbea6110b2ec2be15f193f4fb48c4032a3216705a50462", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0af82ef7" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x16b2537a" + "380785530" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest586.json b/GeneralStateTests/stRandom/randomStatetest586.json index 77f71d24e..aad9e2443 100644 --- a/GeneralStateTests/stRandom/randomStatetest586.json +++ b/GeneralStateTests/stRandom/randomStatetest586.json @@ -2,92 +2,77 @@ "randomStatetest586" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest586Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1708929612", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000013760005155", + "nonce" : "0", + "storage" : { + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0xc350" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "59488", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998291010946", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x0bbba50dc67a22c800afca3681235e773e0a483d958e94d96a048237c13c069e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0bbba50dc67a22c800afca3681235e773e0a483d958e94d96a048237c13c069e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0bbba50dc67a22c800afca3681235e773e0a483d958e94d96a048237c13c069e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0bbba50dc67a22c800afca3681235e773e0a483d958e94d96a048237c13c069e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0bbba50dc67a22c800afca3681235e773e0a483d958e94d96a048237c13c069e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0bbba50dc67a22c800afca3681235e773e0a483d958e94d96a048237c13c069e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000013760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x405404a3" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x65dc324c" + "1708929612" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest587.json b/GeneralStateTests/stRandom/randomStatetest587.json index 3381ff046..0bdf68b96 100644 --- a/GeneralStateTests/stRandom/randomStatetest587.json +++ b/GeneralStateTests/stRandom/randomStatetest587.json @@ -2,92 +2,77 @@ "randomStatetest587" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest587Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "291521552", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350117f0000000000000000000000000000000000000000000000000000000000000001457f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f8b7152a3958a923c1665b27557089a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x8b7152a3958a923c1665b27557089a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48281", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999708430213", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xab2be72f36118857a8fc55a6d65fb9a4d9326154ede03074eacdb938bebfd38c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xab2be72f36118857a8fc55a6d65fb9a4d9326154ede03074eacdb938bebfd38c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xab2be72f36118857a8fc55a6d65fb9a4d9326154ede03074eacdb938bebfd38c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xab2be72f36118857a8fc55a6d65fb9a4d9326154ede03074eacdb938bebfd38c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xab2be72f36118857a8fc55a6d65fb9a4d9326154ede03074eacdb938bebfd38c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ab2be72f36118857a8fc55a6d65fb9a4d9326154ede03074eacdb938bebfd38c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350117f0000000000000000000000000000000000000000000000000000000000000001457f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f8b7152a3958a923c1665b27557089a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x79afcd8f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x11604410" + "291521552" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest588.json b/GeneralStateTests/stRandom/randomStatetest588.json index 995a9742d..f39f311fc 100644 --- a/GeneralStateTests/stRandom/randomStatetest588.json +++ b/GeneralStateTests/stRandom/randomStatetest588.json @@ -2,92 +2,78 @@ "randomStatetest588" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest588Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1725348983", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43063760005155", + "nonce" : "0", + "storage" : { + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0x01", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "60902", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998274590161", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x316fb0f5d9884ff898ad6dc22f5c98a58ac96b64d3f861db2f837337e1b0e36c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x316fb0f5d9884ff898ad6dc22f5c98a58ac96b64d3f861db2f837337e1b0e36c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x316fb0f5d9884ff898ad6dc22f5c98a58ac96b64d3f861db2f837337e1b0e36c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x316fb0f5d9884ff898ad6dc22f5c98a58ac96b64d3f861db2f837337e1b0e36c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x316fb0f5d9884ff898ad6dc22f5c98a58ac96b64d3f861db2f837337e1b0e36c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c5234e931572e9a3fe85ccb630ba6773ba26df20b6fe467616fec63b7146da75", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43063760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x1008ed34" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x66d6bc77" + "1725348983" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest589.json b/GeneralStateTests/stRandom/randomStatetest589.json index dc23c72ab..d9c764523 100644 --- a/GeneralStateTests/stRandom/randomStatetest589.json +++ b/GeneralStateTests/stRandom/randomStatetest589.json @@ -2,92 +2,76 @@ "randomStatetest589" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest589Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1485632", + "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b940860005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "4379639", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999994134775", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "post" : { - "EIP150" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "23bb4bd52c3e5cc3fee02d368f964f87b150387d4ef54939fa02bb001dd359d1", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff583481f36a85646d53671639175b940860005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x01a76401" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x16ab40" + "1485632" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest59.json b/GeneralStateTests/stRandom/randomStatetest59.json index 84082783d..a11d2a702 100644 --- a/GeneralStateTests/stRandom/randomStatetest59.json +++ b/GeneralStateTests/stRandom/randomStatetest59.json @@ -2,92 +2,77 @@ "randomStatetest59" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest59Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "630320886", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0208673a06756406548b9955", + "nonce" : "0", + "storage" : { + "0x3a06756406548b99" : "0xffffffffffffffffffffffff0000000000000000000000000000000000000002" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "55050", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999369624110", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc043c5bcd60744adcbb4d54193d1eabbe2e61932d1580eb21c478b99b4359ed8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc043c5bcd60744adcbb4d54193d1eabbe2e61932d1580eb21c478b99b4359ed8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc043c5bcd60744adcbb4d54193d1eabbe2e61932d1580eb21c478b99b4359ed8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc043c5bcd60744adcbb4d54193d1eabbe2e61932d1580eb21c478b99b4359ed8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc043c5bcd60744adcbb4d54193d1eabbe2e61932d1580eb21c478b99b4359ed8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c043c5bcd60744adcbb4d54193d1eabbe2e61932d1580eb21c478b99b4359ed8", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0208673a06756406548b9955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x715e55ee" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2591eef6" + "630320886" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest592.json b/GeneralStateTests/stRandom/randomStatetest592.json index d588f6cc2..3328cf5cc 100644 --- a/GeneralStateTests/stRandom/randomStatetest592.json +++ b/GeneralStateTests/stRandom/randomStatetest592.json @@ -2,92 +2,77 @@ "randomStatetest592" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest592Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1664737509", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0960005155", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffff000000000000000000000000ffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47195", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998335215342", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb2ad099dcc79bdf1075ab0a17556364350bf8b6691ca4f5065dba6bfabde9fde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb2ad099dcc79bdf1075ab0a17556364350bf8b6691ca4f5065dba6bfabde9fde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb2ad099dcc79bdf1075ab0a17556364350bf8b6691ca4f5065dba6bfabde9fde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb2ad099dcc79bdf1075ab0a17556364350bf8b6691ca4f5065dba6bfabde9fde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb2ad099dcc79bdf1075ab0a17556364350bf8b6691ca4f5065dba6bfabde9fde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b2ad099dcc79bdf1075ab0a17556364350bf8b6691ca4f5065dba6bfabde9fde", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x62f269f3" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6339e0e5" + "1664737509" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest594.json b/GeneralStateTests/stRandom/randomStatetest594.json index 6f7a1b53d..1e7713773 100644 --- a/GeneralStateTests/stRandom/randomStatetest594.json +++ b/GeneralStateTests/stRandom/randomStatetest594.json @@ -2,92 +2,77 @@ "randomStatetest594" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest594Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1174931516", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000010000000000000000000000000000000000000000457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe950955", + "nonce" : "0", + "storage" : { + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3caf" : "0x7fffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49120", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998825019410", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x0a9d9e310775fabc4ea825f9ffe3ba22120adb9bc6d65990e4cbad50616513de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0a9d9e310775fabc4ea825f9ffe3ba22120adb9bc6d65990e4cbad50616513de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0a9d9e310775fabc4ea825f9ffe3ba22120adb9bc6d65990e4cbad50616513de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0a9d9e310775fabc4ea825f9ffe3ba22120adb9bc6d65990e4cbad50616513de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0a9d9e310775fabc4ea825f9ffe3ba22120adb9bc6d65990e4cbad50616513de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "01f4c03556b539c434410ca0d28c85b6b71b0b8511ded2d1502911918d2bad06", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f0000000000000000000000010000000000000000000000000000000000000000457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe950955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5beb3cc4" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4608083c" + "1174931516" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest596.json b/GeneralStateTests/stRandom/randomStatetest596.json index dd9900dbd..87fd4a122 100644 --- a/GeneralStateTests/stRandom/randomStatetest596.json +++ b/GeneralStateTests/stRandom/randomStatetest596.json @@ -2,92 +2,77 @@ "randomStatetest596" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest596Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "765064321", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001317f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f7066a3507f6e0906539456383065205560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x7066a3507f6e09065394563830652055" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46443", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999234889282", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x17b1ec78d084127e1f8b5713056b43d3c0b0460d8188165bb6279c13ba996ac1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x17b1ec78d084127e1f8b5713056b43d3c0b0460d8188165bb6279c13ba996ac1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x98cf158e9172debe166cb63e40968745833a537289a040728c0302725312bf17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x98cf158e9172debe166cb63e40968745833a537289a040728c0302725312bf17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x17b1ec78d084127e1f8b5713056b43d3c0b0460d8188165bb6279c13ba996ac1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "98cf158e9172debe166cb63e40968745833a537289a040728c0302725312bf17", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001317f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f7066a3507f6e0906539456383065205560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x13aca2d2" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2d99f481" + "765064321" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest597.json b/GeneralStateTests/stRandom/randomStatetest597.json index 25725a88d..b216f4cf8 100644 --- a/GeneralStateTests/stRandom/randomStatetest597.json +++ b/GeneralStateTests/stRandom/randomStatetest597.json @@ -2,91 +2,75 @@ "randomStatetest597" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest597Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x00", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5967f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3a7e737d40070a156482930a0875", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x113ba572", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b396285abc", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5fa1c5ec4d844c9b52a412710cd5a21585ec367319aa37c7cfbf8d1207f46afb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5fa1c5ec4d844c9b52a412710cd5a21585ec367319aa37c7cfbf8d1207f46afb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5fa1c5ec4d844c9b52a412710cd5a21585ec367319aa37c7cfbf8d1207f46afb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5fa1c5ec4d844c9b52a412710cd5a21585ec367319aa37c7cfbf8d1207f46afb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5fa1c5ec4d844c9b52a412710cd5a21585ec367319aa37c7cfbf8d1207f46afb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5fa1c5ec4d844c9b52a412710cd5a21585ec367319aa37c7cfbf8d1207f46afb", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5967f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3a7e737d40070a156482930a0875", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x70062d18" ] diff --git a/GeneralStateTests/stRandom/randomStatetest599.json b/GeneralStateTests/stRandom/randomStatetest599.json index 853da2850..b2f7cb269 100644 --- a/GeneralStateTests/stRandom/randomStatetest599.json +++ b/GeneralStateTests/stRandom/randomStatetest599.json @@ -2,92 +2,77 @@ "randomStatetest599" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest599Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1108427958", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f8d6c60440a44449372068a976a83825560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x8d6c60440a44449372068a976a838255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "53466", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998891518622", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa6d0e453f53257bdf638168cf08866f7bae1331d93c36349167af3943107a4bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa6d0e453f53257bdf638168cf08866f7bae1331d93c36349167af3943107a4bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa6d0e453f53257bdf638168cf08866f7bae1331d93c36349167af3943107a4bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa6d0e453f53257bdf638168cf08866f7bae1331d93c36349167af3943107a4bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa6d0e453f53257bdf638168cf08866f7bae1331d93c36349167af3943107a4bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a6d0e453f53257bdf638168cf08866f7bae1331d93c36349167af3943107a4bb", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f8d6c60440a44449372068a976a83825560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6b3cc33a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x421144b6" + "1108427958" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest6.json b/GeneralStateTests/stRandom/randomStatetest6.json index b1ecc02b0..8ee872fa2 100644 --- a/GeneralStateTests/stRandom/randomStatetest6.json +++ b/GeneralStateTests/stRandom/randomStatetest6.json @@ -2,92 +2,77 @@ "randomStatetest6" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest6Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "841471566", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b54143416f1732797105f237768fe506871ac8535560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x1732797105f237768fe506871ac85355" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50839", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999158477641", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x558fab7086ee6b74783c2b9fe5ce43f60abef999aedf63ba3d78d0f44b4c8bc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x558fab7086ee6b74783c2b9fe5ce43f60abef999aedf63ba3d78d0f44b4c8bc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x558fab7086ee6b74783c2b9fe5ce43f60abef999aedf63ba3d78d0f44b4c8bc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x558fab7086ee6b74783c2b9fe5ce43f60abef999aedf63ba3d78d0f44b4c8bc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x558fab7086ee6b74783c2b9fe5ce43f60abef999aedf63ba3d78d0f44b4c8bc7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "558fab7086ee6b74783c2b9fe5ce43f60abef999aedf63ba3d78d0f44b4c8bc7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b54143416f1732797105f237768fe506871ac8535560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x35893135" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3227d64e" + "841471566" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest60.json b/GeneralStateTests/stRandom/randomStatetest60.json index 56bbc4da4..a1de75304 100644 --- a/GeneralStateTests/stRandom/randomStatetest60.json +++ b/GeneralStateTests/stRandom/randomStatetest60.json @@ -2,92 +2,77 @@ "randomStatetest60" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest60Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1423842991", + "code" : "0x427f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f969001091aa15b8b9b75459d015a045560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x969001091aa15b8b9b75459d015a0455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46608", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998576110447", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb3ce88e60340330e29bf79d12cdc3f6738ac4889480699b8ade9a2d98b144906", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb3ce88e60340330e29bf79d12cdc3f6738ac4889480699b8ade9a2d98b144906", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb3ce88e60340330e29bf79d12cdc3f6738ac4889480699b8ade9a2d98b144906", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb3ce88e60340330e29bf79d12cdc3f6738ac4889480699b8ade9a2d98b144906", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb3ce88e60340330e29bf79d12cdc3f6738ac4889480699b8ade9a2d98b144906", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b3ce88e60340330e29bf79d12cdc3f6738ac4889480699b8ade9a2d98b144906", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x427f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f969001091aa15b8b9b75459d015a045560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x46dc0e07" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x54de1eaf" + "1423842991" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest600.json b/GeneralStateTests/stRandom/randomStatetest600.json index 20199f512..e6c436d2a 100644 --- a/GeneralStateTests/stRandom/randomStatetest600.json +++ b/GeneralStateTests/stRandom/randomStatetest600.json @@ -2,92 +2,77 @@ "randomStatetest600" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest600Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "181662108", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c35043457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f0b6f37208e76a402927039198c96990760005155", + "nonce" : "0", + "storage" : { + "0x" : "0x0b6f37208e76a402927039198c969907" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47765", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999818290173", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8c749e6d5bb17782bc4dbb14cabf01da45384a74a48c39e221ad570a7624beae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8c749e6d5bb17782bc4dbb14cabf01da45384a74a48c39e221ad570a7624beae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8c749e6d5bb17782bc4dbb14cabf01da45384a74a48c39e221ad570a7624beae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8c749e6d5bb17782bc4dbb14cabf01da45384a74a48c39e221ad570a7624beae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8c749e6d5bb17782bc4dbb14cabf01da45384a74a48c39e221ad570a7624beae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8c749e6d5bb17782bc4dbb14cabf01da45384a74a48c39e221ad570a7624beae", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c35043457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f0b6f37208e76a402927039198c96990760005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x156fb444" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0ad3f19c" + "181662108" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest601.json b/GeneralStateTests/stRandom/randomStatetest601.json index e9646f51a..08f306234 100644 --- a/GeneralStateTests/stRandom/randomStatetest601.json +++ b/GeneralStateTests/stRandom/randomStatetest601.json @@ -2,92 +2,76 @@ "randomStatetest601" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest601Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350377f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000000b3a09785b1084418866100af0868a3455", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1556088597", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998443911449", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x886793cb795aad67bef8747046a71428c332fac253236d4002e142f08f31602b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x886793cb795aad67bef8747046a71428c332fac253236d4002e142f08f31602b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x886793cb795aad67bef8747046a71428c332fac253236d4002e142f08f31602b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x886793cb795aad67bef8747046a71428c332fac253236d4002e142f08f31602b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x886793cb795aad67bef8747046a71428c332fac253236d4002e142f08f31602b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "886793cb795aad67bef8747046a71428c332fac253236d4002e142f08f31602b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350377f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000000b3a09785b1084418866100af0868a3455", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x5cc006e7" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7a96e619" + "2056709657" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest602.json b/GeneralStateTests/stRandom/randomStatetest602.json index 889b82b1f..5fffb3ee9 100644 --- a/GeneralStateTests/stRandom/randomStatetest602.json +++ b/GeneralStateTests/stRandom/randomStatetest602.json @@ -2,91 +2,76 @@ "randomStatetest602" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest602Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x25d01724", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff60005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xbb57", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b381932db3", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb71834e308232e0df4f8c88ed977640e19418e5e746f40add2de2dfd73ff1fe6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb71834e308232e0df4f8c88ed977640e19418e5e746f40add2de2dfd73ff1fe6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb71834e308232e0df4f8c88ed977640e19418e5e746f40add2de2dfd73ff1fe6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb71834e308232e0df4f8c88ed977640e19418e5e746f40add2de2dfd73ff1fe6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb71834e308232e0df4f8c88ed977640e19418e5e746f40add2de2dfd73ff1fe6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b71834e308232e0df4f8c88ed977640e19418e5e746f40add2de2dfd73ff1fe6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff60005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x25d01724" ] diff --git a/GeneralStateTests/stRandom/randomStatetest603.json b/GeneralStateTests/stRandom/randomStatetest603.json index 66dadbbab..b83daf857 100644 --- a/GeneralStateTests/stRandom/randomStatetest603.json +++ b/GeneralStateTests/stRandom/randomStatetest603.json @@ -2,92 +2,77 @@ "randomStatetest603" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest603Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "603781106", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5086f655860560745326476a03cdc3606345560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x655860560745326476a03cdc36063455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50718", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999396168222", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x0cb3664a7e870e09ef92986586d0b74814092512196d7e5d03456730321d9c87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0cb3664a7e870e09ef92986586d0b74814092512196d7e5d03456730321d9c87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0cb3664a7e870e09ef92986586d0b74814092512196d7e5d03456730321d9c87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0cb3664a7e870e09ef92986586d0b74814092512196d7e5d03456730321d9c87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0cb3664a7e870e09ef92986586d0b74814092512196d7e5d03456730321d9c87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0cb3664a7e870e09ef92986586d0b74814092512196d7e5d03456730321d9c87", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5427f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5086f655860560745326476a03cdc3606345560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x02799a8a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x23fcf7f2" + "603781106" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest604.json b/GeneralStateTests/stRandom/randomStatetest604.json index c8d822eb2..90c123107 100644 --- a/GeneralStateTests/stRandom/randomStatetest604.json +++ b/GeneralStateTests/stRandom/randomStatetest604.json @@ -2,92 +2,76 @@ "randomStatetest604" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest604Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000437f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe44a4418a83039c0587363b0518204006065a06", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "468848696", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999531151350", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x67efa528c356e2c886ec0e40f4f3b03c865ab3f858834d9eb8e6c471e0634121", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x67efa528c356e2c886ec0e40f4f3b03c865ab3f858834d9eb8e6c471e0634121", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x67efa528c356e2c886ec0e40f4f3b03c865ab3f858834d9eb8e6c471e0634121", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x67efa528c356e2c886ec0e40f4f3b03c865ab3f858834d9eb8e6c471e0634121", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x67efa528c356e2c886ec0e40f4f3b03c865ab3f858834d9eb8e6c471e0634121", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "67efa528c356e2c886ec0e40f4f3b03c865ab3f858834d9eb8e6c471e0634121", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000437f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe44a4418a83039c0587363b0518204006065a06", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x1bf2100a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4cc50bac" + "1287981996" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest605.json b/GeneralStateTests/stRandom/randomStatetest605.json index 09b7fddcc..4f3605b3b 100644 --- a/GeneralStateTests/stRandom/randomStatetest605.json +++ b/GeneralStateTests/stRandom/randomStatetest605.json @@ -2,92 +2,77 @@ "randomStatetest605" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest605Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1694516474", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905803850855", + "nonce" : "0", + "storage" : { + "0xffffffffffffffffffffffff00000000000000000000000000000000000000e9" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49780", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998305433792", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6cbbf62049884eacf9ab1b1fe5f16fbc6c9f9cf75b76f4d36cf6a622eac0d31a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6cbbf62049884eacf9ab1b1fe5f16fbc6c9f9cf75b76f4d36cf6a622eac0d31a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6cbbf62049884eacf9ab1b1fe5f16fbc6c9f9cf75b76f4d36cf6a622eac0d31a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6cbbf62049884eacf9ab1b1fe5f16fbc6c9f9cf75b76f4d36cf6a622eac0d31a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6cbbf62049884eacf9ab1b1fe5f16fbc6c9f9cf75b76f4d36cf6a622eac0d31a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6cbbf62049884eacf9ab1b1fe5f16fbc6c9f9cf75b76f4d36cf6a622eac0d31a", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c350437f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905803850855", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x793a40ba" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x650044fa" + "1694516474" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest607.json b/GeneralStateTests/stRandom/randomStatetest607.json index 1718dbbd9..02c2fc535 100644 --- a/GeneralStateTests/stRandom/randomStatetest607.json +++ b/GeneralStateTests/stRandom/randomStatetest607.json @@ -2,92 +2,77 @@ "randomStatetest607" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest607Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "275642360", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0955", + "nonce" : "0", + "storage" : { + "0x" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51795", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999724305891", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xae37c48ba8611a7f4c36376412496e9dee42d40829ace0be727e9f42dca1d727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xae37c48ba8611a7f4c36376412496e9dee42d40829ace0be727e9f42dca1d727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xae37c48ba8611a7f4c36376412496e9dee42d40829ace0be727e9f42dca1d727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xae37c48ba8611a7f4c36376412496e9dee42d40829ace0be727e9f42dca1d727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xae37c48ba8611a7f4c36376412496e9dee42d40829ace0be727e9f42dca1d727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "ae37c48ba8611a7f4c36376412496e9dee42d40829ace0be727e9f42dca1d727", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x50bd7adb" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x106df7f8" + "275642360" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest608.json b/GeneralStateTests/stRandom/randomStatetest608.json index 47adeb6d6..905b2afe1 100644 --- a/GeneralStateTests/stRandom/randomStatetest608.json +++ b/GeneralStateTests/stRandom/randomStatetest608.json @@ -2,92 +2,77 @@ "randomStatetest608" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest608Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "514995498", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0855", + "nonce" : "0", + "storage" : { + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "60231", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999484944317", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa42aee2c18188fd45ceb23c8933373451d1b41f979fab734e3de2387f62a6468", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa42aee2c18188fd45ceb23c8933373451d1b41f979fab734e3de2387f62a6468", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa42aee2c18188fd45ceb23c8933373451d1b41f979fab734e3de2387f62a6468", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa42aee2c18188fd45ceb23c8933373451d1b41f979fab734e3de2387f62a6468", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa42aee2c18188fd45ceb23c8933373451d1b41f979fab734e3de2387f62a6468", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a42aee2c18188fd45ceb23c8933373451d1b41f979fab734e3de2387f62a6468", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0855", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x430fbee1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1eb2352a" + "514995498" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest609.json b/GeneralStateTests/stRandom/randomStatetest609.json index 8340dab8f..4a8cbeb43 100644 --- a/GeneralStateTests/stRandom/randomStatetest609.json +++ b/GeneralStateTests/stRandom/randomStatetest609.json @@ -2,92 +2,76 @@ "randomStatetest609" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest609Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1675392723", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000001a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000001a736e628f796436739660005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "27285", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998324580038", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x65f9c92fa1a162b6bca6a3342ec84c62bb2a60d0eb1960412d58b4fcbf7aa5d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x65f9c92fa1a162b6bca6a3342ec84c62bb2a60d0eb1960412d58b4fcbf7aa5d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x65f9c92fa1a162b6bca6a3342ec84c62bb2a60d0eb1960412d58b4fcbf7aa5d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x65f9c92fa1a162b6bca6a3342ec84c62bb2a60d0eb1960412d58b4fcbf7aa5d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x65f9c92fa1a162b6bca6a3342ec84c62bb2a60d0eb1960412d58b4fcbf7aa5d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "65f9c92fa1a162b6bca6a3342ec84c62bb2a60d0eb1960412d58b4fcbf7aa5d6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000001a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000001a736e628f796436739660005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x75367410" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x63dc76d3" + "1675392723" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest610.json b/GeneralStateTests/stRandom/randomStatetest610.json index 4613a70b7..94c7493d2 100644 --- a/GeneralStateTests/stRandom/randomStatetest610.json +++ b/GeneralStateTests/stRandom/randomStatetest610.json @@ -2,92 +2,77 @@ "randomStatetest610" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest610Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2145229980", + "code" : "0x417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f01f353a2437e4384726497587b85565560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x01f353a2437e4384726497587b855655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49689", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997854720377", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe86df82c3d1346921eeef74d49a01635d4132a5f99e9bee19f52245a496fe778", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe86df82c3d1346921eeef74d49a01635d4132a5f99e9bee19f52245a496fe778", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe86df82c3d1346921eeef74d49a01635d4132a5f99e9bee19f52245a496fe778", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe86df82c3d1346921eeef74d49a01635d4132a5f99e9bee19f52245a496fe778", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe86df82c3d1346921eeef74d49a01635d4132a5f99e9bee19f52245a496fe778", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e86df82c3d1346921eeef74d49a01635d4132a5f99e9bee19f52245a496fe778", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x417f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f01f353a2437e4384726497587b85565560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x180823ff" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7fdd9c9c" + "2145229980" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest611.json b/GeneralStateTests/stRandom/randomStatetest611.json index 73686b9c6..5625048f2 100644 --- a/GeneralStateTests/stRandom/randomStatetest611.json +++ b/GeneralStateTests/stRandom/randomStatetest611.json @@ -2,92 +2,76 @@ "randomStatetest611" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest611Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350417f0000000000000000000000000000000000000000000000000000000000000001437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000000b9b84a360005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1368228805", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998631771241", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4f684fdda7058333c43f71c4ab683a7cea14fddbe339d318d0252edd3710d2eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4f684fdda7058333c43f71c4ab683a7cea14fddbe339d318d0252edd3710d2eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4f684fdda7058333c43f71c4ab683a7cea14fddbe339d318d0252edd3710d2eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4f684fdda7058333c43f71c4ab683a7cea14fddbe339d318d0252edd3710d2eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4f684fdda7058333c43f71c4ab683a7cea14fddbe339d318d0252edd3710d2eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "4f684fdda7058333c43f71c4ab683a7cea14fddbe339d318d0252edd3710d2eb", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c350417f0000000000000000000000000000000000000000000000000000000000000001437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000001357f00000000000000000000000000000000000000000000000000000000000000000b9b84a360005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x518d8397" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0270e51a" + "40953114" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest612.json b/GeneralStateTests/stRandom/randomStatetest612.json index 15db2e487..f245eb077 100644 --- a/GeneralStateTests/stRandom/randomStatetest612.json +++ b/GeneralStateTests/stRandom/randomStatetest612.json @@ -2,92 +2,78 @@ "randomStatetest612" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest612Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "721306946", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff095560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xc350", + "0xffffffffffffffffffffffffffffffffffffffff" : "0x010000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "70274", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999278622826", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa18914d2342fffccec9a0c70ff0b1a5500ce02ea38a7fdddff0d1b811569cc99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa18914d2342fffccec9a0c70ff0b1a5500ce02ea38a7fdddff0d1b811569cc99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa18914d2342fffccec9a0c70ff0b1a5500ce02ea38a7fdddff0d1b811569cc99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa18914d2342fffccec9a0c70ff0b1a5500ce02ea38a7fdddff0d1b811569cc99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa18914d2342fffccec9a0c70ff0b1a5500ce02ea38a7fdddff0d1b811569cc99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a18914d2342fffccec9a0c70ff0b1a5500ce02ea38a7fdddff0d1b811569cc99", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff095560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x5aab961a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2afe4542" + "721306946" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest615.json b/GeneralStateTests/stRandom/randomStatetest615.json index 7b1e174b7..1a7098d9c 100644 --- a/GeneralStateTests/stRandom/randomStatetest615.json +++ b/GeneralStateTests/stRandom/randomStatetest615.json @@ -2,92 +2,77 @@ "randomStatetest615" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest615Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2076977514", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe837f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000009556c6f390a3054d7368a9a5560005155", + "nonce" : "0", + "storage" : { + "0xffffffffffffffffffffffff000000000000000000000000ffffffffffffffff" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "57105", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997922965427", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3ca3f999fcac051a5b00a4f0b55d7412b408aa506065ad5120ec5209554d5db6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3ca3f999fcac051a5b00a4f0b55d7412b408aa506065ad5120ec5209554d5db6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3ca3f999fcac051a5b00a4f0b55d7412b408aa506065ad5120ec5209554d5db6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3ca3f999fcac051a5b00a4f0b55d7412b408aa506065ad5120ec5209554d5db6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3ca3f999fcac051a5b00a4f0b55d7412b408aa506065ad5120ec5209554d5db6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3ca3f999fcac051a5b00a4f0b55d7412b408aa506065ad5120ec5209554d5db6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe837f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000001000000000000000000000000000000000000000009556c6f390a3054d7368a9a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x14400294" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7bcc296a" + "2076977514" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest616.json b/GeneralStateTests/stRandom/randomStatetest616.json index 420593dcb..195a08523 100644 --- a/GeneralStateTests/stRandom/randomStatetest616.json +++ b/GeneralStateTests/stRandom/randomStatetest616.json @@ -2,92 +2,77 @@ "randomStatetest616" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest616Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1167366767", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f86a2409b991539f0423c0342363c3b5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x86a2409b991539f0423c0342363c3b55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46106", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998832587173", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x364e3cec153b43c9e2987a40d0b208d548ad90f392b26b59f67bdb2158cb0baf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x364e3cec153b43c9e2987a40d0b208d548ad90f392b26b59f67bdb2158cb0baf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x364e3cec153b43c9e2987a40d0b208d548ad90f392b26b59f67bdb2158cb0baf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x364e3cec153b43c9e2987a40d0b208d548ad90f392b26b59f67bdb2158cb0baf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x364e3cec153b43c9e2987a40d0b208d548ad90f392b26b59f67bdb2158cb0baf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "364e3cec153b43c9e2987a40d0b208d548ad90f392b26b59f67bdb2158cb0baf", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000006f86a2409b991539f0423c0342363c3b5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0f05af2a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x45949a6f" + "1167366767" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest618.json b/GeneralStateTests/stRandom/randomStatetest618.json index a9e435552..35b0a1a2b 100644 --- a/GeneralStateTests/stRandom/randomStatetest618.json +++ b/GeneralStateTests/stRandom/randomStatetest618.json @@ -2,92 +2,76 @@ "randomStatetest618" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest618Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1398079665", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000100000000000000000000000000000000000000003bf1135a3a58", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "67949", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998601852432", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xaae9f8742d1e957c2fc5d4d5cad80a2abb165c0f983268ab3b39c98ab04bd95a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xaae9f8742d1e957c2fc5d4d5cad80a2abb165c0f983268ab3b39c98ab04bd95a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x191a16671ba2726c09fde48c870f6f620519c8150f53b17a6e8e317a7c53c2b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x191a16671ba2726c09fde48c870f6f620519c8150f53b17a6e8e317a7c53c2b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaae9f8742d1e957c2fc5d4d5cad80a2abb165c0f983268ab3b39c98ab04bd95a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7114ebb96d3623cd066573e441eee29b24e267c630b69628e81b23d770a68ba5", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f0000000000000000000000000000000000000000000000000000000000000000427f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f00000000000000000000000100000000000000000000000000000000000000003bf1135a3a58", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x3d0d185c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x535500b1" + "1398079665" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest619.json b/GeneralStateTests/stRandom/randomStatetest619.json index 9f4cd1c56..24be197bb 100644 --- a/GeneralStateTests/stRandom/randomStatetest619.json +++ b/GeneralStateTests/stRandom/randomStatetest619.json @@ -2,92 +2,78 @@ "randomStatetest619" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest619Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "511599063", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff547f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000005543374560005155", + "nonce" : "0", + "storage" : { + "0x010000000000000000000000000000000000000000" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "0x7f000000000000000000000001000000000000000000000000000000000000" : "0x7fffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "81983", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999488319000", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x56822a7d2744037b783a4dca08a1be121b5c5e69ef5c26e51fc6f8269bbf447b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x56822a7d2744037b783a4dca08a1be121b5c5e69ef5c26e51fc6f8269bbf447b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xef49f5ef1bbae21ea30bc496232a2d647f5e026cccf8e70e36cd0e6c46d6b704", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xef49f5ef1bbae21ea30bc496232a2d647f5e026cccf8e70e36cd0e6c46d6b704", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x56822a7d2744037b783a4dca08a1be121b5c5e69ef5c26e51fc6f8269bbf447b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0cbb517cd4a34617ee1dbd32b93f117ab87b644ad085c8c41f4d946c462f6355", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff547f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000005543374560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x7bbe10bf" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1e7e61d7" + "511599063" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest62.json b/GeneralStateTests/stRandom/randomStatetest62.json index 0f3833b14..b9e3a6d44 100644 --- a/GeneralStateTests/stRandom/randomStatetest62.json +++ b/GeneralStateTests/stRandom/randomStatetest62.json @@ -2,92 +2,77 @@ "randomStatetest62" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest62Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1228914584", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000016f7268713013964a96ac5758043325015560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x7268713013964a96ac57580433250155" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51609", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998771033853", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x4023eac358d956eb9361cff7903cb494b476aefcac590ef7fc5911b1b771503d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4023eac358d956eb9361cff7903cb494b476aefcac590ef7fc5911b1b771503d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4023eac358d956eb9361cff7903cb494b476aefcac590ef7fc5911b1b771503d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4023eac358d956eb9361cff7903cb494b476aefcac590ef7fc5911b1b771503d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4023eac358d956eb9361cff7903cb494b476aefcac590ef7fc5911b1b771503d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "4023eac358d956eb9361cff7903cb494b476aefcac590ef7fc5911b1b771503d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000016f7268713013964a96ac5758043325015560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1e2fa4a5" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x493fbf98" + "1228914584" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest620.json b/GeneralStateTests/stRandom/randomStatetest620.json index e360bf395..a907b4ca1 100644 --- a/GeneralStateTests/stRandom/randomStatetest620.json +++ b/GeneralStateTests/stRandom/randomStatetest620.json @@ -2,92 +2,77 @@ "randomStatetest620" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest620Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1643601446", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f0000000000000000000000010000000000000000000000000000000000000000457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6c54a420327d73727d9d1a667bf3895560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x6c54a420327d73727d9d1a667bf38955" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49048", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998356349552", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x08937320168626944fee6134367b092b5115ef6ea95f8fc33f0806ec0b16c9eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x08937320168626944fee6134367b092b5115ef6ea95f8fc33f0806ec0b16c9eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x08937320168626944fee6134367b092b5115ef6ea95f8fc33f0806ec0b16c9eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x08937320168626944fee6134367b092b5115ef6ea95f8fc33f0806ec0b16c9eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x08937320168626944fee6134367b092b5115ef6ea95f8fc33f0806ec0b16c9eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "08937320168626944fee6134367b092b5115ef6ea95f8fc33f0806ec0b16c9eb", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f0000000000000000000000010000000000000000000000000000000000000000457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f6c54a420327d73727d9d1a667bf3895560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x47166848" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x61f75e26" + "1643601446" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest621.json b/GeneralStateTests/stRandom/randomStatetest621.json index 443de550b..f91ab1094 100644 --- a/GeneralStateTests/stRandom/randomStatetest621.json +++ b/GeneralStateTests/stRandom/randomStatetest621.json @@ -2,92 +2,77 @@ "randomStatetest621" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest621Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2143896087", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000000441a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f3ba187a19366899e595220741232905b60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x3ba187a19366899e595220741232905b" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48470", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997856055489", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa9f3ad2655a01162bef91942d3a7c8ae83d42735e8014a2db8c520e190db9a62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa9f3ad2655a01162bef91942d3a7c8ae83d42735e8014a2db8c520e190db9a62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa9f3ad2655a01162bef91942d3a7c8ae83d42735e8014a2db8c520e190db9a62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa9f3ad2655a01162bef91942d3a7c8ae83d42735e8014a2db8c520e190db9a62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa9f3ad2655a01162bef91942d3a7c8ae83d42735e8014a2db8c520e190db9a62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a9f3ad2655a01162bef91942d3a7c8ae83d42735e8014a2db8c520e190db9a62", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000000000000000000000000000000000000000000000441a7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6f3ba187a19366899e595220741232905b60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x660d9780" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7fc94217" + "2143896087" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest624.json b/GeneralStateTests/stRandom/randomStatetest624.json index 4c315be60..25b12e5f2 100644 --- a/GeneralStateTests/stRandom/randomStatetest624.json +++ b/GeneralStateTests/stRandom/randomStatetest624.json @@ -2,92 +2,76 @@ "randomStatetest624" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest624Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x43424244457943455409635939", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "21127", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999878919", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x68ffa9dca5523569e248a9eea9d426c5a155f3a1e942187d6487ab3b5c8e949e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x68ffa9dca5523569e248a9eea9d426c5a155f3a1e942187d6487ab3b5c8e949e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x68ffa9dca5523569e248a9eea9d426c5a155f3a1e942187d6487ab3b5c8e949e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x68ffa9dca5523569e248a9eea9d426c5a155f3a1e942187d6487ab3b5c8e949e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x68ffa9dca5523569e248a9eea9d426c5a155f3a1e942187d6487ab3b5c8e949e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "68ffa9dca5523569e248a9eea9d426c5a155f3a1e942187d6487ab3b5c8e949e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x43424244457943455409635939", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest625.json b/GeneralStateTests/stRandom/randomStatetest625.json index e357c5267..3316fa0af 100644 --- a/GeneralStateTests/stRandom/randomStatetest625.json +++ b/GeneralStateTests/stRandom/randomStatetest625.json @@ -2,92 +2,76 @@ "randomStatetest625" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest625Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa3015560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1908121208", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998091878838", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb246fb668f7a50d98d195c8dcc8522f7042d3228e8ea22f908aa65e9334d66b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb246fb668f7a50d98d195c8dcc8522f7042d3228e8ea22f908aa65e9334d66b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb246fb668f7a50d98d195c8dcc8522f7042d3228e8ea22f908aa65e9334d66b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb246fb668f7a50d98d195c8dcc8522f7042d3228e8ea22f908aa65e9334d66b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb246fb668f7a50d98d195c8dcc8522f7042d3228e8ea22f908aa65e9334d66b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b246fb668f7a50d98d195c8dcc8522f7042d3228e8ea22f908aa65e9334d66b7", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000887f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c350457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa3015560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x71bb9e4a" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x607918dc" + "1618548956" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest626.json b/GeneralStateTests/stRandom/randomStatetest626.json index 162b20874..5fa8d225f 100644 --- a/GeneralStateTests/stRandom/randomStatetest626.json +++ b/GeneralStateTests/stRandom/randomStatetest626.json @@ -2,92 +2,76 @@ "randomStatetest626" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest626Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c350f4fd94058f06a255", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "375133674", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999624866372", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x842ed2e7ebbadb1a081941031ca1c783f7bed31561d1ae3e5b57325aa0bc7ce4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x842ed2e7ebbadb1a081941031ca1c783f7bed31561d1ae3e5b57325aa0bc7ce4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x842ed2e7ebbadb1a081941031ca1c783f7bed31561d1ae3e5b57325aa0bc7ce4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x842ed2e7ebbadb1a081941031ca1c783f7bed31561d1ae3e5b57325aa0bc7ce4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x842ed2e7ebbadb1a081941031ca1c783f7bed31561d1ae3e5b57325aa0bc7ce4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "842ed2e7ebbadb1a081941031ca1c783f7bed31561d1ae3e5b57325aa0bc7ce4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c350f4fd94058f06a255", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x165c15bc" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7700577a" + "1996511098" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest627.json b/GeneralStateTests/stRandom/randomStatetest627.json index 26b353b81..5eec87b93 100644 --- a/GeneralStateTests/stRandom/randomStatetest627.json +++ b/GeneralStateTests/stRandom/randomStatetest627.json @@ -2,92 +2,77 @@ "randomStatetest627" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest627Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x424243434442424254f262707f3b55", + "nonce" : "0", + "storage" : { + "0x707f3b" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "92998", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999807048", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa608ca53070e64dd3a8799f7ba3ef6d3778a7d5690164629300ff317fb562803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa608ca53070e64dd3a8799f7ba3ef6d3778a7d5690164629300ff317fb562803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2465a80afee3e3df91074e642a3d8d90911831d6f9e16172a938ed284649eb72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2465a80afee3e3df91074e642a3d8d90911831d6f9e16172a938ed284649eb72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa608ca53070e64dd3a8799f7ba3ef6d3778a7d5690164629300ff317fb562803", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "2052fa6d3366a78d35c34cbdf4b81d532697a05d52f3a32dffbfb22c08ad238b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x424243434442424254f262707f3b55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest628.json b/GeneralStateTests/stRandom/randomStatetest628.json index c86fbe063..ae9813d9a 100644 --- a/GeneralStateTests/stRandom/randomStatetest628.json +++ b/GeneralStateTests/stRandom/randomStatetest628.json @@ -2,92 +2,77 @@ "randomStatetest628" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest628Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x41413155", + "nonce" : "0", + "storage" : { + "0x2e" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41138", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858908", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf4d9cae516d3c6e871cb82a179804a99064f0f54c24c85a2db1711adbaba1355", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf4d9cae516d3c6e871cb82a179804a99064f0f54c24c85a2db1711adbaba1355", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb0d06d7f17ae4205bbae17bff580ed2ac8a1a57c9e8e0693bccc4c8495aa644c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb0d06d7f17ae4205bbae17bff580ed2ac8a1a57c9e8e0693bccc4c8495aa644c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf4d9cae516d3c6e871cb82a179804a99064f0f54c24c85a2db1711adbaba1355", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b0d06d7f17ae4205bbae17bff580ed2ac8a1a57c9e8e0693bccc4c8495aa644c", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x41413155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest629.json b/GeneralStateTests/stRandom/randomStatetest629.json index f36f53694..437e0dc5b 100644 --- a/GeneralStateTests/stRandom/randomStatetest629.json +++ b/GeneralStateTests/stRandom/randomStatetest629.json @@ -2,92 +2,77 @@ "randomStatetest629" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest629Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1003338368", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5347f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5116f427277147c617f4354a35a1a47977a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x427277147c617f4354a35a1a47977a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51417", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998996610261", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdd8431091945f39a1d85ccf13e503f2c857a59193856122f16bc6b9e458b8438", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdd8431091945f39a1d85ccf13e503f2c857a59193856122f16bc6b9e458b8438", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdd8431091945f39a1d85ccf13e503f2c857a59193856122f16bc6b9e458b8438", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdd8431091945f39a1d85ccf13e503f2c857a59193856122f16bc6b9e458b8438", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdd8431091945f39a1d85ccf13e503f2c857a59193856122f16bc6b9e458b8438", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "dd8431091945f39a1d85ccf13e503f2c857a59193856122f16bc6b9e458b8438", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5347f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5116f427277147c617f4354a35a1a47977a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5b0db6f8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3bcdba80" + "1003338368" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest63.json b/GeneralStateTests/stRandom/randomStatetest63.json index 0cfcca4af..2edc4bf0d 100644 --- a/GeneralStateTests/stRandom/randomStatetest63.json +++ b/GeneralStateTests/stRandom/randomStatetest63.json @@ -2,92 +2,77 @@ "randomStatetest63" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest63Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "833723715", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f977f157e088003767a86928e8252965560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x977f157e088003767a86928e82529655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48154", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999166228177", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x22d0e07f88a5177a002ea49e1385295d6829d7af413c768aa0667d0173ad9f35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x22d0e07f88a5177a002ea49e1385295d6829d7af413c768aa0667d0173ad9f35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x22d0e07f88a5177a002ea49e1385295d6829d7af413c768aa0667d0173ad9f35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x22d0e07f88a5177a002ea49e1385295d6829d7af413c768aa0667d0173ad9f35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x22d0e07f88a5177a002ea49e1385295d6829d7af413c768aa0667d0173ad9f35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "22d0e07f88a5177a002ea49e1385295d6829d7af413c768aa0667d0173ad9f35", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000006f977f157e088003767a86928e8252965560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x6f7d811c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x31b19d43" + "833723715" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest630.json b/GeneralStateTests/stRandom/randomStatetest630.json index 2fa9462b4..342cb9c1a 100644 --- a/GeneralStateTests/stRandom/randomStatetest630.json +++ b/GeneralStateTests/stRandom/randomStatetest630.json @@ -2,92 +2,77 @@ "randomStatetest630" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest630Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "411786818", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001427f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f9461a46e61507a1206917b17137e7e5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x9461a46e61507a1206917b17137e7e55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50009", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999588163219", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xd840c7a6d521b8f1ebb0c9526f0270753e6605b8be058ba89cb9979b23da00e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd840c7a6d521b8f1ebb0c9526f0270753e6605b8be058ba89cb9979b23da00e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd840c7a6d521b8f1ebb0c9526f0270753e6605b8be058ba89cb9979b23da00e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd840c7a6d521b8f1ebb0c9526f0270753e6605b8be058ba89cb9979b23da00e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd840c7a6d521b8f1ebb0c9526f0270753e6605b8be058ba89cb9979b23da00e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "d840c7a6d521b8f1ebb0c9526f0270753e6605b8be058ba89cb9979b23da00e0", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f0000000000000000000000000000000000000000000000000000000000000001427f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f9461a46e61507a1206917b17137e7e5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x32a16829" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x188b5e42" + "411786818" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest632.json b/GeneralStateTests/stRandom/randomStatetest632.json index a093152b2..5e17d9acb 100644 --- a/GeneralStateTests/stRandom/randomStatetest632.json +++ b/GeneralStateTests/stRandom/randomStatetest632.json @@ -2,92 +2,76 @@ "randomStatetest632" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest632Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x434243434444424350303614f20a", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "72974", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999827072", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x905fa642806a48fa50e933dff10e4a5ab8a67e9ab59a82a56ca70d916722dca0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x515cd8699abad08dcd173cae89e9e58b11fd822f7545dcf276f1eb40c1e4fd93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7cb038e6078df23e57b705eab4969c36f24e8ca8a13cf781d22410a029823245", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7cb038e6078df23e57b705eab4969c36f24e8ca8a13cf781d22410a029823245", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x515cd8699abad08dcd173cae89e9e58b11fd822f7545dcf276f1eb40c1e4fd93", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3ec3270c32b915349f7f0be6bc50eab148c225596906df7ead581b41267a9262", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x434243434444424350303614f20a", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +81,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest633.json b/GeneralStateTests/stRandom/randomStatetest633.json index 9b6230eb1..d6cf67513 100644 --- a/GeneralStateTests/stRandom/randomStatetest633.json +++ b/GeneralStateTests/stRandom/randomStatetest633.json @@ -2,92 +2,77 @@ "randomStatetest633" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest633Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1358306105", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f82941340756317567250f1573a89765560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x82941340756317567250f1573a897655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52698", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998641641243", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa04c0953986ae19dbaa7797ebe5890fc1c9cdcb9e64397e984e32cf0f8d30cbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa04c0953986ae19dbaa7797ebe5890fc1c9cdcb9e64397e984e32cf0f8d30cbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa04c0953986ae19dbaa7797ebe5890fc1c9cdcb9e64397e984e32cf0f8d30cbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa04c0953986ae19dbaa7797ebe5890fc1c9cdcb9e64397e984e32cf0f8d30cbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa04c0953986ae19dbaa7797ebe5890fc1c9cdcb9e64397e984e32cf0f8d30cbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a04c0953986ae19dbaa7797ebe5890fc1c9cdcb9e64397e984e32cf0f8d30cbf", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b56f82941340756317567250f1573a89765560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x7699ed46" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x50f61b39" + "1358306105" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest635.json b/GeneralStateTests/stRandom/randomStatetest635.json index afe0f563d..7bc788629 100644 --- a/GeneralStateTests/stRandom/randomStatetest635.json +++ b/GeneralStateTests/stRandom/randomStatetest635.json @@ -2,92 +2,76 @@ "randomStatetest635" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest635Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000005b7fffffffffffffffffff" : { + "balance" : "1615246365", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "15009", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998384738672", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5dc2da3c6747e194c7f660b2000504730dd2e381c30e74f18db28e63a5bc5583", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5dc2da3c6747e194c7f660b2000504730dd2e381c30e74f18db28e63a5bc5583", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb010df03a8f3e5d887163e5a995c0f01b0b190bd572aeb9e12d2c3a927e76c34", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb010df03a8f3e5d887163e5a995c0f01b0b190bd572aeb9e12d2c3a927e76c34", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5dc2da3c6747e194c7f660b2000504730dd2e381c30e74f18db28e63a5bc5583", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b010df03a8f3e5d887163e5a995c0f01b0b190bd572aeb9e12d2c3a927e76c34", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff6a5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe66f2707d83713b6b8f320855", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x3c465078" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6046b41d" + "1615246365" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest636.json b/GeneralStateTests/stRandom/randomStatetest636.json index 34e08f1e9..b2a446488 100644 --- a/GeneralStateTests/stRandom/randomStatetest636.json +++ b/GeneralStateTests/stRandom/randomStatetest636.json @@ -2,17 +2,54 @@ "randomStatetest636" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest636Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x74ff9009", + "code" : "0x74619921c0750ac3268e7a6703ca2bf6c43308e6fc36607561af1ca16db843f7a2e05bfc2e46afc179930b7a8724a04f9f561bdc65bba0ad5797dde0a28d5e8aca56e1510b724f676a6d33dee473d74664561e49e3d86338c8dcf260f06cbfa6283966d2d0f2591f54088e6f36545c0d90fcdea10d5629629ffb1b16626c339f6490829f1b1675f0f2f62b0b7c9d3f070fafd53f99f90f31e19e81d3db688929213e34affc41116e6ae6f54ad5c2062b27a9fbec78a52f7a26c6347408631a6c0efcf33fe576953a4043e846b686471403f38a615a0a8e601d600a600e60146301019a5173095e7baea6a6c7c4c2dfeb977efac326af552d8763314bc0fef1600c7eb69785d3593d3a8552018a4faba5b591975e8b8056ebc01f5ce5f5f7c04eca9062b458a835649be8fbaa906f3c4d8f92f8c27517f0addd45e050bfcf55792d8bf87c39d39ed9b1ef6c8c070d8da4a624ce548b37d03ae8107ca6da49be4adffc9f5ae896c52b936a18bed4bd9fcbae531274706e9e9b9030619a40714bb4b22e7bef8cf7b01551327188ee4bb6247118d0e95549a92f7dd9305484cc054e5f206d70d008699a85896061427b05ae2a7f16230f66ab4dd548e03b0972010f5afff39a4f9a90e55e91584e86629f3e8775f53da16fceedd834103a50dbe72a6634e4dbf374c70e6bd041628dc8b30de3c3d7aa0e7bb48df927c78ed30b286e249c2cbe79fb55956f492e413e771d0cd63f7357ab1e9a38026a4ba9278427812728699a2c747189", + "nonce" : "0x00", + "storage" : { + "0x3c4d8f92f8c27517f0addd45e050bfcf" : "0x9be8fbaa90" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x314d5263", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b301171dc2", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -24,77 +61,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb2598fdc91f328e9280e73e5596155060caa4860444d07a76564b6f024df984d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb2598fdc91f328e9280e73e5596155060caa4860444d07a76564b6f024df984d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa7aeef9ab7238851dfa47129375aa65f74af5af05173785252a9bc4e69a3d052", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa7aeef9ab7238851dfa47129375aa65f74af5af05173785252a9bc4e69a3d052", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb2598fdc91f328e9280e73e5596155060caa4860444d07a76564b6f024df984d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a7aeef9ab7238851dfa47129375aa65f74af5af05173785252a9bc4e69a3d052", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x74619921c0750ac3268e7a6703ca2bf6c43308e6fc36607561af1ca16db843f7a2e05bfc2e46afc179930b7a8724a04f9f561bdc65bba0ad5797dde0a28d5e8aca56e1510b724f676a6d33dee473d74664561e49e3d86338c8dcf260f06cbfa6283966d2d0f2591f54088e6f36545c0d90fcdea10d5629629ffb1b16626c339f6490829f1b1675f0f2f62b0b7c9d3f070fafd53f99f90f31e19e81d3db688929213e34affc41116e6ae6f54ad5c2062b27a9fbec78a52f7a26c6347408631a6c0efcf33fe576953a4043e846b686471403f38a615a0a8e601d600a600e60146301019a5173095e7baea6a6c7c4c2dfeb977efac326af552d8763314bc0fef1600c7eb69785d3593d3a8552018a4faba5b591975e8b8056ebc01f5ce5f5f7c04eca9062b458a835649be8fbaa906f3c4d8f92f8c27517f0addd45e050bfcf55792d8bf87c39d39ed9b1ef6c8c070d8da4a624ce548b37d03ae8107ca6da49be4adffc9f5ae896c52b936a18bed4bd9fcbae531274706e9e9b9030619a40714bb4b22e7bef8cf7b01551327188ee4bb6247118d0e95549a92f7dd9305484cc054e5f206d70d008699a85896061427b05ae2a7f16230f66ab4dd548e03b0972010f5afff39a4f9a90e55e91584e86629f3e8775f53da16fceedd834103a50dbe72a6634e4dbf374c70e6bd041628dc8b30de3c3d7aa0e7bb48df927c78ed30b286e249c2cbe79fb55956f492e413e771d0cd63f7357ab1e9a38026a4ba9278427812728699a2c747189", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -109,8 +94,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x74ff9009" ] diff --git a/GeneralStateTests/stRandom/randomStatetest637.json b/GeneralStateTests/stRandom/randomStatetest637.json index 3b4d3d46e..1ee41c1c4 100644 --- a/GeneralStateTests/stRandom/randomStatetest637.json +++ b/GeneralStateTests/stRandom/randomStatetest637.json @@ -2,92 +2,77 @@ "randomStatetest637" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest637Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1479766116", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f44931064138e9df1768334028c20147160005155", + "nonce" : "0", + "storage" : { + "0x" : "0x44931064138e9df1768334028c201471" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47497", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998520186433", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xc93dc65eefdda98819e9c03d6333850a10a87e310545632992480f216a00165b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc93dc65eefdda98819e9c03d6333850a10a87e310545632992480f216a00165b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc93dc65eefdda98819e9c03d6333850a10a87e310545632992480f216a00165b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc93dc65eefdda98819e9c03d6333850a10a87e310545632992480f216a00165b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc93dc65eefdda98819e9c03d6333850a10a87e310545632992480f216a00165b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "c93dc65eefdda98819e9c03d6333850a10a87e310545632992480f216a00165b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6f44931064138e9df1768334028c20147160005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0e9c030c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x58337064" + "1479766116" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest638.json b/GeneralStateTests/stRandom/randomStatetest638.json index fd5419ad7..bcd8b8a88 100644 --- a/GeneralStateTests/stRandom/randomStatetest638.json +++ b/GeneralStateTests/stRandom/randomStatetest638.json @@ -2,92 +2,77 @@ "randomStatetest638" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest638Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2032022422", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0960005155", + "nonce" : "0", + "storage" : { + "0x" : "0xffffffffffffffffffffffff0000000000000000000000000000000000000000" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "52572", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997967925052", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5160cf6b8a0365da3cba5646d6fce4b4da792520672fbff4356573987a9719d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5160cf6b8a0365da3cba5646d6fce4b4da792520672fbff4356573987a9719d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5160cf6b8a0365da3cba5646d6fce4b4da792520672fbff4356573987a9719d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5160cf6b8a0365da3cba5646d6fce4b4da792520672fbff4356573987a9719d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5160cf6b8a0365da3cba5646d6fce4b4da792520672fbff4356573987a9719d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5160cf6b8a0365da3cba5646d6fce4b4da792520672fbff4356573987a9719d4", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0960005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x3a475d31" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x791e3396" + "2032022422" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest639.json b/GeneralStateTests/stRandom/randomStatetest639.json index 862e84fd0..b45809280 100644 --- a/GeneralStateTests/stRandom/randomStatetest639.json +++ b/GeneralStateTests/stRandom/randomStatetest639.json @@ -2,17 +2,53 @@ "randomStatetest639" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest639Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x49c00898", + "code" : "0x6e993d78e80807a0d34bdbfa4e0afa9d7eab95e6f8772a548229700e2dcc612ac9ceeb898af8436680a2e1074df8ced0137964d71c8fe8a10fb58f8706ea3ee1b54a0848e742ca357e3d023460c161b1f5a17c48da2ae1e6987c52223414746fab0e39130693d15a48d39b5130096a7c1570c4fb89343ef5d10e912decba682bf205de79e84c573c9e2b0ffbd4d6117e40046b4c2d77156ada28960d9bb97f56d243429aa245c32e1f800a686ebe298dd08349d864486d7a1569b5aae495776bb5e71206cd09f54d1cd713966557567542184c74b95cc0d8ac3d0e05d0264b8d42a3563826123fc0d964521b61b86374591a821818672ef0dea05d259bc4f98c34418d9e7a677173b211649c07df7670aca688053842de6157c4fb5e678adc0611fcc20a1d836ec69b9370d09b83f1b0293a1b102d6d73978584b14fb2ab517001867e6545dd2dc3438f9c7828f6d3c6e4da98113ce2486c1ad028dc9947b28590071b977e651d352b078cb96b27f9ff7252c9f3ce9e5151ae7af1064ab8a5d92ed543b9d59c341f85bb22aa2fa7d7ee7310ac8f519e66da165b9efe3663657b1e28f4eb3e7338391339af5346d12c14bbc0863c26d7e999776c7939cefac542ed69f518bbef5461c0df385004f5411c3faaa65c7b6abf900ca1ef1f40bb938f727695a1ca14012ba07cc01548f3df75544b11bb52b7693bed7e2fc1537b2f8d63c4db4c3d8fc72b6f5f7e7b4d1ec8c1ac89230936975d19626788f03504a8c9acf66437d6d885607778bee6fe54742ddc9a7d8373dbfe2e21aacf8816944c02ef983260156009600960186329ec801e73095e7baea6a6c7c4c2dfeb977efac326af552d876356837182f175259fc2ea2df7d720fb0914ed44bcb12b8ff15e712ef67d868fe7fba6b46fac671a45bcace82fa83b87b8744835ac63d2b6cf3d157d7526909f9c4d1efbf68d780af1c0f2dabbfc53d2c71dc461bf7f788e3a9c48cd1df8d146a7df97125985162ecd37b059204323d066cb4709a3a1715f7c4a9fb905c26ba87933ef2499d3447d5cd4df27a6205c8a1ce06719c3e065e66ab80222ff7ed1f72f533a1160330dbd8dcd0489ec2dac84d7522a4d8732c5ae9e08d9a251682fb33fa08ecc05197d897a1d5f28328caa78ca6cd6b86fd08a1748fa959665861d18c25a3cae79732fe4fb3ad8b48c17c8efeeb5ec22be8b20ec4eae2955d65b9a6c1415c23047aa8f2c29aeddd78765c1bc3eda63416d84cdb9b8d7942020db3b1ed861a966475eb6ef9f9920692a879ee6bf9d0a1dd9d386", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x56841115", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3071fe681", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ { "address" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", @@ -24,77 +60,25 @@ } ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8d726d976981f915dbe889c1e79e72d5c55fcb13d2eeb57d901107d4720cd426", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8d726d976981f915dbe889c1e79e72d5c55fcb13d2eeb57d901107d4720cd426", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x11c813319b717de8aba2fae8e1cbe909f598de11761430d52f35b85165d3ad13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x11c813319b717de8aba2fae8e1cbe909f598de11761430d52f35b85165d3ad13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8d726d976981f915dbe889c1e79e72d5c55fcb13d2eeb57d901107d4720cd426", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "11c813319b717de8aba2fae8e1cbe909f598de11761430d52f35b85165d3ad13", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x6e993d78e80807a0d34bdbfa4e0afa9d7eab95e6f8772a548229700e2dcc612ac9ceeb898af8436680a2e1074df8ced0137964d71c8fe8a10fb58f8706ea3ee1b54a0848e742ca357e3d023460c161b1f5a17c48da2ae1e6987c52223414746fab0e39130693d15a48d39b5130096a7c1570c4fb89343ef5d10e912decba682bf205de79e84c573c9e2b0ffbd4d6117e40046b4c2d77156ada28960d9bb97f56d243429aa245c32e1f800a686ebe298dd08349d864486d7a1569b5aae495776bb5e71206cd09f54d1cd713966557567542184c74b95cc0d8ac3d0e05d0264b8d42a3563826123fc0d964521b61b86374591a821818672ef0dea05d259bc4f98c34418d9e7a677173b211649c07df7670aca688053842de6157c4fb5e678adc0611fcc20a1d836ec69b9370d09b83f1b0293a1b102d6d73978584b14fb2ab517001867e6545dd2dc3438f9c7828f6d3c6e4da98113ce2486c1ad028dc9947b28590071b977e651d352b078cb96b27f9ff7252c9f3ce9e5151ae7af1064ab8a5d92ed543b9d59c341f85bb22aa2fa7d7ee7310ac8f519e66da165b9efe3663657b1e28f4eb3e7338391339af5346d12c14bbc0863c26d7e999776c7939cefac542ed69f518bbef5461c0df385004f5411c3faaa65c7b6abf900ca1ef1f40bb938f727695a1ca14012ba07cc01548f3df75544b11bb52b7693bed7e2fc1537b2f8d63c4db4c3d8fc72b6f5f7e7b4d1ec8c1ac89230936975d19626788f03504a8c9acf66437d6d885607778bee6fe54742ddc9a7d8373dbfe2e21aacf8816944c02ef983260156009600960186329ec801e73095e7baea6a6c7c4c2dfeb977efac326af552d876356837182f175259fc2ea2df7d720fb0914ed44bcb12b8ff15e712ef67d868fe7fba6b46fac671a45bcace82fa83b87b8744835ac63d2b6cf3d157d7526909f9c4d1efbf68d780af1c0f2dabbfc53d2c71dc461bf7f788e3a9c48cd1df8d146a7df97125985162ecd37b059204323d066cb4709a3a1715f7c4a9fb905c26ba87933ef2499d3447d5cd4df27a6205c8a1ce06719c3e065e66ab80222ff7ed1f72f533a1160330dbd8dcd0489ec2dac84d7522a4d8732c5ae9e08d9a251682fb33fa08ecc05197d897a1d5f28328caa78ca6cd6b86fd08a1748fa959665861d18c25a3cae79732fe4fb3ad8b48c17c8efeeb5ec22be8b20ec4eae2955d65b9a6c1415c23047aa8f2c29aeddd78765c1bc3eda63416d84cdb9b8d7942020db3b1ed861a966475eb6ef9f9920692a879ee6bf9d0a1dd9d386", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -109,8 +93,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x49c00898" ] diff --git a/GeneralStateTests/stRandom/randomStatetest64.json b/GeneralStateTests/stRandom/randomStatetest64.json index 500ad3012..e34b9a1ce 100644 --- a/GeneralStateTests/stRandom/randomStatetest64.json +++ b/GeneralStateTests/stRandom/randomStatetest64.json @@ -2,92 +2,78 @@ "randomStatetest64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest64Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "873959833", + "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe087f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x01", + "0x82fa967fba85f07810930c28609bb009d805556c23cf249922cca1350e4008c5" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "72329", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999125967884", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb29e8990e320cfa0ffb7d9fb8685620f29e93e9d5be41cec67cc91a192c43b50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x968269aaaea4454bd94fa6c7617316e8528a1ab3adcda46d932812dcd16c0a74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb29e8990e320cfa0ffb7d9fb8685620f29e93e9d5be41cec67cc91a192c43b50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb29e8990e320cfa0ffb7d9fb8685620f29e93e9d5be41cec67cc91a192c43b50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x968269aaaea4454bd94fa6c7617316e8528a1ab3adcda46d932812dcd16c0a74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b29e8990e320cfa0ffb7d9fb8685620f29e93e9d5be41cec67cc91a192c43b50", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x427f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe087f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b50a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x0387c6a5" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x34179199" + "873959833" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest640.json b/GeneralStateTests/stRandom/randomStatetest640.json index c42986ee4..dbead23a6 100644 --- a/GeneralStateTests/stRandom/randomStatetest640.json +++ b/GeneralStateTests/stRandom/randomStatetest640.json @@ -2,92 +2,76 @@ "randomStatetest640" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest640Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000807f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff50885560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "21978457", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999978021589", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x31fef3f415e32007a44dafc952f408ea27e3508450c6bea84d1b24c5a3033240", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x31fef3f415e32007a44dafc952f408ea27e3508450c6bea84d1b24c5a3033240", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x31fef3f415e32007a44dafc952f408ea27e3508450c6bea84d1b24c5a3033240", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x31fef3f415e32007a44dafc952f408ea27e3508450c6bea84d1b24c5a3033240", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x31fef3f415e32007a44dafc952f408ea27e3508450c6bea84d1b24c5a3033240", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "31fef3f415e32007a44dafc952f408ea27e3508450c6bea84d1b24c5a3033240", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000010000000000000000000000000000000000000000807f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff50885560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x014f5d2b" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x6a1d81" + "6954369" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest641.json b/GeneralStateTests/stRandom/randomStatetest641.json index 5eba6f95b..854f14e0c 100644 --- a/GeneralStateTests/stRandom/randomStatetest641.json +++ b/GeneralStateTests/stRandom/randomStatetest641.json @@ -2,92 +2,77 @@ "randomStatetest641" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest641Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "252246116", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f29199c9aa4054170f1a15a55056f965560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x29199c9aa4054170f1a15a55056f9655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51866", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999747702064", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x3822329c9cb2cf135d6051498b840a029d24f464147c29d1d3048eeb3f9529c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3822329c9cb2cf135d6051498b840a029d24f464147c29d1d3048eeb3f9529c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3822329c9cb2cf135d6051498b840a029d24f464147c29d1d3048eeb3f9529c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3822329c9cb2cf135d6051498b840a029d24f464147c29d1d3048eeb3f9529c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3822329c9cb2cf135d6051498b840a029d24f464147c29d1d3048eeb3f9529c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "3822329c9cb2cf135d6051498b840a029d24f464147c29d1d3048eeb3f9529c6", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f29199c9aa4054170f1a15a55056f965560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x17ee5409" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0f08f864" + "252246116" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest66.json b/GeneralStateTests/stRandom/randomStatetest66.json index 63442d235..735e6e661 100644 --- a/GeneralStateTests/stRandom/randomStatetest66.json +++ b/GeneralStateTests/stRandom/randomStatetest66.json @@ -2,92 +2,77 @@ "randomStatetest66" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest66Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "794190030", + "code" : "0x457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f000000000000000000000001000000000000000000000000000000000000000055", + "nonce" : "0", + "storage" : { + "0x010000000000000000000000000000000000000000" : "0xffffffffffffffffffffffff6bacfb1469f9a4d5674a85b75f951d72d7a58e4a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49745", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999205760271", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x79a164a288ae0a9152437fefa94256cf5f837de0f172829afd3fe291c6acf379", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x79a164a288ae0a9152437fefa94256cf5f837de0f172829afd3fe291c6acf379", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x79a164a288ae0a9152437fefa94256cf5f837de0f172829afd3fe291c6acf379", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x79a164a288ae0a9152437fefa94256cf5f837de0f172829afd3fe291c6acf379", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x79a164a288ae0a9152437fefa94256cf5f837de0f172829afd3fe291c6acf379", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "79a164a288ae0a9152437fefa94256cf5f837de0f172829afd3fe291c6acf379", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe097f000000000000000000000001000000000000000000000000000000000000000055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5be4cce8" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2f5660ce" + "794190030" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest67.json b/GeneralStateTests/stRandom/randomStatetest67.json index 7587ddffb..df9b251ff 100644 --- a/GeneralStateTests/stRandom/randomStatetest67.json +++ b/GeneralStateTests/stRandom/randomStatetest67.json @@ -2,92 +2,77 @@ "randomStatetest67" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest67Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2113087573", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000016f699776659a06a27607a2166d5373315560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x699776659a06a27607a2166d53733155" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47450", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997886865023", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb2f85992b546c4cfef759259b80c36c6e336d5f8849819e76c1493e991811edc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb2f85992b546c4cfef759259b80c36c6e336d5f8849819e76c1493e991811edc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb2f85992b546c4cfef759259b80c36c6e336d5f8849819e76c1493e991811edc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb2f85992b546c4cfef759259b80c36c6e336d5f8849819e76c1493e991811edc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb2f85992b546c4cfef759259b80c36c6e336d5f8849819e76c1493e991811edc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "b2f85992b546c4cfef759259b80c36c6e336d5f8849819e76c1493e991811edc", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000016f699776659a06a27607a2166d5373315560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x037d57b9" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7df32855" + "2113087573" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest69.json b/GeneralStateTests/stRandom/randomStatetest69.json index 11c8a0b8d..e7f9e8c66 100644 --- a/GeneralStateTests/stRandom/randomStatetest69.json +++ b/GeneralStateTests/stRandom/randomStatetest69.json @@ -2,92 +2,77 @@ "randomStatetest69" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest69Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "795619675", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe43596f15a0770a7676611a6595057b768b645560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x15a0770a7676611a6595057b768b6455" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51864", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999204328507", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x8e69afa957219d573ae0378b83f0469a7cca823debe950b8814c6afc51f398ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8e69afa957219d573ae0378b83f0469a7cca823debe950b8814c6afc51f398ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8e69afa957219d573ae0378b83f0469a7cca823debe950b8814c6afc51f398ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8e69afa957219d573ae0378b83f0469a7cca823debe950b8814c6afc51f398ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8e69afa957219d573ae0378b83f0469a7cca823debe950b8814c6afc51f398ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "8e69afa957219d573ae0378b83f0469a7cca823debe950b8814c6afc51f398ab", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe43596f15a0770a7676611a6595057b768b645560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x5771c53c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x2f6c315b" + "795619675" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest7.json b/GeneralStateTests/stRandom/randomStatetest7.json index 54d18aba1..f6bfa0ad2 100644 --- a/GeneralStateTests/stRandom/randomStatetest7.json +++ b/GeneralStateTests/stRandom/randomStatetest7.json @@ -2,92 +2,76 @@ "randomStatetest7" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest7Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe40437f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe163119185560005155", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1263945493", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998736054553", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdf4b7ba2bbcedccfabcabc186f9b8930d621319cce791f183c607b584f78c53d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdf4b7ba2bbcedccfabcabc186f9b8930d621319cce791f183c607b584f78c53d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdf4b7ba2bbcedccfabcabc186f9b8930d621319cce791f183c607b584f78c53d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdf4b7ba2bbcedccfabcabc186f9b8930d621319cce791f183c607b584f78c53d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdf4b7ba2bbcedccfabcabc186f9b8930d621319cce791f183c607b584f78c53d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "df4b7ba2bbcedccfabcabc186f9b8930d621319cce791f183c607b584f78c53d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe40437f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe163119185560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x4b5646e7" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x31488828" + "826837032" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest72.json b/GeneralStateTests/stRandom/randomStatetest72.json index e93111f15..fa83d622b 100644 --- a/GeneralStateTests/stRandom/randomStatetest72.json +++ b/GeneralStateTests/stRandom/randomStatetest72.json @@ -2,91 +2,75 @@ "randomStatetest72" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest72Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x5ded2cc8", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff417f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe65688dff579830091304", + "nonce" : "0x00", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0x7de1", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b349765585", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x92cbb047161785b64b135b84317e4172222e8460510e8d10983eb040f9007336", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x92cbb047161785b64b135b84317e4172222e8460510e8d10983eb040f9007336", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x92cbb047161785b64b135b84317e4172222e8460510e8d10983eb040f9007336", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x92cbb047161785b64b135b84317e4172222e8460510e8d10983eb040f9007336", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x92cbb047161785b64b135b84317e4172222e8460510e8d10983eb040f9007336", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "92cbb047161785b64b135b84317e4172222e8460510e8d10983eb040f9007336", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff417f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe65688dff579830091304", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +85,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x5ded2cc8" ] diff --git a/GeneralStateTests/stRandom/randomStatetest73.json b/GeneralStateTests/stRandom/randomStatetest73.json index fc6e22239..c6773f955 100644 --- a/GeneralStateTests/stRandom/randomStatetest73.json +++ b/GeneralStateTests/stRandom/randomStatetest73.json @@ -2,92 +2,77 @@ "randomStatetest73" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest73Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "84268071", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5b573198d729b711671056e0a055534613855", + "nonce" : "0", + "storage" : { + "0xb5b573198d729b711671056e0a0555346138" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48267", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999915683708", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x16e85ecf147841f5c4b64ea70e4adc1dd5031eb717edc68072707855a3192afb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x16e85ecf147841f5c4b64ea70e4adc1dd5031eb717edc68072707855a3192afb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x16e85ecf147841f5c4b64ea70e4adc1dd5031eb717edc68072707855a3192afb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x16e85ecf147841f5c4b64ea70e4adc1dd5031eb717edc68072707855a3192afb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x16e85ecf147841f5c4b64ea70e4adc1dd5031eb717edc68072707855a3192afb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "16e85ecf147841f5c4b64ea70e4adc1dd5031eb717edc68072707855a3192afb", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5b573198d729b711671056e0a055534613855", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x662bcee0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0505d427" + "84268071" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest74.json b/GeneralStateTests/stRandom/randomStatetest74.json index 0cba63b34..cef223ca9 100644 --- a/GeneralStateTests/stRandom/randomStatetest74.json +++ b/GeneralStateTests/stRandom/randomStatetest74.json @@ -2,92 +2,77 @@ "randomStatetest74" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest74Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1223108496", + "code" : "0x427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff3a7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000006f141097788a7b5a72139c07076f18425560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x141097788a7b5a72139c07076f184255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47953", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998776843597", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5dde2c51aa7875a87e74b8ff7181b85b5529feffc2929a60dfc96e67047c3cd2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5dde2c51aa7875a87e74b8ff7181b85b5529feffc2929a60dfc96e67047c3cd2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5dde2c51aa7875a87e74b8ff7181b85b5529feffc2929a60dfc96e67047c3cd2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5dde2c51aa7875a87e74b8ff7181b85b5529feffc2929a60dfc96e67047c3cd2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5dde2c51aa7875a87e74b8ff7181b85b5529feffc2929a60dfc96e67047c3cd2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5dde2c51aa7875a87e74b8ff7181b85b5529feffc2929a60dfc96e67047c3cd2", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x427ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff3a7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000006f141097788a7b5a72139c07076f18425560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x16d62c8f" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x48e72790" + "1223108496" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest75.json b/GeneralStateTests/stRandom/randomStatetest75.json index 9d866d5c4..e6e76555d 100644 --- a/GeneralStateTests/stRandom/randomStatetest75.json +++ b/GeneralStateTests/stRandom/randomStatetest75.json @@ -2,92 +2,77 @@ "randomStatetest75" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest75Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "180160312", + "code" : "0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000006f5893504553386c7d154001779287765560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x5893504553386c7d1540017792877655" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51225", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999819788509", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa09de35189aad01b988b05a7047c5fe8c2d6f394d856f8a67b1494dae5cd3328", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa09de35189aad01b988b05a7047c5fe8c2d6f394d856f8a67b1494dae5cd3328", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa09de35189aad01b988b05a7047c5fe8c2d6f394d856f8a67b1494dae5cd3328", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa09de35189aad01b988b05a7047c5fe8c2d6f394d856f8a67b1494dae5cd3328", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa09de35189aad01b988b05a7047c5fe8c2d6f394d856f8a67b1494dae5cd3328", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a09de35189aad01b988b05a7047c5fe8c2d6f394d856f8a67b1494dae5cd3328", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x457ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000006f5893504553386c7d154001779287765560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0f0baad6" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0abd0738" + "180160312" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest77.json b/GeneralStateTests/stRandom/randomStatetest77.json index de2022566..0f4bcba1c 100644 --- a/GeneralStateTests/stRandom/randomStatetest77.json +++ b/GeneralStateTests/stRandom/randomStatetest77.json @@ -2,92 +2,77 @@ "randomStatetest77" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest77Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1249250523", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000141937f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000006f79a06df1a08d05373216d3721903415560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x79a06df1a08d05373216d37219034155" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "43737", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998750705786", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x5b1c7d52d997261f0d7df6e346861678954c39775e7d315c2403cd362d80d953", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5b1c7d52d997261f0d7df6e346861678954c39775e7d315c2403cd362d80d953", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5b1c7d52d997261f0d7df6e346861678954c39775e7d315c2403cd362d80d953", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5b1c7d52d997261f0d7df6e346861678954c39775e7d315c2403cd362d80d953", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5b1c7d52d997261f0d7df6e346861678954c39775e7d315c2403cd362d80d953", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "5b1c7d52d997261f0d7df6e346861678954c39775e7d315c2403cd362d80d953", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000141937f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000006f79a06df1a08d05373216d3721903415560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4ebc7aaa" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4a760cdb" + "1249250523" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest78.json b/GeneralStateTests/stRandom/randomStatetest78.json index 4b885627f..717e4103c 100644 --- a/GeneralStateTests/stRandom/randomStatetest78.json +++ b/GeneralStateTests/stRandom/randomStatetest78.json @@ -2,92 +2,76 @@ "randomStatetest78" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest78Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "181540957", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5437f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1174648789aa349e0915aa5911", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "32231", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999818426858", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x919463d8f7cd3da2e857914d046de2c08fc6c0be11ee2988525c071b3c818623", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x919463d8f7cd3da2e857914d046de2c08fc6c0be11ee2988525c071b3c818623", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x919463d8f7cd3da2e857914d046de2c08fc6c0be11ee2988525c071b3c818623", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x919463d8f7cd3da2e857914d046de2c08fc6c0be11ee2988525c071b3c818623", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x919463d8f7cd3da2e857914d046de2c08fc6c0be11ee2988525c071b3c818623", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "919463d8f7cd3da2e857914d046de2c08fc6c0be11ee2988525c071b3c818623", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5437f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1174648789aa349e0915aa5911", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x1e1cba4d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0ad2185d" + "181540957" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest80.json b/GeneralStateTests/stRandom/randomStatetest80.json index bb7148825..6bed1121e 100644 --- a/GeneralStateTests/stRandom/randomStatetest80.json +++ b/GeneralStateTests/stRandom/randomStatetest80.json @@ -2,92 +2,77 @@ "randomStatetest80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest80Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "517580214", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000010000000000000000000000000000000000000000117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5681069127b3b9c877d6f6169ff3660005155", + "nonce" : "0", + "storage" : { + "0xb5681069127b3b9c877d6f6169ff36600051" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "49414", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999482370418", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xdaf012dfad9aa1a09d7cefa33fa4ce435de58dbe0b851ae6450e88c8bb70cd1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdaf012dfad9aa1a09d7cefa33fa4ce435de58dbe0b851ae6450e88c8bb70cd1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdaf012dfad9aa1a09d7cefa33fa4ce435de58dbe0b851ae6450e88c8bb70cd1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdaf012dfad9aa1a09d7cefa33fa4ce435de58dbe0b851ae6450e88c8bb70cd1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdaf012dfad9aa1a09d7cefa33fa4ce435de58dbe0b851ae6450e88c8bb70cd1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "daf012dfad9aa1a09d7cefa33fa4ce435de58dbe0b851ae6450e88c8bb70cd1e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f0000000000000000000000010000000000000000000000000000000000000000117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7e7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5681069127b3b9c877d6f6169ff3660005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x0a0d7e38" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1ed9a5b6" + "517580214" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest81.json b/GeneralStateTests/stRandom/randomStatetest81.json index b950792ff..9817c3ff2 100644 --- a/GeneralStateTests/stRandom/randomStatetest81.json +++ b/GeneralStateTests/stRandom/randomStatetest81.json @@ -2,92 +2,77 @@ "randomStatetest81" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest81Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "898282209", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff436f616c327e0435743c515b078453a03c5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x616c327e0435743c515b078453a03c55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "51480", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999101666357", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x1bb7ebe0f22cf46554e8971383ebd1b4647e384e47f7cccc40ba8a1da350367b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1bb7ebe0f22cf46554e8971383ebd1b4647e384e47f7cccc40ba8a1da350367b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1bb7ebe0f22cf46554e8971383ebd1b4647e384e47f7cccc40ba8a1da350367b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1bb7ebe0f22cf46554e8971383ebd1b4647e384e47f7cccc40ba8a1da350367b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1bb7ebe0f22cf46554e8971383ebd1b4647e384e47f7cccc40ba8a1da350367b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "1bb7ebe0f22cf46554e8971383ebd1b4647e384e47f7cccc40ba8a1da350367b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000100000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe437f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff436f616c327e0435743c515b078453a03c5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x34f4226c" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x358ab2e1" + "898282209" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest82.json b/GeneralStateTests/stRandom/randomStatetest82.json index 4186e9975..b2574b180 100644 --- a/GeneralStateTests/stRandom/randomStatetest82.json +++ b/GeneralStateTests/stRandom/randomStatetest82.json @@ -2,92 +2,76 @@ "randomStatetest82" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest82Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1676520806", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000000655", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "37188", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998323442052", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe2b4f251b3161758b2f03f650a4af46b27c4daaadccae1ddb196718cf843d165", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe2b4f251b3161758b2f03f650a4af46b27c4daaadccae1ddb196718cf843d165", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe2b4f251b3161758b2f03f650a4af46b27c4daaadccae1ddb196718cf843d165", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe2b4f251b3161758b2f03f650a4af46b27c4daaadccae1ddb196718cf843d165", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe2b4f251b3161758b2f03f650a4af46b27c4daaadccae1ddb196718cf843d165", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e2b4f251b3161758b2f03f650a4af46b27c4daaadccae1ddb196718cf843d165", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff097ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f00000000000000000000000000000000000000000000000000000000000000000655", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x37692434" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x63edad66" + "1676520806" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest83.json b/GeneralStateTests/stRandom/randomStatetest83.json index 60d5f48dd..7478e2ffe 100644 --- a/GeneralStateTests/stRandom/randomStatetest83.json +++ b/GeneralStateTests/stRandom/randomStatetest83.json @@ -2,92 +2,77 @@ "randomStatetest83" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest83Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1015118220", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6fa1109af20740728e72150a7a9c09595560005155", + "nonce" : "0", + "storage" : { + "0x" : "0xa1109af20740728e72150a7a9c095955" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48152", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998984833674", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x6672a30686fd574d822ca9c8b4d7428f159e79d6863d4a48cd74278dec3527fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6672a30686fd574d822ca9c8b4d7428f159e79d6863d4a48cd74278dec3527fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6672a30686fd574d822ca9c8b4d7428f159e79d6863d4a48cd74278dec3527fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6672a30686fd574d822ca9c8b4d7428f159e79d6863d4a48cd74278dec3527fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6672a30686fd574d822ca9c8b4d7428f159e79d6863d4a48cd74278dec3527fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "6672a30686fd574d822ca9c8b4d7428f159e79d6863d4a48cd74278dec3527fa", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff427f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000307ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6fa1109af20740728e72150a7a9c09595560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x1845c699" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3c81798c" + "1015118220" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest84.json b/GeneralStateTests/stRandom/randomStatetest84.json index 4d47b516f..5e0ca7d7c 100644 --- a/GeneralStateTests/stRandom/randomStatetest84.json +++ b/GeneralStateTests/stRandom/randomStatetest84.json @@ -2,92 +2,76 @@ "randomStatetest84" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest84Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000001000000000000000000000000000000000000000044457f0000000000000000000000000000000000000000000000000000000000000001187f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52155955", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1283993444", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998716006602", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xaf423ed22996f4161da21729d08e3d9138d94234b778a043313bb6dcbc55d93d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xaf423ed22996f4161da21729d08e3d9138d94234b778a043313bb6dcbc55d93d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaf423ed22996f4161da21729d08e3d9138d94234b778a043313bb6dcbc55d93d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaf423ed22996f4161da21729d08e3d9138d94234b778a043313bb6dcbc55d93d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaf423ed22996f4161da21729d08e3d9138d94234b778a043313bb6dcbc55d93d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "af423ed22996f4161da21729d08e3d9138d94234b778a043313bb6dcbc55d93d", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7f000000000000000000000001000000000000000000000000000000000000000044457f0000000000000000000000000000000000000000000000000000000000000001187f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52155955", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x4c882f36" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x28841bd1" + "679746513" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest85.json b/GeneralStateTests/stRandom/randomStatetest85.json index d33f36f1e..f9ca6c74f 100644 --- a/GeneralStateTests/stRandom/randomStatetest85.json +++ b/GeneralStateTests/stRandom/randomStatetest85.json @@ -2,92 +2,77 @@ "randomStatetest85" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest85Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "994504369", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350f25b557e348ff374819d123109539b55", + "nonce" : "0", + "storage" : { + "0x01" : "0xc350" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "64654", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999005431023", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x937c4d826f55f76fcd7e9898ab074e9f44641d99c2860516a3df59c82c8eb7c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x937c4d826f55f76fcd7e9898ab074e9f44641d99c2860516a3df59c82c8eb7c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdf58551e1739386d31615d6d5ec6af7a87a7b86b5dd03ea65da6ff06eacf1309", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdf58551e1739386d31615d6d5ec6af7a87a7b86b5dd03ea65da6ff06eacf1309", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x937c4d826f55f76fcd7e9898ab074e9f44641d99c2860516a3df59c82c8eb7c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "df58551e1739386d31615d6d5ec6af7a87a7b86b5dd03ea65da6ff06eacf1309", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c350f25b557e348ff374819d123109539b55", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x4fd07f62" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3b46eeb1" + "994504369" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest87.json b/GeneralStateTests/stRandom/randomStatetest87.json index 30f28fbab..126599232 100644 --- a/GeneralStateTests/stRandom/randomStatetest87.json +++ b/GeneralStateTests/stRandom/randomStatetest87.json @@ -2,92 +2,77 @@ "randomStatetest87" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest87Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2065587657", + "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000005b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f446e638e7e16736c030393727d74817460005155", + "nonce" : "0", + "storage" : { + "0x" : "0x446e638e7e16736c030393727d748174" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47701", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999997934364688", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x02ea7864727c9a098ec279cb73ebc879752214292d2dbc1bac9ae5da63515f68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x02ea7864727c9a098ec279cb73ebc879752214292d2dbc1bac9ae5da63515f68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x02ea7864727c9a098ec279cb73ebc879752214292d2dbc1bac9ae5da63515f68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x02ea7864727c9a098ec279cb73ebc879752214292d2dbc1bac9ae5da63515f68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x02ea7864727c9a098ec279cb73ebc879752214292d2dbc1bac9ae5da63515f68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "02ea7864727c9a098ec279cb73ebc879752214292d2dbc1bac9ae5da63515f68", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000005b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe6f446e638e7e16736c030393727d74817460005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x366ad29e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x7b1e5dc9" + "2065587657" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest88.json b/GeneralStateTests/stRandom/randomStatetest88.json index f23435eae..069e1f253 100644 --- a/GeneralStateTests/stRandom/randomStatetest88.json +++ b/GeneralStateTests/stRandom/randomStatetest88.json @@ -2,92 +2,78 @@ "randomStatetest88" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest88Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1050242229", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b54343537f000000000000000000000000000000000000000000000000000000000000c350117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000016f34f06a7014541167033909103620f35560005155", + "nonce" : "0", + "storage" : { + "0x01" : "0x00", + "0x1000000000000000000000000000000000000000000000000000000000000" : "0x34f06a7014541167033909103620f355" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46744", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998949711073", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x229ff970ef4acb57cac758d145e5a793a3a656252b75dc1a1c235397b8c00f65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x229ff970ef4acb57cac758d145e5a793a3a656252b75dc1a1c235397b8c00f65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x229ff970ef4acb57cac758d145e5a793a3a656252b75dc1a1c235397b8c00f65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x229ff970ef4acb57cac758d145e5a793a3a656252b75dc1a1c235397b8c00f65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x229ff970ef4acb57cac758d145e5a793a3a656252b75dc1a1c235397b8c00f65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f657655b45bc52bde744f4f6c47a32106cea8400ecbf42381a64a9c38691d285", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b54343537f000000000000000000000000000000000000000000000000000000000000c350117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000016f34f06a7014541167033909103620f35560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +85,12 @@ "gasLimit" : [ "0x32744189" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x3e996cb5" + "1050242229" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest89.json b/GeneralStateTests/stRandom/randomStatetest89.json index 54c3c9063..7ee69c2dc 100644 --- a/GeneralStateTests/stRandom/randomStatetest89.json +++ b/GeneralStateTests/stRandom/randomStatetest89.json @@ -2,92 +2,77 @@ "randomStatetest89" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest89Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1090727739", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000016f05648ce0ad106b7a6f3483379e62876b60005155", + "nonce" : "0", + "storage" : { + "0x" : "0x05648ce0ad106b7a6f3483379e62876b" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "45072", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998909227235", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xe0627c8ceadeacfc593531291eefe7d841800d2797f83875fa419a193f18e46b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe0627c8ceadeacfc593531291eefe7d841800d2797f83875fa419a193f18e46b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe0627c8ceadeacfc593531291eefe7d841800d2797f83875fa419a193f18e46b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe0627c8ceadeacfc593531291eefe7d841800d2797f83875fa419a193f18e46b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe0627c8ceadeacfc593531291eefe7d841800d2797f83875fa419a193f18e46b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "e0627c8ceadeacfc593531291eefe7d841800d2797f83875fa419a193f18e46b", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000016f05648ce0ad106b7a6f3483379e62876b60005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x014255f0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x41032f3b" + "1090727739" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest9.json b/GeneralStateTests/stRandom/randomStatetest9.json index 442e052f4..d9b3bf38b 100644 --- a/GeneralStateTests/stRandom/randomStatetest9.json +++ b/GeneralStateTests/stRandom/randomStatetest9.json @@ -2,92 +2,77 @@ "randomStatetest9" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest9Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "217035801", + "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000016f757fb845405bf1ff959ba03a9c336b5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x757fb845405bf1ff959ba03a9c336b55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47514", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999782916731", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x019f803676516c1002a843fcc965bf4159046bef5dfd0dd645e5bdd6336ec239", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x019f803676516c1002a843fcc965bf4159046bef5dfd0dd645e5bdd6336ec239", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x019f803676516c1002a843fcc965bf4159046bef5dfd0dd645e5bdd6336ec239", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x019f803676516c1002a843fcc965bf4159046bef5dfd0dd645e5bdd6336ec239", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x019f803676516c1002a843fcc965bf4159046bef5dfd0dd645e5bdd6336ec239", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "019f803676516c1002a843fcc965bf4159046bef5dfd0dd645e5bdd6336ec239", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000000000000000000000000000000000000000000016f757fb845405bf1ff959ba03a9c336b5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x792f7334" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0cefb419" + "217035801" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest90.json b/GeneralStateTests/stRandom/randomStatetest90.json index ce5ece3cc..c906d76ee 100644 --- a/GeneralStateTests/stRandom/randomStatetest90.json +++ b/GeneralStateTests/stRandom/randomStatetest90.json @@ -2,92 +2,77 @@ "randomStatetest90" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest90Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "168858958", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff45157f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000016f116b4177f25178d7048212877e95685560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x116b4177f25178d7048212877e956855" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "47577", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999831093511", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xa2351c62118ac47b8bceaaeb770eb2cbedf263154bafe7d6bf92f4d621ad9908", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa2351c62118ac47b8bceaaeb770eb2cbedf263154bafe7d6bf92f4d621ad9908", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa2351c62118ac47b8bceaaeb770eb2cbedf263154bafe7d6bf92f4d621ad9908", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa2351c62118ac47b8bceaaeb770eb2cbedf263154bafe7d6bf92f4d621ad9908", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa2351c62118ac47b8bceaaeb770eb2cbedf263154bafe7d6bf92f4d621ad9908", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "a2351c62118ac47b8bceaaeb770eb2cbedf263154bafe7d6bf92f4d621ad9908", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff45157f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000016f116b4177f25178d7048212877e95685560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x03bbb681" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a10954e" + "168858958" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest92.json b/GeneralStateTests/stRandom/randomStatetest92.json index 9332fae6d..a6a779eef 100644 --- a/GeneralStateTests/stRandom/randomStatetest92.json +++ b/GeneralStateTests/stRandom/randomStatetest92.json @@ -2,92 +2,73 @@ "randomStatetest92" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest92Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xfdd286c5eed3fad1fd30794fbeb85cadd442d73656854307e966c326d3ca2435", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "472110012", + "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006f59640c655956799087168f0658a11a5560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x59640c655956799087168f0658a11a55" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "50650", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999527839384", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfdd286c5eed3fad1fd30794fbeb85cadd442d73656854307e966c326d3ca2435", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfdd286c5eed3fad1fd30794fbeb85cadd442d73656854307e966c326d3ca2435", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfdd286c5eed3fad1fd30794fbeb85cadd442d73656854307e966c326d3ca2435", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfdd286c5eed3fad1fd30794fbeb85cadd442d73656854307e966c326d3ca2435", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, - "postStateRoot" : "fdd286c5eed3fad1fd30794fbeb85cadd442d73656854307e966c326d3ca2435", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000100000000000000000000000000000000000000006f59640c655956799087168f0658a11a5560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +80,12 @@ "gasLimit" : [ "0x7eab2c08" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x1c23d3bc" + "472110012" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest94.json b/GeneralStateTests/stRandom/randomStatetest94.json index 0ebdaf419..08b8be9f3 100644 --- a/GeneralStateTests/stRandom/randomStatetest94.json +++ b/GeneralStateTests/stRandom/randomStatetest94.json @@ -2,92 +2,77 @@ "randomStatetest94" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest94Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "code" : "0x44444243204555", + "nonce" : "0", + "storage" : { + "0x7fffffffffffffff" : "0xae72e2bf2302ebcd309e003e5be58830f96deddaf87bb89eeea159388bfe3ec1" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "41444", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999858602", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xb8aba769f8108f1188f731797ef7ce7c362e56fba98dd004dbfd74b5b610e6e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb8aba769f8108f1188f731797ef7ce7c362e56fba98dd004dbfd74b5b610e6e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb8aba769f8108f1188f731797ef7ce7c362e56fba98dd004dbfd74b5b610e6e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb8aba769f8108f1188f731797ef7ce7c362e56fba98dd004dbfd74b5b610e6e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb8aba769f8108f1188f731797ef7ce7c362e56fba98dd004dbfd74b5b610e6e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f9daab160da6388b336998cc5b6d75c465725f00a6a0f8a9cab1ea3d1257f4cd", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x44444243204555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -97,14 +82,14 @@ "0x42" ], "gasLimit" : [ - "0x061a80" + "400000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest95.json b/GeneralStateTests/stRandom/randomStatetest95.json index 8634cc51b..2f3cc71cf 100644 --- a/GeneralStateTests/stRandom/randomStatetest95.json +++ b/GeneralStateTests/stRandom/randomStatetest95.json @@ -2,91 +2,76 @@ "randomStatetest95" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest95Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x7e83fa74", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff14447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b60005155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0xbf14", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b328df46a6", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x0cb659a91d23f40b4dfc08874dec658bc1bea4e27f6e717f0c2a7433c50bc8db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0cb659a91d23f40b4dfc08874dec658bc1bea4e27f6e717f0c2a7433c50bc8db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0cb659a91d23f40b4dfc08874dec658bc1bea4e27f6e717f0c2a7433c50bc8db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0cb659a91d23f40b4dfc08874dec658bc1bea4e27f6e717f0c2a7433c50bc8db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0cb659a91d23f40b4dfc08874dec658bc1bea4e27f6e717f0c2a7433c50bc8db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "0cb659a91d23f40b4dfc08874dec658bc1bea4e27f6e717f0c2a7433c50bc8db", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x00", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff14447ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b60005155", "nonce" : "0x00", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x2e", "code" : "0x6000355415600957005b60203560003555", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -101,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x7e83fa74" ] diff --git a/GeneralStateTests/stRandom/randomStatetest96.json b/GeneralStateTests/stRandom/randomStatetest96.json index 11cce394e..2b09febbf 100644 --- a/GeneralStateTests/stRandom/randomStatetest96.json +++ b/GeneralStateTests/stRandom/randomStatetest96.json @@ -2,92 +2,77 @@ "randomStatetest96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest96Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1246597060", + "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006f183b68a09b08953085a854a39d92125560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x183b68a09b08953085a854a39d921255" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "48666", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999998753354320", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0x7097041c5d18f36344b2cc11ee9d666a847ff15db9f6294654ef24f2f19929ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7097041c5d18f36344b2cc11ee9d666a847ff15db9f6294654ef24f2f19929ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7097041c5d18f36344b2cc11ee9d666a847ff15db9f6294654ef24f2f19929ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7097041c5d18f36344b2cc11ee9d666a847ff15db9f6294654ef24f2f19929ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7097041c5d18f36344b2cc11ee9d666a847ff15db9f6294654ef24f2f19929ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "7097041c5d18f36344b2cc11ee9d666a847ff15db9f6294654ef24f2f19929ed", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b57f00000000000000000000000100000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000c3507f00000000000000000000000000000000000000000000000000000000000000017f00000000000000000000000100000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006f183b68a09b08953085a854a39d92125560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +84,12 @@ "gasLimit" : [ "0x569e0238" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x4a4d8fc4" + "1246597060" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest97.json b/GeneralStateTests/stRandom/randomStatetest97.json index d19384ffa..c3753921f 100644 --- a/GeneralStateTests/stRandom/randomStatetest97.json +++ b/GeneralStateTests/stRandom/randomStatetest97.json @@ -2,92 +2,76 @@ "randomStatetest97" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest97Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", + "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5587f0000000000000000000000000000000000000000000000000000000000000001957f0000000000000000000000000000000000000000000000000000000000000000407f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3509781040107338b35071887a186", + "nonce" : "0", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "71266589", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999928733457", + "code" : "0x", + "nonce" : "1", + "storage" : { + } + } + } + } + ], "logs" : [ ], "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xf6138f5e594083610a5e80c269b7cd74a9afb59150aee99257d0c835454b3b1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf6138f5e594083610a5e80c269b7cd74a9afb59150aee99257d0c835454b3b1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf6138f5e594083610a5e80c269b7cd74a9afb59150aee99257d0c835454b3b1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf6138f5e594083610a5e80c269b7cd74a9afb59150aee99257d0c835454b3b1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf6138f5e594083610a5e80c269b7cd74a9afb59150aee99257d0c835454b3b1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, "postStateRoot" : "f6138f5e594083610a5e80c269b7cd74a9afb59150aee99257d0c835454b3b1e", "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5587f0000000000000000000000000000000000000000000000000000000000000001957f0000000000000000000000000000000000000000000000000000000000000000407f00000000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000c3509781040107338b35071887a186", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +83,12 @@ "gasLimit" : [ "0x043f70ef" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x14008cb2" + "335580338" ] } } diff --git a/GeneralStateTests/stRandom/randomStatetest98.json b/GeneralStateTests/stRandom/randomStatetest98.json index c2b0778e4..159c60581 100644 --- a/GeneralStateTests/stRandom/randomStatetest98.json +++ b/GeneralStateTests/stRandom/randomStatetest98.json @@ -2,92 +2,74 @@ "randomStatetest98" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRandom/randomStatetest98Filler.json" }, "env" : { - "currentCoinbase" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "currentCoinbase" : "945304eb96065b2a98b57a48a06ae28d285a71b5", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "logs" : [ - ], - "out" : "0x", - "post" : { - "EIP150" : [ - { - "hash" : "0xfd62157f6c26de8b9d4ffd2eb863ba304c392d1c21023837bc05a6eeed2b6d68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "588937108", + "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000000b085560005155", + "nonce" : "0", + "storage" : { + "0x" : "0x945304eb96065b2a98b57a48a06ae28d285a71b5", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "72139", + "code" : "0x6000355415600957005b60203560003555", + "nonce" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999410990799", + "code" : "0x", + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfd62157f6c26de8b9d4ffd2eb863ba304c392d1c21023837bc05a6eeed2b6d68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfd62157f6c26de8b9d4ffd2eb863ba304c392d1c21023837bc05a6eeed2b6d68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfd62157f6c26de8b9d4ffd2eb863ba304c392d1c21023837bc05a6eeed2b6d68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfd62157f6c26de8b9d4ffd2eb863ba304c392d1c21023837bc05a6eeed2b6d68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, - "postStateRoot" : "fd62157f6c26de8b9d4ffd2eb863ba304c392d1c21023837bc05a6eeed2b6d68", + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "0x7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000945304eb96065b2a98b57a48a06ae28d285a71b5417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000000b085560005155", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x2e", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "46", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -99,12 +81,12 @@ "gasLimit" : [ "0x7b652299" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x231a7794" + "588937108" ] } } diff --git a/GeneralStateTests/stRecursiveCreate/recursiveCreate.json b/GeneralStateTests/stRecursiveCreate/recursiveCreate.json index c6ccbcc70..eaf24366f 100644 --- a/GeneralStateTests/stRecursiveCreate/recursiveCreate.json +++ b/GeneralStateTests/stRecursiveCreate/recursiveCreate.json @@ -2,81 +2,86 @@ "recursiveCreate" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRecursiveCreate/recursiveCreateFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdae969656b73697b81572a709160104ca9521bbe111edbc58edb8f9238962424", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "465224" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "nonce" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0x7a598d472ac1ab495bbec7f2f48b8b05a3c1c4feade8cc9cfb9f71e7a711dbc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xeee65c3186265472b087f52db4d1f5f9b9dc232c57b5749e1dd80a53165f6cb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xeee65c3186265472b087f52db4d1f5f9b9dc232c57b5749e1dd80a53165f6cb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "425616" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "nonce" : "0x01" } } - ], - "Metropolis" : [ - { - "hash" : "0x7a598d472ac1ab495bbec7f2f48b8b05a3c1c4feade8cc9cfb9f71e7a711dbc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "425616" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "nonce" : "0x02" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x60206000600039602060006000f0", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{(CODECOPY 0 0 32)(CREATE 0 0 32)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +91,14 @@ "" ], "gasLimit" : [ - "0x071948" + "465224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRecursiveCreate/recursiveCreateReturnValue.json b/GeneralStateTests/stRecursiveCreate/recursiveCreateReturnValue.json index 513cf7e8e..7a949afec 100644 --- a/GeneralStateTests/stRecursiveCreate/recursiveCreateReturnValue.json +++ b/GeneralStateTests/stRecursiveCreate/recursiveCreateReturnValue.json @@ -2,81 +2,86 @@ "recursiveCreateReturnValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRecursiveCreate/recursiveCreateReturnValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc2a798315acf78203651d94d1b9d27d5a87c03d5a685e94c471889fe460f3b86", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "53357900" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "nonce" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0xeed4be82aa0dde10ee02374b2819bb8139b434727471da31037c12dc57276218", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5c22bc6ec2ea240c8170de424002a2b5c93bfd2b3ac1c2cf8cb92cb5f549b17d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5c22bc6ec2ea240c8170de424002a2b5c93bfd2b3ac1c2cf8cb92cb5f549b17d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "20189484" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "nonce" : "0x01" } } - ], - "Metropolis" : [ - { - "hash" : "0xeed4be82aa0dde10ee02374b2819bb8139b434727471da31037c12dc57276218", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "20189484" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "nonce" : "0x02" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x602060006000396001602060006000f001600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{(CODECOPY 0 0 32) [[ 0 ]] (ADD (CREATE 0 0 32) 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +91,14 @@ "" ], "gasLimit" : [ - "0x3b9aca00" + "1000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stRefundTest/refund50_1.json b/GeneralStateTests/stRefundTest/refund50_1.json index 664fa0507..ef880b24a 100644 --- a/GeneralStateTests/stRefundTest/refund50_1.json +++ b/GeneralStateTests/stRefundTest/refund50_1.json @@ -2,74 +2,47 @@ "refund50_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund50_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb0c57a1107e5d2f752d931cb42167d1893902c6cf4b563edf64efee021e2fe35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "23015" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "76985", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xb0c57a1107e5d2f752d931cb42167d1893902c6cf4b563edf64efee021e2fe35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb0c57a1107e5d2f752d931cb42167d1893902c6cf4b563edf64efee021e2fe35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb0c57a1107e5d2f752d931cb42167d1893902c6cf4b563edf64efee021e2fe35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb0c57a1107e5d2f752d931cb42167d1893902c6cf4b563edf64efee021e2fe35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006001556000600255600060035560006004556000600555", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 }", + "nonce" : "0", "storage" : { "0x01" : "0x01", "0x02" : "0x01", @@ -78,10 +51,10 @@ "0x05" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -91,14 +64,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRefundTest/refund50_2.json b/GeneralStateTests/stRefundTest/refund50_2.json index 5d33f908b..f54e672e1 100644 --- a/GeneralStateTests/stRefundTest/refund50_2.json +++ b/GeneralStateTests/stRefundTest/refund50_2.json @@ -2,74 +2,49 @@ "refund50_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund50_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x87dd26d566e797f0eee168936579dd677afebf184b84618988bf7b4c3289d0ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0a" : "0x01", + "0x0b" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "43021" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "56979", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x87dd26d566e797f0eee168936579dd677afebf184b84618988bf7b4c3289d0ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x87dd26d566e797f0eee168936579dd677afebf184b84618988bf7b4c3289d0ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x87dd26d566e797f0eee168936579dd677afebf184b84618988bf7b4c3289d0ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x87dd26d566e797f0eee168936579dd677afebf184b84618988bf7b4c3289d0ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001600a556001600b5560006001556000600255600060035560006004556000600555", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 10 ]] 1 [[ 11 ]] 1 [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 }", + "nonce" : "0", "storage" : { "0x01" : "0x01", "0x02" : "0x01", @@ -78,10 +53,10 @@ "0x05" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -91,14 +66,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRefundTest/refund50percentCap.json b/GeneralStateTests/stRefundTest/refund50percentCap.json index 1939caf42..0a871e2ad 100644 --- a/GeneralStateTests/stRefundTest/refund50percentCap.json +++ b/GeneralStateTests/stRefundTest/refund50percentCap.json @@ -2,74 +2,97 @@ "refund50percentCap" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund50percentCapFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6991ae521e7e1d6d7750429e0883daf7fbb898d06a7a0bf70e95193ba314e33d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0a" : "0x8000000000000000000000000000000000000000000000000000000000000000", + "0x0b" : "0x0de0b6b3a7640000" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "45545" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "54455" } } - ], - "EIP158" : [ - { - "hash" : "0x5dc1d4933650bbb07cb3850b8ab6a47ed69d60d3e220cfe14bcd3cf3fdbe2fe9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6b8cb17a93315e8736d19126421e6d902877b80c26442a22b99dbf4ce1c063f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6b8cb17a93315e8736d19126421e6d902877b80c26442a22b99dbf4ce1c063f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0a" : "0x8000000000000000000000000000000000000000000000000000000000000000", + "0x0b" : "0x0de0b6b3a7640000" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "45735" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "54265" } } - ], - "Metropolis" : [ - { - "hash" : "0x5dc1d4933650bbb07cb3850b8ab6a47ed69d60d3e220cfe14bcd3cf3fdbe2fe9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0a" : "0x8000000000000000000000000000000000000000000000000000000000000000", + "0x0b" : "0x0de0b6b3a7640000" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "45755" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "54245" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff60020a600a553031600b55600060015560006002556000600355600060045560006005556000600655", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ @@1 @@2 [[ 10 ]] (EXP 2 0xff) [[ 11 ]] (BALANCE (ADDRESS)) [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 [[ 6 ]] 0 }", + "nonce" : "0", "storage" : { "0x01" : "0x01", "0x02" : "0x01", @@ -79,10 +102,10 @@ "0x06" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -92,14 +115,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRefundTest/refund600.json b/GeneralStateTests/stRefundTest/refund600.json index 52ea08516..b89cf7cf2 100644 --- a/GeneralStateTests/stRefundTest/refund600.json +++ b/GeneralStateTests/stRefundTest/refund600.json @@ -2,74 +2,94 @@ "refund600" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund600Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x370547e05d6e27ff92e21369072a418842438071d30790d09bea87c17e69828a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0b" : "0x0de0b6b3a7640000" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "38050" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "61950" } } - ], - "EIP158" : [ - { - "hash" : "0xb17757d3d6ac1ae9cd042db317fec1ed386ff43fede64a631be9628977c3a76b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x97a63e88dde1aba3e542f3f9fb3170fc071631900e422b2316bd585ce4ef591b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x97a63e88dde1aba3e542f3f9fb3170fc071631900e422b2316bd585ce4ef591b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0b" : "0x0de0b6b3a7640000" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "38240" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "61760" } } - ], - "Metropolis" : [ - { - "hash" : "0xb17757d3d6ac1ae9cd042db317fec1ed386ff43fede64a631be9628977c3a76b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0b" : "0x0de0b6b3a7640000" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "38280" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "61720" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x61ffff60020a600a553031600b55600060015560006002556000600355600060045560006005556000600655", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ @@1 @@2 [[ 10 ]] (EXP 2 0xffff) [[ 11 ]] (BALANCE (ADDRESS)) [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 [[ 6 ]] 0 }", + "nonce" : "0", "storage" : { "0x01" : "0x01", "0x02" : "0x01", @@ -79,10 +99,10 @@ "0x06" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -92,14 +112,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRefundTest/refundSuicide50procentCap.json b/GeneralStateTests/stRefundTest/refundSuicide50procentCap.json index 693133092..1f3dd42a9 100644 --- a/GeneralStateTests/stRefundTest/refundSuicide50procentCap.json +++ b/GeneralStateTests/stRefundTest/refundSuicide50procentCap.json @@ -2,114 +2,80 @@ "refundSuicide50procentCap" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refundSuicide50procentCapFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x998d7e2c48aff9cff42c4523286cb54ff41e7c95180fffc3edfa578442c1df49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e77c7b31e23ec766e220bcc32285e817d14ec7015d9622a993931c76bb33cb3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x998d7e2c48aff9cff42c4523286cb54ff41e7c95180fffc3edfa578442c1df49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e77c7b31e23ec766e220bcc32285e817d14ec7015d9622a993931c76bb33cb3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8c91c8617b0a81c6e83299b207ab29fed428ef8196382620506086d051b440cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x9d832422b810e981abf1a62ccf61ff5a030f763e9fdb97dc7a0044c9e4246473", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0a" : "0x01", + "0x0b" : "0x01", + "0x16" : "0x984376", + "0x17" : "0x96bc55" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "70695" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "9929305", + "nonce" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0x8c91c8617b0a81c6e83299b207ab29fed428ef8196382620506086d051b440cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9d832422b810e981abf1a62ccf61ff5a030f763e9fdb97dc7a0044c9e4246473", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x998d7e2c48aff9cff42c4523286cb54ff41e7c95180fffc3edfa578442c1df49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x1e77c7b31e23ec766e220bcc32285e817d14ec7015d9622a993931c76bb33cb3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x0a" : "0x01", + "0x0b" : "0x01", + "0x16" : "0x9843b6", + "0x17" : "0x96a679" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "73493" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "9926507", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x5a6016556001600a556000600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552aaa600035f1600b55600060015560006002556000600355600060045560006005556000600655600060075560006008555a601755", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 22 ]] (GAS) [[ 10 ]] 1 [[ 11 ]] (CALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 ) [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 [[ 6 ]] 0 [[ 7 ]] 0 [[ 8 ]] 0 [[ 23 ]] (GAS) }", + "nonce" : "0", "storage" : { "0x01" : "0x01", "0x02" : "0x01", @@ -121,17 +87,17 @@ "0x08" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x989680", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x73095e7baea6a6c7c4c2dfeb977efac326af552d87ff", - "nonce" : "0x00", + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", "storage" : { } } @@ -142,14 +108,14 @@ "0x0000000000000000000000000000000000000000000000000000000000010000" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_CallA.json b/GeneralStateTests/stRefundTest/refund_CallA.json index a9c986fbf..829c7dc91 100644 --- a/GeneralStateTests/stRefundTest/refund_CallA.json +++ b/GeneralStateTests/stRefundTest/refund_CallA.json @@ -2,89 +2,101 @@ "refund_CallA" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_CallAFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc27ddf21d26bd13f5e895075c046c5b3346f190f7c2dc74600c0665275153ccf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31070" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1968920", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc27ddf21d26bd13f5e895075c046c5b3346f190f7c2dc74600c0665275153ccf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2a379a44a3742aa7fa1abc25a43678a54e1dd0f03ac34a40715314cd09855773", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2a379a44a3742aa7fa1abc25a43678a54e1dd0f03ac34a40715314cd09855773", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc27ddf21d26bd13f5e895075c046c5b3346f190f7c2dc74600c0665275153ccf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31730" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1968260", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552aaa61157cf1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 5500 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1e8480", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600155", - "nonce" : "0x00", + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } @@ -95,14 +107,14 @@ "" ], "gasLimit" : [ - "0x030d40" + "200000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_CallA_OOG.json b/GeneralStateTests/stRefundTest/refund_CallA_OOG.json index 1a7243ce1..7794e5255 100644 --- a/GeneralStateTests/stRefundTest/refund_CallA_OOG.json +++ b/GeneralStateTests/stRefundTest/refund_CallA_OOG.json @@ -2,89 +2,69 @@ "refund_CallA_OOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_CallA_OOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xca233b283fda9c6080af30a12f19b13f117d75d3c06ef83671fd881e0c52db6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "storage" : { + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31069" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "268931", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xca233b283fda9c6080af30a12f19b13f117d75d3c06ef83671fd881e0c52db6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xca233b283fda9c6080af30a12f19b13f117d75d3c06ef83671fd881e0c52db6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xca233b283fda9c6080af30a12f19b13f117d75d3c06ef83671fd881e0c52db6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xca233b283fda9c6080af30a12f19b13f117d75d3c06ef83671fd881e0c52db6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552aaa611770f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 6000 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0493e0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "300000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600155", - "nonce" : "0x00", + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } @@ -95,14 +75,14 @@ "" ], "gasLimit" : [ - "0x795d" + "31069" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_CallA_notEnoughGasInCall.json b/GeneralStateTests/stRefundTest/refund_CallA_notEnoughGasInCall.json index 054fe872b..8fc314775 100644 --- a/GeneralStateTests/stRefundTest/refund_CallA_notEnoughGasInCall.json +++ b/GeneralStateTests/stRefundTest/refund_CallA_notEnoughGasInCall.json @@ -2,89 +2,101 @@ "refund_CallA_notEnoughGasInCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_CallA_notEnoughGasInCallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2aca4c21c2d51b4fbe64301f84fb5cfa12ffd311c52f5222204150758e610eac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31069" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "68921", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2aca4c21c2d51b4fbe64301f84fb5cfa12ffd311c52f5222204150758e610eac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaffeb3f7f719c9679a6295f2600b29777de1836809d86f405d7db2b67d2c2d63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaffeb3f7f719c9679a6295f2600b29777de1836809d86f405d7db2b67d2c2d63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2aca4c21c2d51b4fbe64301f84fb5cfa12ffd311c52f5222204150758e610eac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "31729" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "68261", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552aaa61138df1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 5005 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600155", - "nonce" : "0x00", + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } @@ -95,14 +107,14 @@ "" ], "gasLimit" : [ - "0x014c08" + "85000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_CallToSuicideNoStorage.json b/GeneralStateTests/stRefundTest/refund_CallToSuicideNoStorage.json index 3ba24d5c0..37ee32b46 100644 --- a/GeneralStateTests/stRefundTest/refund_CallToSuicideNoStorage.json +++ b/GeneralStateTests/stRefundTest/refund_CallToSuicideNoStorage.json @@ -2,129 +2,93 @@ "refund_CallToSuicideNoStorage" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_CallToSuicideNoStorageFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x23864f00568ee06c4fa976e7486076c878c7769477079ef6ec7263d3efbeb06c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd2712850b9220fed8fded4dd69b08262c33b3cefe7dae41d8ee947b324229b08", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x23864f00568ee06c4fa976e7486076c878c7769477079ef6ec7263d3efbeb06c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd2712850b9220fed8fded4dd69b08262c33b3cefe7dae41d8ee947b324229b08", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x72d1e43979b3fff788ea533c0b363ac0cb6f7ae6b71f3a8cf4a2d223b9a90136", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xb7e56361ab3129e79e9370a0c108fe52bc078753a73e9d76356eb5bedc8eed75", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "20663" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99979327", + "nonce" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0x72d1e43979b3fff788ea533c0b363ac0cb6f7ae6b71f3a8cf4a2d223b9a90136", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb7e56361ab3129e79e9370a0c108fe52bc078753a73e9d76356eb5bedc8eed75", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x23864f00568ee06c4fa976e7486076c878c7769477079ef6ec7263d3efbeb06c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xd2712850b9220fed8fded4dd69b08262c33b3cefe7dae41d8ee947b324229b08", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "23461" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99976529", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552aaa600035f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x73095e7baea6a6c7c4c2dfeb977efac326af552d87ff", - "nonce" : "0x00", + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", "storage" : { } } @@ -135,14 +99,14 @@ "0x0000000000000000000000000000000000000000000000000000000000010000" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_CallToSuicideStorage.json b/GeneralStateTests/stRefundTest/refund_CallToSuicideStorage.json index ffc0ac469..6e315f712 100644 --- a/GeneralStateTests/stRefundTest/refund_CallToSuicideStorage.json +++ b/GeneralStateTests/stRefundTest/refund_CallToSuicideStorage.json @@ -2,129 +2,96 @@ "refund_CallToSuicideStorage" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_CallToSuicideStorageFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa587ffe584ff984c6bd8710c40dc42c5f6aac60f280a01967d6c4f43249dd786", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd2712850b9220fed8fded4dd69b08262c33b3cefe7dae41d8ee947b324229b08", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa587ffe584ff984c6bd8710c40dc42c5f6aac60f280a01967d6c4f43249dd786", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd2712850b9220fed8fded4dd69b08262c33b3cefe7dae41d8ee947b324229b08", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x72d1e43979b3fff788ea533c0b363ac0cb6f7ae6b71f3a8cf4a2d223b9a90136", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xb7e56361ab3129e79e9370a0c108fe52bc078753a73e9d76356eb5bedc8eed75", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "20663" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99979327", + "nonce" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0x72d1e43979b3fff788ea533c0b363ac0cb6f7ae6b71f3a8cf4a2d223b9a90136", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb7e56361ab3129e79e9370a0c108fe52bc078753a73e9d76356eb5bedc8eed75", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa587ffe584ff984c6bd8710c40dc42c5f6aac60f280a01967d6c4f43249dd786", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xd2712850b9220fed8fded4dd69b08262c33b3cefe7dae41d8ee947b324229b08", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "23461" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99976529", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552aaa600035f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x73095e7baea6a6c7c4c2dfeb977efac326af552d87ff", - "nonce" : "0x00", + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } @@ -136,14 +103,14 @@ "0x0000000000000000000000000000000000000000000000000000000000010000" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_CallToSuicideTwice.json b/GeneralStateTests/stRefundTest/refund_CallToSuicideTwice.json index 4ab78b3cb..0e90c81e2 100644 --- a/GeneralStateTests/stRefundTest/refund_CallToSuicideTwice.json +++ b/GeneralStateTests/stRefundTest/refund_CallToSuicideTwice.json @@ -2,129 +2,99 @@ "refund_CallToSuicideTwice" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_CallToSuicideTwiceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3a7b51222887418341a17d6348a7bb892e7af3d9aeda9ca704cd2d0717695e01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc3f51c7a52752e0bd11b975c85a7da9f8cb61b2a1169aed57c2448468d8d7876", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3a7b51222887418341a17d6348a7bb892e7af3d9aeda9ca704cd2d0717695e01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc3f51c7a52752e0bd11b975c85a7da9f8cb61b2a1169aed57c2448468d8d7876", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x760cadb9d8b99f6f9ddd673d76bb3aad04ac4f4c87ed21ceab6a859320aee2ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x8fc808b98eebf12445af1aad861dd1294f909f06648588191ff698f78373e5bd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "20697" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99979293", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "shouldnotexist" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0x760cadb9d8b99f6f9ddd673d76bb3aad04ac4f4c87ed21ceab6a859320aee2ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8fc808b98eebf12445af1aad861dd1294f909f06648588191ff698f78373e5bd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3a7b51222887418341a17d6348a7bb892e7af3d9aeda9ca704cd2d0717695e01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xc3f51c7a52752e0bd11b975c85a7da9f8cb61b2a1169aed57c2448468d8d7876", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "28649" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99971341", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552aaa600035f16000556000600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552aaa600035f1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 ) (CALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x73095e7baea6a6c7c4c2dfeb977efac326af552d87ff", - "nonce" : "0x00", + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } @@ -136,14 +106,14 @@ "0x0000000000000000000000000000000000000000000000000000000000010000" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_NoOOG_1.json b/GeneralStateTests/stRefundTest/refund_NoOOG_1.json index 916858024..a70a7c28f 100644 --- a/GeneralStateTests/stRefundTest/refund_NoOOG_1.json +++ b/GeneralStateTests/stRefundTest/refund_NoOOG_1.json @@ -2,82 +2,55 @@ "refund_NoOOG_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_NoOOG_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xefa813dd4ded8a43953d20b6bbf5fb1b76a0aad9190a8bb755e1c98079f9da6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "13003" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "37197", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xefa813dd4ded8a43953d20b6bbf5fb1b76a0aad9190a8bb755e1c98079f9da6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xefa813dd4ded8a43953d20b6bbf5fb1b76a0aad9190a8bb755e1c98079f9da6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xefa813dd4ded8a43953d20b6bbf5fb1b76a0aad9190a8bb755e1c98079f9da6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xefa813dd4ded8a43953d20b6bbf5fb1b76a0aad9190a8bb755e1c98079f9da6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xc418", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "50200", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -87,14 +60,14 @@ "" ], "gasLimit" : [ - "0x6596" + "26006" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_OOG.json b/GeneralStateTests/stRefundTest/refund_OOG.json index 66651a4b0..344dbed56 100644 --- a/GeneralStateTests/stRefundTest/refund_OOG.json +++ b/GeneralStateTests/stRefundTest/refund_OOG.json @@ -2,82 +2,57 @@ "refund_OOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_OOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xda1d8b53222911d4edd86fb42ac017c3e1b219d7150007721307b676a6bc38c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "storage" : { + "0x01" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "26005" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "473995", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xda1d8b53222911d4edd86fb42ac017c3e1b219d7150007721307b676a6bc38c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xda1d8b53222911d4edd86fb42ac017c3e1b219d7150007721307b676a6bc38c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xda1d8b53222911d4edd86fb42ac017c3e1b219d7150007721307b676a6bc38c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xda1d8b53222911d4edd86fb42ac017c3e1b219d7150007721307b676a6bc38c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07a120", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "500000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -87,14 +62,14 @@ "" ], "gasLimit" : [ - "0x6595" + "26005" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_TxToSuicide.json b/GeneralStateTests/stRefundTest/refund_TxToSuicide.json index 6e134578c..af4eaf6b2 100644 --- a/GeneralStateTests/stRefundTest/refund_TxToSuicide.json +++ b/GeneralStateTests/stRefundTest/refund_TxToSuicide.json @@ -2,121 +2,87 @@ "refund_TxToSuicide" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_TxToSuicideFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x97942568ec40081407f0f17c744174685bf56c4bec7405d45837e7e6e203d5b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x88fb9e0f28bdde3b8d5d2a9c029c0be25e03e3c66c0f2d694f2923df35ef5e6f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x97942568ec40081407f0f17c744174685bf56c4bec7405d45837e7e6e203d5b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x88fb9e0f28bdde3b8d5d2a9c029c0be25e03e3c66c0f2d694f2923df35ef5e6f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x51f254aed97a3c85e6ad2deb73214a0888fd23d42984d16d3f099ac1b1c5b2da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0x51f254aed97a3c85e6ad2deb73214a0888fd23d42984d16d3f099ac1b1c5b2da", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "10502" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99989488", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "shouldnotexist" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0x51f254aed97a3c85e6ad2deb73214a0888fd23d42984d16d3f099ac1b1c5b2da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x51f254aed97a3c85e6ad2deb73214a0888fd23d42984d16d3f099ac1b1c5b2da", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x97942568ec40081407f0f17c744174685bf56c4bec7405d45837e7e6e203d5b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x88fb9e0f28bdde3b8d5d2a9c029c0be25e03e3c66c0f2d694f2923df35ef5e6f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "27003" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99972987", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x73095e7baea6a6c7c4c2dfeb977efac326af552d87ff", - "nonce" : "0x00", + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } @@ -127,15 +93,15 @@ "" ], "gasLimit" : [ - "0x520b", - "0xee4b" + "21003", + "61003" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "aaae7baea6a6c7c4c2dfeb977efac326af552aaa", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_TxToSuicideOOG.json b/GeneralStateTests/stRefundTest/refund_TxToSuicideOOG.json index c3af0a3ec..826803653 100644 --- a/GeneralStateTests/stRefundTest/refund_TxToSuicideOOG.json +++ b/GeneralStateTests/stRefundTest/refund_TxToSuicideOOG.json @@ -2,81 +2,56 @@ "refund_TxToSuicideOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_TxToSuicideOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7c2147eefb0539a33353f7f1d753dd0d1185993a327c2e6c3a2334fca5ac0f26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21002" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99978998", + "nonce" : "1" + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7c2147eefb0539a33353f7f1d753dd0d1185993a327c2e6c3a2334fca5ac0f26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7c2147eefb0539a33353f7f1d753dd0d1185993a327c2e6c3a2334fca5ac0f26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7c2147eefb0539a33353f7f1d753dd0d1185993a327c2e6c3a2334fca5ac0f26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7c2147eefb0539a33353f7f1d753dd0d1185993a327c2e6c3a2334fca5ac0f26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x73095e7baea6a6c7c4c2dfeb977efac326af552d87ff", - "nonce" : "0x00", + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } @@ -87,14 +62,14 @@ "" ], "gasLimit" : [ - "0x520a" + "21002" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "aaae7baea6a6c7c4c2dfeb977efac326af552aaa", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_changeNonZeroStorage.json b/GeneralStateTests/stRefundTest/refund_changeNonZeroStorage.json index 97487c501..a1a45c471 100644 --- a/GeneralStateTests/stRefundTest/refund_changeNonZeroStorage.json +++ b/GeneralStateTests/stRefundTest/refund_changeNonZeroStorage.json @@ -2,82 +2,57 @@ "refund_changeNonZeroStorage" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_changeNonZeroStorageFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc9e05a8fa968fe4a701b529e0fa662e0584e47ce365af374f51a68936fa6781f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x01" : "0x17" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "26006" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "973984", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xc9e05a8fa968fe4a701b529e0fa662e0584e47ce365af374f51a68936fa6781f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc9e05a8fa968fe4a701b529e0fa662e0584e47ce365af374f51a68936fa6781f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc9e05a8fa968fe4a701b529e0fa662e0584e47ce365af374f51a68936fa6781f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc9e05a8fa968fe4a701b529e0fa662e0584e47ce365af374f51a68936fa6781f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6017600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 23 }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -87,14 +62,14 @@ "" ], "gasLimit" : [ - "0x037c94" + "228500" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_getEtherBack.json b/GeneralStateTests/stRefundTest/refund_getEtherBack.json index 0fd248d9e..2c22d3128 100644 --- a/GeneralStateTests/stRefundTest/refund_getEtherBack.json +++ b/GeneralStateTests/stRefundTest/refund_getEtherBack.json @@ -2,82 +2,56 @@ "refund_getEtherBack" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_getEtherBackFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x037c94", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "228500", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa0159f6905643874597ab3c5a4adfadcd07e113c4c4ac4c5bc54c1ef7a71a005", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "13003" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2271987", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xa0159f6905643874597ab3c5a4adfadcd07e113c4c4ac4c5bc54c1ef7a71a005", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa0159f6905643874597ab3c5a4adfadcd07e113c4c4ac4c5bc54c1ef7a71a005", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa0159f6905643874597ab3c5a4adfadcd07e113c4c4ac4c5bc54c1ef7a71a005", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa0159f6905643874597ab3c5a4adfadcd07e113c4c4ac4c5bc54c1ef7a71a005", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x22ddc8", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2285000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -87,14 +61,14 @@ "" ], "gasLimit" : [ - "0x037c94" + "228500" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_multimpleSuicide.json b/GeneralStateTests/stRefundTest/refund_multimpleSuicide.json index bfed0e29a..8f2d75435 100644 --- a/GeneralStateTests/stRefundTest/refund_multimpleSuicide.json +++ b/GeneralStateTests/stRefundTest/refund_multimpleSuicide.json @@ -2,81 +2,98 @@ "refund_multimpleSuicide" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_multimpleSuicideFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf86cd78f87f71a92c8db138f99e6ce104e81b30bbafac118127ec5057148aa99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "10984" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "289016", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x6d682e26dc5364fc47db5306aea09899760ac2bd4b89229bfbf62b784ab1866d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4565006352de0399e17ac6cc3671ca2fa94e553df037f6df5fed7f966a04ba84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4565006352de0399e17ac6cc3671ca2fa94e553df037f6df5fed7f966a04ba84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "16644" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "283356", + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x6d682e26dc5364fc47db5306aea09899760ac2bd4b89229bfbf62b784ab1866d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "16724" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "283276", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", "code" : "0x606060405260e060020a600035046309e587a58114610031578063c04062261461004d578063dd4f1f2a1461005a575b005b61002f3373ffffffffffffffffffffffffffffffffffffffff16ff5b6100f5600061010961005e565b61002f5b60003090508073ffffffffffffffffffffffffffffffffffffffff166309e587a56040518160e060020a0281526004018090506000604051808303816000876161da5a03f1156100025750604080517f09e587a500000000000000000000000000000000000000000000000000000000815290516004828101926000929190829003018183876161da5a03f1156100025750505050565b604080519115158252519081900360200190f35b5060019056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0493e0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "300000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +103,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000001", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000001", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRefundTest/refund_singleSuicide.json b/GeneralStateTests/stRefundTest/refund_singleSuicide.json index f1c982deb..97de45d6f 100644 --- a/GeneralStateTests/stRefundTest/refund_singleSuicide.json +++ b/GeneralStateTests/stRefundTest/refund_singleSuicide.json @@ -2,81 +2,98 @@ "refund_singleSuicide" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRefundTest/refund_singleSuicideFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6f5cbf09a8693d41dec28d7b4ada05d6cb4cc00029ee9311721903060039fd50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "10881" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "289119", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x470504afdd4f770328e7e01c552f262cc55996fc83cc5fe05c825fda6b50312c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xba2fd14cc4799bf049ebc512a6e27a5c4678bf5ae0834659f9179ed3049ff4ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xba2fd14cc4799bf049ebc512a6e27a5c4678bf5ae0834659f9179ed3049ff4ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "13711" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "286289", + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x470504afdd4f770328e7e01c552f262cc55996fc83cc5fe05c825fda6b50312c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "13771" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "286229", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", "code" : "0x606060405260e060020a600035046309e587a58114602e5780632e4699ed146049578063c040622614609b575b005b602c3373ffffffffffffffffffffffffffffffffffffffff16ff5b602c5b60003090508073ffffffffffffffffffffffffffffffffffffffff166309e587a56040518160e060020a0281526004018090506000604051808303816000876161da5a03f11560025750505050565b60a5600060b9604c565b604080519115158252519081900360200190f35b5060019056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0493e0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "300000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +103,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000001", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000001", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_0_0_following_successful_create.json b/GeneralStateTests/stReturnDataTest/returndatacopy_0_0_following_successful_create.json index 5cea5b32e..9cb9ee514 100644 --- a/GeneralStateTests/stReturnDataTest/returndatacopy_0_0_following_successful_create.json +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_0_0_following_successful_create.json @@ -2,7 +2,7 @@ "returndatacopy_0_0_following_successful_create" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json" }, "env" : { @@ -13,62 +13,57 @@ "currentTimestamp" : "0x03e8", "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe4cebf89f5dd511ecb89b3e97ce05d1225202ff5ce2b0b9d81c96892694ac020", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "shouldexist" : false } } - ], - "EIP158" : [ - { - "hash" : "0xe4cebf89f5dd511ecb89b3e97ce05d1225202ff5ce2b0b9d81c96892694ac020", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe4cebf89f5dd511ecb89b3e97ce05d1225202ff5ce2b0b9d81c96892694ac020", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe4cebf89f5dd511ecb89b3e97ce05d1225202ff5ce2b0b9d81c96892694ac020", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe5612a75f1f88badf3d4faf86108f59eb5c568d658cd7fb37f1fbf8fcf96f307", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x00" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "0x600580601b60003960006000f0506000600060003e6000600055006001600055", + "code" : "{ (create 0 0 (lll {(SSTORE 0 1)} 0)) (RETURNDATACOPY 0 0 0) (SSTORE 0 0) }", "nonce" : "0x00", "storage" : { "0x00" : "0x01" diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_following_call.json b/GeneralStateTests/stReturnDataTest/returndatacopy_following_call.json index 06a81fa16..eaef1c5a2 100644 --- a/GeneralStateTests/stReturnDataTest/returndatacopy_following_call.json +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_following_call.json @@ -2,7 +2,7 @@ "returndatacopy_following_call" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_callFiller.json" }, "env" : { @@ -13,69 +13,56 @@ "currentTimestamp" : "0x03e8", "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdc9c9102b736700c272f9094c3ae852acbe458ebba5a34a119a6917cbfafc1c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158", + "Frontier", + "Homestead" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdc9c9102b736700c272f9094c3ae852acbe458ebba5a34a119a6917cbfafc1c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc9c9102b736700c272f9094c3ae852acbe458ebba5a34a119a6917cbfafc1c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc9c9102b736700c272f9094c3ae852acbe458ebba5a34a119a6917cbfafc1c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x376691e9e29f93981011bffcaca3712843ab3756408ab015b3db0c9d12b19291", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff" + } } } - ] - }, + } + ], "pre" : { "0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "0x7d111122223333444455556666777788889999aaaabbbbccccddddeeeeffff60005260206000f3", + "code" : "{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }", "nonce" : "0x00", "storage" : { } }, "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "0x60006000600060006000730aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6640900000000f1506020600060003e600051600055", + "code" : "{ (seq (CALL 0x0900000000 0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0 0) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) )}", "nonce" : "0x00", "storage" : { "0x00" : "0x01" diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_following_create.json b/GeneralStateTests/stReturnDataTest/returndatacopy_following_create.json index 673fa5a53..94f62ecec 100644 --- a/GeneralStateTests/stReturnDataTest/returndatacopy_following_create.json +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_following_create.json @@ -2,7 +2,7 @@ "returndatacopy_following_create" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_createFiller.json" }, "env" : { @@ -13,69 +13,36 @@ "currentTimestamp" : "0x03e8", "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf7b621e953cb638b315fa40cb8a978a4b99c727e701a12cea0de5f298e3c01c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf7b621e953cb638b315fa40cb8a978a4b99c727e701a12cea0de5f298e3c01c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf7b621e953cb638b315fa40cb8a978a4b99c727e701a12cea0de5f298e3c01c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf7b621e953cb638b315fa40cb8a978a4b99c727e701a12cea0de5f298e3c01c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf7b621e953cb638b315fa40cb8a978a4b99c727e701a12cea0de5f298e3c01c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { "0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "0x7d111122223333444455556666777788889999aaaabbbbccccddddeeeeffff60005260206000f3", + "code" : "{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }", "nonce" : "0x00", "storage" : { } }, "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "0x596000526001806022600051396000516000f0506020600060003e6000516000550000", + "code" : "{ (seq (create (STOP)) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) )}", "nonce" : "0x00", "storage" : { "0x00" : "0x01" diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_following_failing_call.json b/GeneralStateTests/stReturnDataTest/returndatacopy_following_failing_call.json index 82cca2ea3..7ffc8cbb8 100644 --- a/GeneralStateTests/stReturnDataTest/returndatacopy_following_failing_call.json +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_following_failing_call.json @@ -2,7 +2,7 @@ "returndatacopy_following_failing_call" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_failing_callFiller.json" }, "env" : { @@ -13,58 +13,25 @@ "currentTimestamp" : "0x03e8", "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x03e80617008a34daac4f9cfb9e2b8d968d1c5bdab057a7f7c58fbe3a701d4a83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x03e80617008a34daac4f9cfb9e2b8d968d1c5bdab057a7f7c58fbe3a701d4a83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x03e80617008a34daac4f9cfb9e2b8d968d1c5bdab057a7f7c58fbe3a701d4a83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x03e80617008a34daac4f9cfb9e2b8d968d1c5bdab057a7f7c58fbe3a701d4a83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x03e80617008a34daac4f9cfb9e2b8d968d1c5bdab057a7f7c58fbe3a701d4a83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { "0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", @@ -75,7 +42,7 @@ }, "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "0x60006000600060006000730aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6640900000000f1506020600160003e600051600055", + "code" : "{ (CALL 0x0900000000 0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0 0) (RETURNDATACOPY 0 1 32) (SSTORE 0 (MLOAD 0)) }", "nonce" : "0x00", "storage" : { "0x00" : "0x01" diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_following_successful_create.json b/GeneralStateTests/stReturnDataTest/returndatacopy_following_successful_create.json index e8af178dc..73681bb3a 100644 --- a/GeneralStateTests/stReturnDataTest/returndatacopy_following_successful_create.json +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_following_successful_create.json @@ -2,7 +2,7 @@ "returndatacopy_following_successful_create" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_successful_createFiller.json" }, "env" : { @@ -13,62 +13,29 @@ "currentTimestamp" : "0x03e8", "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x83d0eeb43ed2b2bec2f8d3838855b1afb2dd777f3de209ac647009b3ec7a3b5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x02" + } } } - ], - "EIP158" : [ - { - "hash" : "0x83d0eeb43ed2b2bec2f8d3838855b1afb2dd777f3de209ac647009b3ec7a3b5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x83d0eeb43ed2b2bec2f8d3838855b1afb2dd777f3de209ac647009b3ec7a3b5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x83d0eeb43ed2b2bec2f8d3838855b1afb2dd777f3de209ac647009b3ec7a3b5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x83d0eeb43ed2b2bec2f8d3838855b1afb2dd777f3de209ac647009b3ec7a3b5e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "0x596000526001806022600051396000516000f0506020600160003e6000516000550000", + "code" : "{ (create (STOP)) (RETURNDATACOPY 0 1 32) (SSTORE 0 (MLOAD 0)) }", "nonce" : "0x00", "storage" : { "0x00" : "0x02" diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_initial.json b/GeneralStateTests/stReturnDataTest/returndatacopy_initial.json index aced472ac..255dc2fae 100644 --- a/GeneralStateTests/stReturnDataTest/returndatacopy_initial.json +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_initial.json @@ -2,7 +2,7 @@ "returndatacopy_initial" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initialFiller.json" }, "env" : { @@ -13,62 +13,29 @@ "currentTimestamp" : "0x03e8", "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x038be2c7d9e53c969aee21996b69ddc546ae8b6c0529da599fcf0bf2afcc802d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x038be2c7d9e53c969aee21996b69ddc546ae8b6c0529da599fcf0bf2afcc802d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x038be2c7d9e53c969aee21996b69ddc546ae8b6c0529da599fcf0bf2afcc802d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x038be2c7d9e53c969aee21996b69ddc546ae8b6c0529da599fcf0bf2afcc802d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x038be2c7d9e53c969aee21996b69ddc546ae8b6c0529da599fcf0bf2afcc802d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x0de0b6b3a7640000", - "code" : "0x6e112233445566778899aabbccddeeff6000526020600060003e600051600055", + "code" : "{ (MSTORE 0 0x112233445566778899aabbccddeeff) (RETURNDATACOPY 0 0 32) (SSTORE 0 (MLOAD 0)) }", "nonce" : "0x00", "storage" : { "0x00" : "0x01" diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_initial_256.json b/GeneralStateTests/stReturnDataTest/returndatacopy_initial_256.json index fd11668c9..f7c291096 100644 --- a/GeneralStateTests/stReturnDataTest/returndatacopy_initial_256.json +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_initial_256.json @@ -2,7 +2,7 @@ "returndatacopy_initial_256" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_256Filler.json" }, "env" : { @@ -13,142 +13,29 @@ "currentTimestamp" : "0x03e8", "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x505bd895f14e839c1b97738d4c7b8b9ee5167f7362514aff159e96a526a233a3", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x0de0b6b3a7640000", - "code" : "0x606460006000356000033e6e112233445566778899aabbccddeeff600052600051600055", + "code" : "{ (RETURNDATACOPY (- 0 (CALLDATALOAD 0)) 0 0x64) (MSTORE 0 0x112233445566778899aabbccddeeff) (SSTORE 0 (MLOAD 0)) }", "nonce" : "0x00", "storage" : { "0x00" : "0x01" diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_initial_big_sum.json b/GeneralStateTests/stReturnDataTest/returndatacopy_initial_big_sum.json index 553db2db5..58a10e4ef 100644 --- a/GeneralStateTests/stReturnDataTest/returndatacopy_initial_big_sum.json +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_initial_big_sum.json @@ -2,7 +2,7 @@ "returndatacopy_initial_big_sum" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_initial_big_sumFiller.json" }, "env" : { @@ -13,62 +13,29 @@ "currentTimestamp" : "0x03e8", "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa842d2afd89227dc81d471796d5c33c2e54c32b0fc51d9bd14c911e5b411a5cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa842d2afd89227dc81d471796d5c33c2e54c32b0fc51d9bd14c911e5b411a5cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa842d2afd89227dc81d471796d5c33c2e54c32b0fc51d9bd14c911e5b411a5cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa842d2afd89227dc81d471796d5c33c2e54c32b0fc51d9bd14c911e5b411a5cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa842d2afd89227dc81d471796d5c33c2e54c32b0fc51d9bd14c911e5b411a5cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x0de0b6b3a7640000", - "code" : "0x6e112233445566778899aabbccddeeff600052603f60020a603f60020a60003e600051600055", + "code" : "{ (MSTORE 0 0x112233445566778899aabbccddeeff) (RETURNDATACOPY 0 (EXP 2 63) (EXP 2 63)) (SSTORE 0 (MLOAD 0)) }", "nonce" : "0x00", "storage" : { "0x00" : "0x01" diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_overrun.json b/GeneralStateTests/stReturnDataTest/returndatacopy_overrun.json index 11b5225f7..b99c54235 100644 --- a/GeneralStateTests/stReturnDataTest/returndatacopy_overrun.json +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_overrun.json @@ -2,7 +2,7 @@ "returndatacopy_overrun" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_overrunFiller.json" }, "env" : { @@ -13,69 +13,36 @@ "currentTimestamp" : "0x03e8", "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb313ca207736a8149d8c25df1c1735bdecbaf9b58b17065dab26e7e95b6cf7ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb313ca207736a8149d8c25df1c1735bdecbaf9b58b17065dab26e7e95b6cf7ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb313ca207736a8149d8c25df1c1735bdecbaf9b58b17065dab26e7e95b6cf7ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb313ca207736a8149d8c25df1c1735bdecbaf9b58b17065dab26e7e95b6cf7ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb313ca207736a8149d8c25df1c1735bdecbaf9b58b17065dab26e7e95b6cf7ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { "0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "0x7d111122223333444455556666777788889999aaaabbbbccccddddeeeeffff60005260206000f3", + "code" : "{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }", "nonce" : "0x00", "storage" : { } }, "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "0x60006000600060006000730aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6640900000000f15060647ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60003e600051600055", + "code" : "{ (seq (CALL 0x0900000000 0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0 0) (RETURNDATACOPY 0 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 100) (SSTORE 0 (MLOAD 0)) )}", "nonce" : "0x00", "storage" : { "0x00" : "0x01" diff --git a/GeneralStateTests/stReturnDataTest/returndatasize_initial.json b/GeneralStateTests/stReturnDataTest/returndatasize_initial.json index 2a2f4eaa4..972351df0 100644 --- a/GeneralStateTests/stReturnDataTest/returndatasize_initial.json +++ b/GeneralStateTests/stReturnDataTest/returndatasize_initial.json @@ -2,7 +2,7 @@ "returndatasize_initial" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatasize_initialFiller.json" }, "env" : { @@ -13,62 +13,49 @@ "currentTimestamp" : "0x03e8", "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9b8c375714148b298ab9ddfb4fa982bf0a5b6e6055a2d3cc2380282f962a4993", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158", + "Frontier", + "Homestead" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x9b8c375714148b298ab9ddfb4fa982bf0a5b6e6055a2d3cc2380282f962a4993", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9b8c375714148b298ab9ddfb4fa982bf0a5b6e6055a2d3cc2380282f962a4993", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9b8c375714148b298ab9ddfb4fa982bf0a5b6e6055a2d3cc2380282f962a4993", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5d0ec58a88cf3f6d6f3c7fd229003c587b7f1811e4b0471c588b8a65f0ced347", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x0de0b6b3a7640000", - "code" : "0x3d600055", + "code" : "{ (SSTORE 0 (RETURNDATASIZE)) }", "nonce" : "0x00", "storage" : { "0x00" : "0x01" diff --git a/GeneralStateTests/stReturnDataTest/returndatasize_initial_zero_read.json b/GeneralStateTests/stReturnDataTest/returndatasize_initial_zero_read.json index 2c1a6faa0..700ee441e 100644 --- a/GeneralStateTests/stReturnDataTest/returndatasize_initial_zero_read.json +++ b/GeneralStateTests/stReturnDataTest/returndatasize_initial_zero_read.json @@ -2,7 +2,7 @@ "returndatasize_initial_zero_read" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatasize_initial_zero_readFiller.json" }, "env" : { @@ -13,102 +13,49 @@ "currentTimestamp" : "0x03e8", "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbb66ee499faa364b1100465e80b935afb15c9481b5f32ce908e101cd028341f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb66ee499faa364b1100465e80b935afb15c9481b5f32ce908e101cd028341f9", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xbb66ee499faa364b1100465e80b935afb15c9481b5f32ce908e101cd028341f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb66ee499faa364b1100465e80b935afb15c9481b5f32ce908e101cd028341f9", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb66ee499faa364b1100465e80b935afb15c9481b5f32ce908e101cd028341f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xbb66ee499faa364b1100465e80b935afb15c9481b5f32ce908e101cd028341f9", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "EIP150", + "EIP158", + "Frontier", + "Homestead" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xbb66ee499faa364b1100465e80b935afb15c9481b5f32ce908e101cd028341f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb66ee499faa364b1100465e80b935afb15c9481b5f32ce908e101cd028341f9", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd754a4f9fbc3b2bb742f7c114b9d72c205df6106b1cb35bd9a21e242b1c504d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xe40f3494b9b09f0f6df817a497e93a890f7aed50a18e6fe1e17d3655a9ec1160", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060003e600051600055", + "code" : "{ (RETURNDATACOPY 0 0 0) (SSTORE 0 (MLOAD 0)) }", "nonce" : "0x00", "storage" : { "0x00" : "0x01" diff --git a/GeneralStateTests/stRevertTest/LoopCallsDepthThenRevert.json b/GeneralStateTests/stRevertTest/LoopCallsDepthThenRevert.json index 107ebb6c4..b4062b85c 100644 --- a/GeneralStateTests/stRevertTest/LoopCallsDepthThenRevert.json +++ b/GeneralStateTests/stRevertTest/LoopCallsDepthThenRevert.json @@ -2,88 +2,85 @@ "LoopCallsDepthThenRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/LoopCallsDepthThenRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x81b5f1c57a1dcae800a1b87c67808809006e77f1b7645ba21eba71f5fc2a9852", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999990000000" + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x81b5f1c57a1dcae800a1b87c67808809006e77f1b7645ba21eba71f5fc2a9852", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd9c98049def493351df6808ceef42a14c3d4f3321c816d64bb57332e82426a0d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd9c98049def493351df6808ceef42a14c3d4f3321c816d64bb57332e82426a0d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x81b5f1c57a1dcae800a1b87c67808809006e77f1b7645ba21eba71f5fc2a9852", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x69" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x69" + } } } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6001600054016000556000600060006000600073b0000000000000000000000000000000000000005af1", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (+ (SLOAD 0) 1) (CALL (GAS) 0xb000000000000000000000000000000000000000 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6001600054016000556000600060006000600073a0000000000000000000000000000000000000005af1", - "nonce" : "0x00", + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (+ (SLOAD 0) 1) (CALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) }", + "nonce" : "", "storage" : { } } @@ -93,14 +90,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/LoopCallsDepthThenRevert2.json b/GeneralStateTests/stRevertTest/LoopCallsDepthThenRevert2.json index c2b7c3171..de0f86809 100644 --- a/GeneralStateTests/stRevertTest/LoopCallsDepthThenRevert2.json +++ b/GeneralStateTests/stRevertTest/LoopCallsDepthThenRevert2.json @@ -2,81 +2,47 @@ "LoopCallsDepthThenRevert2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/LoopCallsDepthThenRevert2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x43a070c3751b629ac30b1fda3954b5301b0c92a2173eb3dd71f9726fba3cd2b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0x03", + "nonce" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0x216fd3110280abe8b81a5f5fde77efa3326f81dbb1edcd1334fccd093cdc935f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2286ae15ac5ec3440acd73430954bf809f070b2c508ac564043adc7260be5e9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2286ae15ac5ec3440acd73430954bf809f070b2c508ac564043adc7260be5e9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x216fd3110280abe8b81a5f5fde77efa3326f81dbb1edcd1334fccd093cdc935f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x0a", - "code" : "0x6103ff60005414603f576001600054016000556000600060006000600073a0000000000000000000000000000000000000005af15061041a600054106053575b66600060006002f0600052600760196003f0505b", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "10", + "code" : "{ (JUMPI 63 (EQ (SLOAD 0) 1023)) [[0]] (+ (SLOAD 0) 1) (CALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 83 (LT (SLOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x13426172c74d822b878fe800000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000000000000000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -88,12 +54,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/LoopCallsDepthThenRevert3.json b/GeneralStateTests/stRevertTest/LoopCallsDepthThenRevert3.json index 30568cb22..f68fc9cd8 100644 --- a/GeneralStateTests/stRevertTest/LoopCallsDepthThenRevert3.json +++ b/GeneralStateTests/stRevertTest/LoopCallsDepthThenRevert3.json @@ -2,81 +2,51 @@ "LoopCallsDepthThenRevert3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/LoopCallsDepthThenRevert3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe31213d4682a6d7e8754702229f6aea87486ccbbdfa8da864726be4085bd904e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0x01", + "nonce" : "0x02" + }, + "cd6807039caffddbd1c28a749ec91bef15f448e5" : { + "balance" : "0x02", + "nonce" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0x2c776844bb275ce1d4e7e7c41ed0136ccb8af0dd37f903ce487769efd8a6f88a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x40b9433e63136b733583d1920393a816bf2dfe8a0fc383f2c92800ab4a27b6fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x40b9433e63136b733583d1920393a816bf2dfe8a0fc383f2c92800ab4a27b6fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2c776844bb275ce1d4e7e7c41ed0136ccb8af0dd37f903ce487769efd8a6f88a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x0a", - "code" : "0x6103fe60005414603f576001600054016000556000600060006000600073a0000000000000000000000000000000000000005af15061041a600054106053575b66600060006002f0600052600760196003f0505b", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "10", + "code" : "{ (JUMPI 63 (EQ (SLOAD 0) 1022)) [[0]] (+ (SLOAD 0) 1) (CALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 83 (LT (SLOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x13426172c74d822b878fe800000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000000000000000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -88,12 +58,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/LoopCallsThenRevert.json b/GeneralStateTests/stRevertTest/LoopCallsThenRevert.json index db25d1ce4..1a2e080eb 100644 --- a/GeneralStateTests/stRevertTest/LoopCallsThenRevert.json +++ b/GeneralStateTests/stRevertTest/LoopCallsThenRevert.json @@ -2,129 +2,107 @@ "LoopCallsThenRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/LoopCallsThenRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x01422f9f38e9ac49e24d119a250f58979b44d1b2e99ef2f9032dc33dcf9c1df1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xda2f7fa251260ee3f45c72597ba85421a88492749f2c7e7276cbce63436b99be", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x01422f9f38e9ac49e24d119a250f58979b44d1b2e99ef2f9032dc33dcf9c1df1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xda2f7fa251260ee3f45c72597ba85421a88492749f2c7e7276cbce63436b99be", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd2cf7d4f9abde7c247783fbb366baa64189ec2d482de9638723a49059eb5e4aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xd2cf7d4f9abde7c247783fbb366baa64189ec2d482de9638723a49059eb5e4aa", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "850" + } } } - ], - "Homestead" : [ - { - "hash" : "0xd2cf7d4f9abde7c247783fbb366baa64189ec2d482de9638723a49059eb5e4aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xd2cf7d4f9abde7c247783fbb366baa64189ec2d482de9638723a49059eb5e4aa", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "850" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x01422f9f38e9ac49e24d119a250f58979b44d1b2e99ef2f9032dc33dcf9c1df1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xda2f7fa251260ee3f45c72597ba85421a88492749f2c7e7276cbce63436b99be", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Homestead", + "Frontier" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "850" + } } } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x5b6001600054036000556000600060006000600073b00000000000000000000000000000000000000061c350f150600054600057", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ (JUMPDEST) [[0]] (- (SLOAD 0) 1) (CALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) (JUMPI 0 (SLOAD 0))}", + "nonce" : "0", "storage" : { - "0x00" : "0x0352" + "0x00" : "850" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) }", + "nonce" : "", "storage" : { } } @@ -134,15 +112,15 @@ "" ], "gasLimit" : [ - "0x989680", - "0x895440" + "10000000", + "9000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/LoopDelegateCallsDepthThenRevert.json b/GeneralStateTests/stRevertTest/LoopDelegateCallsDepthThenRevert.json index 5bab4e433..314d961f4 100644 --- a/GeneralStateTests/stRevertTest/LoopDelegateCallsDepthThenRevert.json +++ b/GeneralStateTests/stRevertTest/LoopDelegateCallsDepthThenRevert.json @@ -2,88 +2,84 @@ "LoopDelegateCallsDepthThenRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/LoopDelegateCallsDepthThenRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb8e2ecbaeed90b5e892a2832cfc3231496ff86680f0fb898fcdf7ec894f92d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999990000000" + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xb8e2ecbaeed90b5e892a2832cfc3231496ff86680f0fb898fcdf7ec894f92d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf9d4a72012836575c25f1b5e8bd7b573ebf132caf6b10bd891636f80fc792117", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf9d4a72012836575c25f1b5e8bd7b573ebf132caf6b10bd891636f80fc792117", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb8e2ecbaeed90b5e892a2832cfc3231496ff86680f0fb898fcdf7ec894f92d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0xd2" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600160005401600055600060006000600073b0000000000000000000000000000000000000005af4", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (+ (SLOAD 0) 1) (DELEGATECALL (GAS) 0xb000000000000000000000000000000000000000 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600160005401600055600060006000600073a0000000000000000000000000000000000000005af4", - "nonce" : "0x00", + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (+ (SLOAD 0) 1) (DELEGATECALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0) }", + "nonce" : "", "storage" : { } } @@ -93,14 +89,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/NashatyrevSuicideRevert.json b/GeneralStateTests/stRevertTest/NashatyrevSuicideRevert.json index f9b7b1ed9..ae0c4ae11 100644 --- a/GeneralStateTests/stRevertTest/NashatyrevSuicideRevert.json +++ b/GeneralStateTests/stRevertTest/NashatyrevSuicideRevert.json @@ -2,81 +2,51 @@ "NashatyrevSuicideRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/NashatyrevSuicideRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdd821ab265cb0ac289d94a1c22540a9f1e1e96f59011a2e150618c38323a6c95", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0xdd821ab265cb0ac289d94a1c22540a9f1e1e96f59011a2e150618c38323a6c95", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0d347869d80f37b94370f30f18e3cb6e9521425c1587f150709ea7fdb889f6f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0d347869d80f37b94370f30f18e3cb6e9521425c1587f150709ea7fdb889f6f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdd821ab265cb0ac289d94a1c22540a9f1e1e96f59011a2e150618c38323a6c95", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", "code" : "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680639c3674fc14610049578063c040622614610058575b610000565b3461000057610056610067565b005b3461000057610065610147565b005b600060405160a680610200833901809050604051809103906000f080156100005790508073ffffffffffffffffffffffffffffffffffffffff1660405180807f6628290000000000000000000000000000000000000000000000000000000000815250600301905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f19250505050610000565b50565b3073ffffffffffffffffffffffffffffffffffffffff1660405180807f6261642829000000000000000000000000000000000000000000000000000000815250600501905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f192505050505b56006060604052346000575b608f806100176000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806326121ff014603c575b6000565b3460005760466048565b005b3373ffffffffffffffffffffffffffffffffffffffff16ff5b5600a165627a7a723058203d1a897befde21eff26abc325fb3da2f526bbc99de1c5c857d1835f673744ebd0029a165627a7a72305820850a52b31ec4745b7af15ba3bffdb1ba17f5d9a00a5f263ee287a92b568f534c0029", - "nonce" : "0x00", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +56,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertDepth2.json b/GeneralStateTests/stRevertTest/RevertDepth2.json index 283e20417..eb623f25f 100644 --- a/GeneralStateTests/stRevertTest/RevertDepth2.json +++ b/GeneralStateTests/stRevertTest/RevertDepth2.json @@ -2,102 +2,92 @@ "RevertDepth2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertDepth2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x04ce8d06e26daf0ede58650a21e93c2abf8ea7a15e97695e2f3916ce6ff78f50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x04ce8d06e26daf0ede58650a21e93c2abf8ea7a15e97695e2f3916ce6ff78f50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x04ce8d06e26daf0ede58650a21e93c2abf8ea7a15e97695e2f3916ce6ff78f50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x04ce8d06e26daf0ede58650a21e93c2abf8ea7a15e97695e2f3916ce6ff78f50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x04ce8d06e26daf0ede58650a21e93c2abf8ea7a15e97695e2f3916ce6ff78f50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000546001016000556000600060006000600073b000000000000000000000000000000000000000620249f0f16001556000600060006000600073d000000000000000000000000000000000000000620249f0f1600255", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (CALL 150000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[2]] (CALL 150000 0xd000000000000000000000000000000000000000 0 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000546001016000556000600060006000600073c00000000000000000000000000000000000000061c350f1600155", - "nonce" : "0x00", + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (CALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0)}", + "nonce" : "", "storage" : { } }, - "0xc000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600054600101600055", - "nonce" : "0x00", + "c000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xd000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000546001016000556000600060006000600073c00000000000000000000000000000000000000061c350f16001555a600255", - "nonce" : "0x00", + "d000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (CALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0) [[2]] (GAS)}", + "nonce" : "0", "storage" : { } } @@ -107,14 +97,14 @@ "" ], "gasLimit" : [ - "0x029abd" + "170685" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertDepthCreateAddressCollision.json b/GeneralStateTests/stRevertTest/RevertDepthCreateAddressCollision.json index 9de78c67f..713c363c5 100644 --- a/GeneralStateTests/stRevertTest/RevertDepthCreateAddressCollision.json +++ b/GeneralStateTests/stRevertTest/RevertDepthCreateAddressCollision.json @@ -2,368 +2,221 @@ "RevertDepthCreateAddressCollision" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertDepthCreateAddressCollisionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x7560732379294ff6671be9416e3ef32c5bbea2785aee6eb590b4f0902565e9a1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x202e9b30c59094b99dee8afcea83947ff626ee7a910486e25920f4fa7b2ecfb9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x9406f62f8076b4aeda0df90dda740f7baf01a974a60a0e2f4a1c6d3b82d2dad0", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x351e539bd904c6a9c1f78675c78b4263f58f6922dfc3c92cc05ee30ef36c5f6b", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 + "expect" : [ + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : [ + "EIP158" + ], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x06", + "code" : "0x", + "nonce" : "1", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x02" : "0x08", + "0x03" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x7560732379294ff6671be9416e3ef32c5bbea2785aee6eb590b4f0902565e9a1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x202e9b30c59094b99dee8afcea83947ff626ee7a910486e25920f4fa7b2ecfb9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0c7b356c3b36ebac5243f47fccfe6f036e6fc039fdaa87696c897c42b79806f3", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x4e6ed5a94aa24414b64250913a2450a9fdcfd07a585fb83083e6215b898cd7b9", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 + }, + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : [ + "EIP150" + ], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x06", + "code" : "0x", + "nonce" : "0", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x02" : "0x08", + "0x03" : "0x0c" + } } } - ], - "Frontier" : [ - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xa4c92564fafcbf444c74b858c7dc9b9204c7a5337901022830016b213475e3a6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xb6ee3d1d29671d2cd93222c0f2019e49dad12aee70f3a3591be6f27e04052a2c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc0df71b65b1cca2a28025c9c81d3b3775f44d7378e192e51a9b15c3467a54d9a", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc0df71b65b1cca2a28025c9c81d3b3775f44d7378e192e51a9b15c3467a54d9a", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 + }, + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x05", + "code" : "0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c600455", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xa4c92564fafcbf444c74b858c7dc9b9204c7a5337901022830016b213475e3a6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xb6ee3d1d29671d2cd93222c0f2019e49dad12aee70f3a3591be6f27e04052a2c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc0df71b65b1cca2a28025c9c81d3b3775f44d7378e192e51a9b15c3467a54d9a", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc0df71b65b1cca2a28025c9c81d3b3775f44d7378e192e51a9b15c3467a54d9a", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 + }, + { + "comment" : "OOG in subcall", + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : 0 + }, + "network" : [ + "ALL" + ], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x06", + "code" : "{ [[0]] 1 [[1]] (CALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }", + "nonce" : "54", + "storage" : { + "0x00" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x7560732379294ff6671be9416e3ef32c5bbea2785aee6eb590b4f0902565e9a1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x202e9b30c59094b99dee8afcea83947ff626ee7a910486e25920f4fa7b2ecfb9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x222799d2ad41990338860221d0d59567fcb0ac058b7b72d962708a84cbace1ad", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 + }, + { + "comment" : "OOG after subcall", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "EIP158", + "EIP150" + ], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x05", + "code" : "{ [[0]] 1 [[1]] (CALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } } - }, - { - "hash" : "0xc0df71b65b1cca2a28025c9c81d3b3775f44d7378e192e51a9b15c3467a54d9a", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 + } + }, + { + "comment" : "OOG after subcall", + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Homestead", + "Frontier" + ], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x05", + "code" : "0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c600455", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } } - }, - { - "hash" : "0xc0df71b65b1cca2a28025c9c81d3b3775f44d7378e192e51a9b15c3467a54d9a", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 + } + }, + { + "comment" : "double OOG", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "ALL" + ], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "0x05", + "code" : "{ [[0]] 1 [[1]] (CALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }", + "nonce" : "54", + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x3e180b1862f9d158abb5e519a6d8605540c23682" : { - "balance" : "0x05", - "code" : "0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c600455", - "nonce" : "0x36", + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "balance" : "5", + "code" : "{ [[0]] 1 [[1]] (CALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }", + "nonce" : "54", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6008600255600060006000f050600c600355", - "nonce" : "0x00", + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[2]] 8 (CREATE 0 0 0) [[3]] 12}", + "nonce" : "", "storage" : { } } @@ -374,16 +227,16 @@ "000000000000000000000000000000000000000000000000000000000001ea60" ], "gasLimit" : [ - "0x01adb0", - "0x027100" + "110000", + "160000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x3e180b1862f9d158abb5e519a6d8605540c23682", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "3e180b1862f9d158abb5e519a6d8605540c23682", "value" : [ - "0x01", - "0x00" + "1", + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertDepthCreateOOG.json b/GeneralStateTests/stRevertTest/RevertDepthCreateOOG.json index ec03eb161..fe14c60a1 100644 --- a/GeneralStateTests/stRevertTest/RevertDepthCreateOOG.json +++ b/GeneralStateTests/stRevertTest/RevertDepthCreateOOG.json @@ -2,368 +2,174 @@ "RevertDepthCreateOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertDepthCreateOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x2792964862a467219a4d5e497f798176b09d8177f290c39eca662befff5f3a60", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x42ca5d93f92acb6a80eb20a11fa0528865c1ac9a9bf67c39a6191d060ca7ce4f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x1e0fae46b35d00d90eb311a335fffbfb18b5bb6fb97d2e8fd81b20179745ce4e", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x24a0106e5d29661bd6c5adcac678ffe1715cbc1ef0a5b5db39a084695cc737be", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 + "expect" : [ + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : [ + "EIP158" + ], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "nonce" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x02" : "0x08", + "0x03" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x2792964862a467219a4d5e497f798176b09d8177f290c39eca662befff5f3a60", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x42ca5d93f92acb6a80eb20a11fa0528865c1ac9a9bf67c39a6191d060ca7ce4f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x327f51edf987241a0a59405a62804d1a574cc7f285a875e3fbd7cd01863b1e4b", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x1a18a2344a9244b257d4d16e2e9abb6dcb53d17d5a4c5fbb240f1c6011f14b50", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 + }, + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : [ + "EIP150" + ], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "nonce" : "0" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x02" : "0x08", + "0x03" : "0x0c" + } } } - ], - "Frontier" : [ - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd8e4aee5a220887aa9a11f33979816e6dfd43d8566f2ae977b49afa17042ac17", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x46c459fa446969520040529dc429163a5c4304c9c0b774fd1e178dbf1d27eb86", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x5e0dd98b60aa899f5c210103e4fdd587b00b461c36dedb372646b0fd0d2e023f", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x5e0dd98b60aa899f5c210103e4fdd587b00b461c36dedb372646b0fd0d2e023f", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 + }, + { + "comment" : "NO OOG", + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : 0 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "shouldnotexist" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd8e4aee5a220887aa9a11f33979816e6dfd43d8566f2ae977b49afa17042ac17", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x46c459fa446969520040529dc429163a5c4304c9c0b774fd1e178dbf1d27eb86", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x5e0dd98b60aa899f5c210103e4fdd587b00b461c36dedb372646b0fd0d2e023f", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x5e0dd98b60aa899f5c210103e4fdd587b00b461c36dedb372646b0fd0d2e023f", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 + }, + { + "comment" : "OOG in subcall", + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : 0 + }, + "network" : [ + "ALL" + ], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "shouldnotexist" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x04" : "0x0c" + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x2792964862a467219a4d5e497f798176b09d8177f290c39eca662befff5f3a60", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x42ca5d93f92acb6a80eb20a11fa0528865c1ac9a9bf67c39a6191d060ca7ce4f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe4e1694e86eef3ff5604aa78e8b6130f63e430ef199a9a218b8ef3e0f11d315f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x327f51edf987241a0a59405a62804d1a574cc7f285a875e3fbd7cd01863b1e4b", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x1a18a2344a9244b257d4d16e2e9abb6dcb53d17d5a4c5fbb240f1c6011f14b50", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 + }, + { + "comment" : "OOG after subcall / double OOG", + "indexes" : { + "data" : [ + 1, + 0 + ], + "gas" : 0, + "value" : 0 + }, + "network" : [ + "ALL" + ], + "result" : { + "3e180b1862f9d158abb5e519a6d8605540c23682" : { + "shouldnotexist" : "1" + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x05", - "code" : "0x60016000556000600060006000600073b000000000000000000000000000000000000000600035f1600155600c600455", - "nonce" : "0x36", + "a000000000000000000000000000000000000000" : { + "balance" : "5", + "code" : "{ [[0]] 1 [[1]] (CALL (CALLDATALOAD 0) 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[4]] 12 }", + "nonce" : "54", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6008600255600060006000f050600c600355", - "nonce" : "0x00", + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[2]] 8 (CREATE 0 0 0) [[3]] 12}", + "nonce" : "", "storage" : { } } @@ -374,16 +180,16 @@ "000000000000000000000000000000000000000000000000000000000001ea60" ], "gasLimit" : [ - "0x01adb0", - "0x027100" + "110000", + "160000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x01", - "0x00" + "1", + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertOpcode.json b/GeneralStateTests/stRevertTest/RevertOpcode.json index 46a589df8..41c65d23b 100644 --- a/GeneralStateTests/stRevertTest/RevertOpcode.json +++ b/GeneralStateTests/stRevertTest/RevertOpcode.json @@ -2,201 +2,96 @@ "RevertOpcode" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x299e173f3b37ebb90f4390583926658bb2a000d031b2b1ed2a248e5a8a47f4d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x299e173f3b37ebb90f4390583926658bb2a000d031b2b1ed2a248e5a8a47f4d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xf0b23a60fca645c6d2726c2a6ff621b379b77902e5a99ebc71035b13a1da70fb", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xf0b23a60fca645c6d2726c2a6ff621b379b77902e5a99ebc71035b13a1da70fb", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x299e173f3b37ebb90f4390583926658bb2a000d031b2b1ed2a248e5a8a47f4d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x299e173f3b37ebb90f4390583926658bb2a000d031b2b1ed2a248e5a8a47f4d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xf0b23a60fca645c6d2726c2a6ff621b379b77902e5a99ebc71035b13a1da70fb", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xf0b23a60fca645c6d2726c2a6ff621b379b77902e5a99ebc71035b13a1da70fb", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x299e173f3b37ebb90f4390583926658bb2a000d031b2b1ed2a248e5a8a47f4d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x299e173f3b37ebb90f4390583926658bb2a000d031b2b1ed2a248e5a8a47f4d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xf0b23a60fca645c6d2726c2a6ff621b379b77902e5a99ebc71035b13a1da70fb", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xf0b23a60fca645c6d2726c2a6ff621b379b77902e5a99ebc71035b13a1da70fb", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0x299e173f3b37ebb90f4390583926658bb2a000d031b2b1ed2a248e5a8a47f4d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x299e173f3b37ebb90f4390583926658bb2a000d031b2b1ed2a248e5a8a47f4d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xf0b23a60fca645c6d2726c2a6ff621b379b77902e5a99ebc71035b13a1da70fb", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xf0b23a60fca645c6d2726c2a6ff621b379b77902e5a99ebc71035b13a1da70fb", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999958985", + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x94cc837a7eecd810063cc425e84e9467e74134c9a516d4df91f71f201fe77676", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x94cc837a7eecd810063cc425e84e9467e74134c9a516d4df91f71f201fe77676", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xf0b23a60fca645c6d2726c2a6ff621b379b77902e5a99ebc71035b13a1da70fb", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xf0b23a60fca645c6d2726c2a6ff621b379b77902e5a99ebc71035b13a1da70fb", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999970000", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", "code" : "0x600160005560016000fd6011600155", - "nonce" : "0x00", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -206,16 +101,16 @@ "" ], "gasLimit" : [ - "0x0c3500", - "0x7530" + "800000", + "30000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x0a" + "0", + "10" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertOpcodeCalls.json b/GeneralStateTests/stRevertTest/RevertOpcodeCalls.json index 7596dcc43..b22535462 100644 --- a/GeneralStateTests/stRevertTest/RevertOpcodeCalls.json +++ b/GeneralStateTests/stRevertTest/RevertOpcodeCalls.json @@ -2,403 +2,305 @@ "RevertOpcodeCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x710afb013436152320710b84da2b4546bf0aef1d68f634c478d4981d4105f255", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc879f36afaeace32cc8b9462dad38f688ec506a89884b21b6e60d8249b3ab136", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x7b5aea4a6d7e6ac3b1a96651dc76c4171af4cb599bb4e8c242e18c83dd7533c8", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd5a14b2554f5d08626ce5cdfac36217426d292b62ff994e25fe89cf8d3c93743", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x0e" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x710afb013436152320710b84da2b4546bf0aef1d68f634c478d4981d4105f255", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc879f36afaeace32cc8b9462dad38f688ec506a89884b21b6e60d8249b3ab136", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x7b5aea4a6d7e6ac3b1a96651dc76c4171af4cb599bb4e8c242e18c83dd7533c8", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd5a14b2554f5d08626ce5cdfac36217426d292b62ff994e25fe89cf8d3c93743", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 + }, + { + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0x917fea5fed77119230c4120bc4df0d7f1e038160c5c733cd1e779038b67e122a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xb30ce1d2c038b2632e9bf010a78c665339513f1d2e762c6b9bb12a7494831ac2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x9eaa832bba7dc43eb5e2b097c9a33430d6957285873991c69847ced845ba4f26", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x249083970cef69bb1a73955e5f3faff87414f280b3010de5409c70aa2f35d8dc", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 + }, + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x0e" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0x917fea5fed77119230c4120bc4df0d7f1e038160c5c733cd1e779038b67e122a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xb30ce1d2c038b2632e9bf010a78c665339513f1d2e762c6b9bb12a7494831ac2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x9a43f317297c23f76ed28075273dd8667a5fd0f0bb5d45dca4c86c311706d26a", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x249083970cef69bb1a73955e5f3faff87414f280b3010de5409c70aa2f35d8dc", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 + }, + { + "comment" : "OOG", + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x407fb3b03966b0d591a120f7b35135ddf221aadedee169c7d9d1a946e0354252", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x145fbde74591c64f02a4a791ccc1b96d60f031559605f8206bf0fe3c07de982d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 + }, + { + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x0e" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } - }, - { - "hash" : "0xfcf18c617e61b5a16e9b550620ce5926908bf0ee8d9e049f62ce9c924b88ae2c", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 + } + }, + { + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x0e" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } - }, - { - "hash" : "0xbd8e9a2719f36730a9c3dcbcb952d55fca79fab9cd57231196647975467c471f", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : 2, + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } - }, - { - "hash" : "0xce5a5ad6a9fdb0eb1aed2c0f8b14764f6b033c83920bde8675442e13c3ee3e08", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 + } + }, + { + "indexes" : { + "data" : 3, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b3005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x01", + "0x02" : "0x0e" + } + }, + "b3305374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x04" : "0x00", + "0x05" : "0x0e" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x600060006000600060006000356203f7a0f1600a55", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[10]] (CALL 260000 (CALLDATALOAD 0) 0 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb0005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61c350f1600055600e600255", - "nonce" : "0x00", + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (CALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", + "nonce" : "0", "storage" : { } }, - "0xb1005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61c350f2600055600e600255", - "nonce" : "0x00", + "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (CALLCODE 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", + "nonce" : "0", "storage" : { } }, - "0xb2005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61c350f4600055600e600255", - "nonce" : "0x00", + "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (DELEGATECALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]] 14 }", + "nonce" : "0", "storage" : { } }, - "0xb3005374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x6000600060006000600073b3305374fce5edbc8e2a8697c15331677e6ebf0b620186a0f1600055600e600255", - "nonce" : "0x00", + "b3005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (CALL 100000 0xb3305374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", + "nonce" : "0", "storage" : { } }, - "0xb3305374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61c350f1600455600e600555", - "nonce" : "0x00", + "b3305374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[4]] (CALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[5]] 14 }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x600c60015560016000fd", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[1]] 12 (REVERT 0 1) [[3]] 13 }", + "nonce" : "0", "storage" : { } } @@ -411,15 +313,15 @@ "0x000000000000000000000000b3005374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x0704e0", - "0x0157c0" + "460000", + "88000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "094f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertOpcodeCreate.json b/GeneralStateTests/stRevertTest/RevertOpcodeCreate.json index 0af289bdc..6e646db12 100644 --- a/GeneralStateTests/stRevertTest/RevertOpcodeCreate.json +++ b/GeneralStateTests/stRevertTest/RevertOpcodeCreate.json @@ -2,121 +2,92 @@ "RevertOpcodeCreate" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeCreateFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2123e2e637ea369203c1e524079cda098388fb6cd7a5d51436c9aeb522efa47e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb72445d263cd1f0e84ee4087b5233aa0aa7c43fd1383b9d469fca46248d88431", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2123e2e637ea369203c1e524079cda098388fb6cd7a5d51436c9aeb522efa47e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb72445d263cd1f0e84ee4087b5233aa0aa7c43fd1383b9d469fca46248d88431", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2123e2e637ea369203c1e524079cda098388fb6cd7a5d51436c9aeb522efa47e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xb72445d263cd1f0e84ee4087b5233aa0aa7c43fd1383b9d469fca46248d88431", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0x2123e2e637ea369203c1e524079cda098388fb6cd7a5d51436c9aeb522efa47e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xb72445d263cd1f0e84ee4087b5233aa0aa7c43fd1383b9d469fca46248d88431", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1", + "storage" : { + "0x00" : "0x0c", + "0x01" : "0x00" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0xeeac7cc67af32c9fc40749602cda167c54269830d2cb71fd3586e1ed4f458baa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xb72445d263cd1f0e84ee4087b5233aa0aa7c43fd1383b9d469fca46248d88431", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x6e600160005560016000fd6011600155600052600f60116001f0600155600c600055", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (MSTORE 0 0x600160005560016000fd6011600155 ) [[1]](CREATE 1 17 15) [[0]] 12 }", + "nonce" : "0", "storage" : { } } @@ -126,15 +97,15 @@ "0x600160005560016000fe6011600155" ], "gasLimit" : [ - "0x0704e0", - "0x011170" + "460000", + "70000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertOpcodeDirectCall.json b/GeneralStateTests/stRevertTest/RevertOpcodeDirectCall.json index 1fd1da873..435b42ad7 100644 --- a/GeneralStateTests/stRevertTest/RevertOpcodeDirectCall.json +++ b/GeneralStateTests/stRevertTest/RevertOpcodeDirectCall.json @@ -2,135 +2,109 @@ "RevertOpcodeDirectCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeDirectCallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4b5855c46e03a2b0f21f4e6e80b6a24551be97416f9eb725e191edb78fecc8b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa57311b15ec973189e296050f35d5bd8f244246ff3c69a88ec8f9358cb0d15d4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4b5855c46e03a2b0f21f4e6e80b6a24551be97416f9eb725e191edb78fecc8b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa57311b15ec973189e296050f35d5bd8f244246ff3c69a88ec8f9358cb0d15d4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0c45c39cc33809ab7c3f91ebbe39b933e3968b9dbb885b3e60c6b743e536061b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa57311b15ec973189e296050f35d5bd8f244246ff3c69a88ec8f9358cb0d15d4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "shouldnotexist" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0x0c45c39cc33809ab7c3f91ebbe39b933e3968b9dbb885b3e60c6b743e536061b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xa57311b15ec973189e296050f35d5bd8f244246ff3c69a88ec8f9358cb0d15d4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00", + "0x02" : "0x0e" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xb1da2f7f7736fefd7d61d0938e43457d2f48fd610a26a35bf94f5247aa672887", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xa57311b15ec973189e296050f35d5bd8f244246ff3c69a88ec8f9358cb0d15d4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x6000600060006000600060003561ea60f1600a55", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[10]] (CALL 60000 (CALLDATALOAD 0) 0 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61c350f1600055600e600255", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (CALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 14 }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x600c60015560016000fd", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[1]] 12 (REVERT 0 1) [[3]] 13 }", + "nonce" : "0", "storage" : { } } @@ -140,15 +114,15 @@ "0x000000000000000000000000b94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x0704e0", - "0x0109a0" + "460000", + "68000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertOpcodeInCreateReturns.json b/GeneralStateTests/stRevertTest/RevertOpcodeInCreateReturns.json index 17c68e62a..f6ab6fcfd 100644 --- a/GeneralStateTests/stRevertTest/RevertOpcodeInCreateReturns.json +++ b/GeneralStateTests/stRevertTest/RevertOpcodeInCreateReturns.json @@ -2,7 +2,7 @@ "RevertOpcodeInCreateReturns" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeInCreateReturnsFiller.json" }, "env" : { @@ -13,62 +13,49 @@ "currentTimestamp" : "0x03e8", "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8fcc22c78f69ebea32ecc3a7de600adbb880b827e999cda3e48813df7e8c6452", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "1" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8fcc22c78f69ebea32ecc3a7de600adbb880b827e999cda3e48813df7e8c6452", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8fcc22c78f69ebea32ecc3a7de600adbb880b827e999cda3e48813df7e8c6452", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8fcc22c78f69ebea32ecc3a7de600adbb880b827e999cda3e48813df7e8c6452", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb64861edcf7d90039fa4a050b54bc953a2467a8035ea36706ad3b0d09560ae46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "32" + } } } - ] - }, + } + ], "pre" : { "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "0x600c80601360003960006000f0503d600055006211223360005260206000fd", + "code" : "{ (seq (CREATE 0 0 (lll (seq (mstore 0 0x112233) (revert 0 32)) 0)) (SSTORE 0 (RETURNDATASIZE)) )}", "nonce" : "0x00", "storage" : { "0x00" : "0x01" diff --git a/GeneralStateTests/stRevertTest/RevertOpcodeInInit.json b/GeneralStateTests/stRevertTest/RevertOpcodeInInit.json index a40ba2b02..04cf42137 100644 --- a/GeneralStateTests/stRevertTest/RevertOpcodeInInit.json +++ b/GeneralStateTests/stRevertTest/RevertOpcodeInInit.json @@ -2,194 +2,119 @@ "RevertOpcodeInInit" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeInInitFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7969d9a42e6ee6022e00fd68b4e831dbbefb73c0bfece34b5eb59e4d037ece23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7969d9a42e6ee6022e00fd68b4e831dbbefb73c0bfece34b5eb59e4d037ece23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x7969d9a42e6ee6022e00fd68b4e831dbbefb73c0bfece34b5eb59e4d037ece23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7969d9a42e6ee6022e00fd68b4e831dbbefb73c0bfece34b5eb59e4d037ece23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "Frontier" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Frontier" : [ - { - "hash" : "0x7969d9a42e6ee6022e00fd68b4e831dbbefb73c0bfece34b5eb59e4d037ece23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7969d9a42e6ee6022e00fd68b4e831dbbefb73c0bfece34b5eb59e4d037ece23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x191cd75344d7c8fac8c7356ea544a74818271d12aabe0f5a830c92ba3c2383c2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x191cd75344d7c8fac8c7356ea544a74818271d12aabe0f5a830c92ba3c2383c2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" } } - ], - "Homestead" : [ - { - "hash" : "0x7969d9a42e6ee6022e00fd68b4e831dbbefb73c0bfece34b5eb59e4d037ece23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7969d9a42e6ee6022e00fd68b4e831dbbefb73c0bfece34b5eb59e4d037ece23", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x79be816b8d710425c26c8c1ee39110a77775145d625ba505cdaa08b02cc85aa9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x79be816b8d710425c26c8c1ee39110a77775145d625ba505cdaa08b02cc85aa9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -199,16 +124,16 @@ "0x600160005560016000fd6011600155" ], "gasLimit" : [ - "0x027100", - "0x9c40" + "160000", + "40000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00", - "0x0a" + "0", + "10" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertOpcodeMultipleSubCalls.json b/GeneralStateTests/stRevertTest/RevertOpcodeMultipleSubCalls.json index c78fb861a..573bcac7b 100644 --- a/GeneralStateTests/stRevertTest/RevertOpcodeMultipleSubCalls.json +++ b/GeneralStateTests/stRevertTest/RevertOpcodeMultipleSubCalls.json @@ -2,1370 +2,417 @@ "RevertOpcodeMultipleSubCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeMultipleSubCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd8f4e54b56f537699870c958f97ff83480035abfbd13d3511d418baa5cae7c09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb6cc57520d9770d30f2ae303a3011772a6a92d1746b1a4ef6f6894ddefb8b78b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x548ca959f5bc870502e34a6a6588fcc84339f07226557a9b601e580ee434cf7e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x404c9b96e72d670b118f253994533902cea8e8905cb6a341e12a91c8500b70f7", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x01cb4b1894d236991dd8f624910ac7cd11708731342187df760267723c7609a8", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x194d498eda8247cc0f13bd37c69b1151c4ab3c1e65e8815b9ce1cbdd0c9ee4a1", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x1e4c40e58408c4916b3c0acc7044049824c50b0bd97091cb33eca52222eea6a7", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c04067e96a83e2b0c65f81c8a210a2088b45c4cbaa5a15b59f3ca21f1d8ae07", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0x5d50590051ccaf4888d6aaea2e67c3c221418e6d63ac08ccaeb83f8972cef939", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34b72637b56181f53edcff598845763a878c55eeb2366ba4d1e4f3e6244c9062", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x548ca959f5bc870502e34a6a6588fcc84339f07226557a9b601e580ee434cf7e", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x404c9b96e72d670b118f253994533902cea8e8905cb6a341e12a91c8500b70f7", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x01cb4b1894d236991dd8f624910ac7cd11708731342187df760267723c7609a8", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x194d498eda8247cc0f13bd37c69b1151c4ab3c1e65e8815b9ce1cbdd0c9ee4a1", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x1e4c40e58408c4916b3c0acc7044049824c50b0bd97091cb33eca52222eea6a7", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c04067e96a83e2b0c65f81c8a210a2088b45c4cbaa5a15b59f3ca21f1d8ae07", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc5a643f1bfb926531f64c8bacaed120944594d9d40bb9623bab4da7b3a223f12", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe5636003a6a46f677815d577aa34d0327e1ffb059035e6d7bd1c0cde96bbcc68", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x548ca959f5bc870502e34a6a6588fcc84339f07226557a9b601e580ee434cf7e", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x404c9b96e72d670b118f253994533902cea8e8905cb6a341e12a91c8500b70f7", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x01cb4b1894d236991dd8f624910ac7cd11708731342187df760267723c7609a8", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x194d498eda8247cc0f13bd37c69b1151c4ab3c1e65e8815b9ce1cbdd0c9ee4a1", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x1e4c40e58408c4916b3c0acc7044049824c50b0bd97091cb33eca52222eea6a7", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c04067e96a83e2b0c65f81c8a210a2088b45c4cbaa5a15b59f3ca21f1d8ae07", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0x1afdbdfbba02f176a74a058ce687039fc418c16426ee072cf820edaa1136a20a", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4ad3d92aa98e194cb4b7bf8f889adc498f316c5a026fc36e4150b2cfa026a83c", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x548ca959f5bc870502e34a6a6588fcc84339f07226557a9b601e580ee434cf7e", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x404c9b96e72d670b118f253994533902cea8e8905cb6a341e12a91c8500b70f7", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x01cb4b1894d236991dd8f624910ac7cd11708731342187df760267723c7609a8", - "indexes" : { - "data" : 3, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x194d498eda8247cc0f13bd37c69b1151c4ab3c1e65e8815b9ce1cbdd0c9ee4a1", - "indexes" : { - "data" : 3, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x1e4c40e58408c4916b3c0acc7044049824c50b0bd97091cb33eca52222eea6a7", - "indexes" : { - "data" : 3, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c04067e96a83e2b0c65f81c8a210a2088b45c4cbaa5a15b59f3ca21f1d8ae07", - "indexes" : { - "data" : 3, - "gas" : 3, - "value" : 1 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" } } - ], - "EIP158" : [ - { - "hash" : "0xd8f4e54b56f537699870c958f97ff83480035abfbd13d3511d418baa5cae7c09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb6cc57520d9770d30f2ae303a3011772a6a92d1746b1a4ef6f6894ddefb8b78b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x548ca959f5bc870502e34a6a6588fcc84339f07226557a9b601e580ee434cf7e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x404c9b96e72d670b118f253994533902cea8e8905cb6a341e12a91c8500b70f7", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x01cb4b1894d236991dd8f624910ac7cd11708731342187df760267723c7609a8", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x194d498eda8247cc0f13bd37c69b1151c4ab3c1e65e8815b9ce1cbdd0c9ee4a1", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x1e4c40e58408c4916b3c0acc7044049824c50b0bd97091cb33eca52222eea6a7", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c04067e96a83e2b0c65f81c8a210a2088b45c4cbaa5a15b59f3ca21f1d8ae07", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0x5d50590051ccaf4888d6aaea2e67c3c221418e6d63ac08ccaeb83f8972cef939", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34b72637b56181f53edcff598845763a878c55eeb2366ba4d1e4f3e6244c9062", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x548ca959f5bc870502e34a6a6588fcc84339f07226557a9b601e580ee434cf7e", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x404c9b96e72d670b118f253994533902cea8e8905cb6a341e12a91c8500b70f7", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x01cb4b1894d236991dd8f624910ac7cd11708731342187df760267723c7609a8", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x194d498eda8247cc0f13bd37c69b1151c4ab3c1e65e8815b9ce1cbdd0c9ee4a1", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x1e4c40e58408c4916b3c0acc7044049824c50b0bd97091cb33eca52222eea6a7", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c04067e96a83e2b0c65f81c8a210a2088b45c4cbaa5a15b59f3ca21f1d8ae07", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc5a643f1bfb926531f64c8bacaed120944594d9d40bb9623bab4da7b3a223f12", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe5636003a6a46f677815d577aa34d0327e1ffb059035e6d7bd1c0cde96bbcc68", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x548ca959f5bc870502e34a6a6588fcc84339f07226557a9b601e580ee434cf7e", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x404c9b96e72d670b118f253994533902cea8e8905cb6a341e12a91c8500b70f7", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x01cb4b1894d236991dd8f624910ac7cd11708731342187df760267723c7609a8", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x194d498eda8247cc0f13bd37c69b1151c4ab3c1e65e8815b9ce1cbdd0c9ee4a1", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x1e4c40e58408c4916b3c0acc7044049824c50b0bd97091cb33eca52222eea6a7", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c04067e96a83e2b0c65f81c8a210a2088b45c4cbaa5a15b59f3ca21f1d8ae07", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0x1afdbdfbba02f176a74a058ce687039fc418c16426ee072cf820edaa1136a20a", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4ad3d92aa98e194cb4b7bf8f889adc498f316c5a026fc36e4150b2cfa026a83c", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x548ca959f5bc870502e34a6a6588fcc84339f07226557a9b601e580ee434cf7e", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x404c9b96e72d670b118f253994533902cea8e8905cb6a341e12a91c8500b70f7", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x01cb4b1894d236991dd8f624910ac7cd11708731342187df760267723c7609a8", - "indexes" : { - "data" : 3, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x194d498eda8247cc0f13bd37c69b1151c4ab3c1e65e8815b9ce1cbdd0c9ee4a1", - "indexes" : { - "data" : 3, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x1e4c40e58408c4916b3c0acc7044049824c50b0bd97091cb33eca52222eea6a7", - "indexes" : { - "data" : 3, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c04067e96a83e2b0c65f81c8a210a2088b45c4cbaa5a15b59f3ca21f1d8ae07", - "indexes" : { - "data" : 3, - "gas" : 3, - "value" : 1 + }, + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "Frontier" : [ - { - "hash" : "0x1e6f2866ebc2ec3bd095dd5d1e0a9003dff8c46d740422e032564e23800e401c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1092feb631e5d2b0bb2ca83f9f68b54c53717f8ceda091616c67aa01bf2f6715", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0x69e43bbf019adedcae45878e4efb53768e49d66b68fa4ed04f0e1e4568ca41a7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf6b3cbbd0610954032c6d46f6415ef5bff8742fbee55230fe12211ded4220c3d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xd82deee3a810865a30ee17dee27244ecc812f3270ae1eb67c40f7aaf80907622", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1a19c6ab26d1bc1fb3130c16132d82cc6bb770cc7e3f235be283a9c6a574d706", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xd82deee3a810865a30ee17dee27244ecc812f3270ae1eb67c40f7aaf80907622", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1a19c6ab26d1bc1fb3130c16132d82cc6bb770cc7e3f235be283a9c6a574d706", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 3, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 3, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 3, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 3, - "gas" : 3, - "value" : 1 + }, + { + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a100000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x1e6f2866ebc2ec3bd095dd5d1e0a9003dff8c46d740422e032564e23800e401c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1092feb631e5d2b0bb2ca83f9f68b54c53717f8ceda091616c67aa01bf2f6715", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0x69e43bbf019adedcae45878e4efb53768e49d66b68fa4ed04f0e1e4568ca41a7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf6b3cbbd0610954032c6d46f6415ef5bff8742fbee55230fe12211ded4220c3d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xf831c6b1f491ca064a59088ac753fe9b9f6376112b08acd3ee9d7b2dd56ba209", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5f9dbebae5fe583e47a8e4a2212dca465e4679785618107655e492a9c38f8397", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0x06d00ec0437967bfa535b2c7830db5a63042d73368beb07d68d2ed93bc769f03", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x697f6c1e9bc4bcb230fa4a941c977d44e74245e9af445c132d83d9cced610adb", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x936942c98843600eb69cdad1cdeaa3630afb62513e6c0a597a262ade92d5b66a", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 3, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x9ac31168816aa36d6c71895d033daa0b610b199362690f733928dbef23f28820", - "indexes" : { - "data" : 3, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 3, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c80aaff583e56560fcc9ff3b09d33d587e131d23270792f6dc37cc29c3b0f73", - "indexes" : { - "data" : 3, - "gas" : 3, - "value" : 1 + }, + { + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a200000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x349fa19f377350ecaea31dd8486a281546eb070214059f1551d24d4f9cdaa565", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6117f1c9999903c9289b0c1415c895f0810166df78f60b6297ced2ea76e34651", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x548ca959f5bc870502e34a6a6588fcc84339f07226557a9b601e580ee434cf7e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x404c9b96e72d670b118f253994533902cea8e8905cb6a341e12a91c8500b70f7", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x349fa19f377350ecaea31dd8486a281546eb070214059f1551d24d4f9cdaa565", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x6117f1c9999903c9289b0c1415c895f0810166df78f60b6297ced2ea76e34651", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x1e4c40e58408c4916b3c0acc7044049824c50b0bd97091cb33eca52222eea6a7", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c04067e96a83e2b0c65f81c8a210a2088b45c4cbaa5a15b59f3ca21f1d8ae07", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0x43f18bb29c7d3a5ea26d340fc239438fb05b0644d49db8f1559bddd38ed86cfa", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x94d5c3ff4637fc5d129802b625852d64498497bc1b7ec55a8c16ea01af9f19ad", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x548ca959f5bc870502e34a6a6588fcc84339f07226557a9b601e580ee434cf7e", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x404c9b96e72d670b118f253994533902cea8e8905cb6a341e12a91c8500b70f7", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x43f18bb29c7d3a5ea26d340fc239438fb05b0644d49db8f1559bddd38ed86cfa", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x94d5c3ff4637fc5d129802b625852d64498497bc1b7ec55a8c16ea01af9f19ad", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x1e4c40e58408c4916b3c0acc7044049824c50b0bd97091cb33eca52222eea6a7", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c04067e96a83e2b0c65f81c8a210a2088b45c4cbaa5a15b59f3ca21f1d8ae07", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0x86ac739c87c10de1e46ac532093e30be8639e0830d859f32b949b13a9e12dc2b", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb7ec28e0f6f769330401a3213ea9d2e5f6337fce4337ebbad1fd01f8946289c8", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x548ca959f5bc870502e34a6a6588fcc84339f07226557a9b601e580ee434cf7e", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x404c9b96e72d670b118f253994533902cea8e8905cb6a341e12a91c8500b70f7", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x86ac739c87c10de1e46ac532093e30be8639e0830d859f32b949b13a9e12dc2b", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xb7ec28e0f6f769330401a3213ea9d2e5f6337fce4337ebbad1fd01f8946289c8", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x1e4c40e58408c4916b3c0acc7044049824c50b0bd97091cb33eca52222eea6a7", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x3c04067e96a83e2b0c65f81c8a210a2088b45c4cbaa5a15b59f3ca21f1d8ae07", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0x4ff6ba73eb495fbfdf2a5fc9b13307e541cc9426af96827451cd6fa08528486e", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7395a1a844d205bf2bc5bf8ff97f597815ccc9f2092c69ef90253682a5b51847", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x548ca959f5bc870502e34a6a6588fcc84339f07226557a9b601e580ee434cf7e", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x404c9b96e72d670b118f253994533902cea8e8905cb6a341e12a91c8500b70f7", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x4ff6ba73eb495fbfdf2a5fc9b13307e541cc9426af96827451cd6fa08528486e", - "indexes" : { - "data" : 3, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x7395a1a844d205bf2bc5bf8ff97f597815ccc9f2092c69ef90253682a5b51847", - "indexes" : { - "data" : 3, - "gas" : 2, - "value" : 1 + }, + { + "indexes" : { + "data" : 3, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a300000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } - }, - { - "hash" : "0x1e4c40e58408c4916b3c0acc7044049824c50b0bd97091cb33eca52222eea6a7", - "indexes" : { - "data" : 3, - "gas" : 3, - "value" : 0 + } + }, + { + "indexes" : { + "data" : 0, + "gas" : [ + 2 + ], + "value" : [ + 1, + 0 + ] + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "a100000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a200000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a300000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } - }, - { - "hash" : "0x3c04067e96a83e2b0c65f81c8a210a2088b45c4cbaa5a15b59f3ca21f1d8ae07", - "indexes" : { - "data" : 3, - "gas" : 3, - "value" : 1 + } + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 1 + ], + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + "0x04" : "0x00", + "0x05" : "0x00", + "0x0a" : "0x00", + "0x0b" : "0x00", + "0x0c" : "0x00" + } + }, + "a100000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a200000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a300000000000000000000000000000000000000" : { + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000600073b00000000000000000000000000000000000000061c350f1600a556000600060006000600073c00000000000000000000000000000000000000061c350f1600b556000600060006000600073d00000000000000000000000000000000000000061c350f1600c55600c600455600c600555", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[10]](CALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[11]](CALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0) [[12]](CALL 50000 0xd000000000000000000000000000000000000000 0 0 0 0 0) [[4]]12 [[5]]12 }", + "nonce" : "", "storage" : { } }, - "0xa100000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000600073b00000000000000000000000000000000000000061c350f2600a556000600060006000600073c00000000000000000000000000000000000000061c350f2600b556000600060006000600073d00000000000000000000000000000000000000061c350f2600c55600c600455600c600555", - "nonce" : "0x00", + "a100000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[10]](CALLCODE 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[11]](CALLCODE 50000 0xc000000000000000000000000000000000000000 0 0 0 0 0) [[12]](CALLCODE 50000 0xd000000000000000000000000000000000000000 0 0 0 0 0) [[4]]12 [[5]]12 }", + "nonce" : "", "storage" : { } }, - "0xa200000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600060006000600073b00000000000000000000000000000000000000061c350f4600a55600060006000600073c00000000000000000000000000000000000000061c350f4600b55600060006000600073d00000000000000000000000000000000000000061c350f4600c55600c600455600c600555", - "nonce" : "0x00", + "a200000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[10]](DELEGATECALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0) [[11]](DELEGATECALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0) [[12]](DELEGATECALL 50000 0xd000000000000000000000000000000000000000 0 0 0 0) [[4]]12 [[5]]12 }", + "nonce" : "", "storage" : { } }, - "0xa300000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000600073b00000000000000000000000000000000000000061c350f1600a55600060006000600073c00000000000000000000000000000000000000061c350f4600b556000600060006000600073d00000000000000000000000000000000000000061c350f2600c55600c600455600c600555", - "nonce" : "0x00", + "a300000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[10]](CALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0 0) [[11]](DELEGATECALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0) [[12]](CALLCODE 50000 0xd000000000000000000000000000000000000000 0 0 0 0 0) [[4]]12 [[5]]12 }", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xac00000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000356203f7a0f1", - "nonce" : "0x00", + "ac00000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (CALL 260000 (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xb000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600c60015560016000fd", - "nonce" : "0x00", + "b000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] 12 (REVERT 0 1) }", + "nonce" : "", "storage" : { } }, - "0xc000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600c60025560016000fd", - "nonce" : "0x00", + "c000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[2]] 12 (REVERT 0 1) }", + "nonce" : "", "storage" : { } }, - "0xd000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600c60035560016000fd", - "nonce" : "0x00", + "d000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[3]] 12 (REVERT 0 1) }", + "nonce" : "", "storage" : { } } @@ -1378,18 +425,18 @@ "000000000000000000000000a300000000000000000000000000000000000000" ], "gasLimit" : [ - "0x0c3500", - "0x0222e0", - "0x027100", - "0xc350" + "800000", + "140000", + "160000", + "50000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xac00000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ac00000000000000000000000000000000000000", "value" : [ - "0x00", - "0x0a" + "0", + "10" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertOpcodeReturn.json b/GeneralStateTests/stRevertTest/RevertOpcodeReturn.json index 2ac2dc10d..501c99865 100644 --- a/GeneralStateTests/stRevertTest/RevertOpcodeReturn.json +++ b/GeneralStateTests/stRevertTest/RevertOpcodeReturn.json @@ -2,563 +2,152 @@ "RevertOpcodeReturn" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeReturnFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 5, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 5, - "gas" : 1, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Frontier" : [ - { - "hash" : "0x070f9dec5ea98b79d4cc71a6e2fb99f40d90862131f8e23331c3a0a580f2dccd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x070f9dec5ea98b79d4cc71a6e2fb99f40d90862131f8e23331c3a0a580f2dccd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x070f9dec5ea98b79d4cc71a6e2fb99f40d90862131f8e23331c3a0a580f2dccd", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x070f9dec5ea98b79d4cc71a6e2fb99f40d90862131f8e23331c3a0a580f2dccd", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x070f9dec5ea98b79d4cc71a6e2fb99f40d90862131f8e23331c3a0a580f2dccd", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x070f9dec5ea98b79d4cc71a6e2fb99f40d90862131f8e23331c3a0a580f2dccd", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 5, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x070f9dec5ea98b79d4cc71a6e2fb99f40d90862131f8e23331c3a0a580f2dccd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x070f9dec5ea98b79d4cc71a6e2fb99f40d90862131f8e23331c3a0a580f2dccd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x070f9dec5ea98b79d4cc71a6e2fb99f40d90862131f8e23331c3a0a580f2dccd", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x070f9dec5ea98b79d4cc71a6e2fb99f40d90862131f8e23331c3a0a580f2dccd", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x070f9dec5ea98b79d4cc71a6e2fb99f40d90862131f8e23331c3a0a580f2dccd", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x070f9dec5ea98b79d4cc71a6e2fb99f40d90862131f8e23331c3a0a580f2dccd", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 5, - "gas" : 1, - "value" : 0 + }, + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x726576657274206d657373616765" + } + }, + "a100000000000000000000000000000000000000" : { + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x60b9ed910a10118d39799374bf0defc97313bbbc449a621cbf7eb3d4d68ad450", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x60b9ed910a10118d39799374bf0defc97313bbbc449a621cbf7eb3d4d68ad450", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x11b003005214b4ec1532ec3381f60107b974a1c242f52787ca40d3f3fe3672b4", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11b003005214b4ec1532ec3381f60107b974a1c242f52787ca40d3f3fe3672b4", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x26fbf1e03628ac787377d3e309d18c04d005d31743b650400e6da40539474c79", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11bd0a7dd947e26013b63c7f1dad8e16343c4eec8646222186a4f2cf0ac032bc", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x11b003005214b4ec1532ec3381f60107b974a1c242f52787ca40d3f3fe3672b4", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11b003005214b4ec1532ec3381f60107b974a1c242f52787ca40d3f3fe3672b4", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x11b003005214b4ec1532ec3381f60107b974a1c242f52787ca40d3f3fe3672b4", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11b003005214b4ec1532ec3381f60107b974a1c242f52787ca40d3f3fe3672b4", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x11b003005214b4ec1532ec3381f60107b974a1c242f52787ca40d3f3fe3672b4", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11b003005214b4ec1532ec3381f60107b974a1c242f52787ca40d3f3fe3672b4", - "indexes" : { - "data" : 5, - "gas" : 1, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 1, + 2, + 3, + 4, + 5 + ], + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "a100000000000000000000000000000000000000" : { + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x60206000600060006000600035620249f0f1600155600051600255", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]](CALL 150000 (CALLDATALOAD 0) 0 0 0 0 32) [[2]] (MLOAD 0) }", + "nonce" : "", "storage" : { } }, - "0xa100000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6c726576657274656420646174616000556d726576657274206d65737361676560005260206000fd", - "nonce" : "0x00", + "a100000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 32) }", + "nonce" : "0", "storage" : { } }, - "0xa200000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6c726576657274656420646174616000556d726576657274206d65737361676560005260006000fd", - "nonce" : "0x00", + "a200000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa300000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6c726576657274656420646174616000556d726576657274206d6573736167656000526e0fffffffffffffffffffffffffffff6000fd", - "nonce" : "0x00", + "a300000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0 0xfffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa400000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6c726576657274656420646174616000556d726576657274206d6573736167656000526000610100fd", - "nonce" : "0x00", + "a400000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0x0100 0x00) }", + "nonce" : "0", "storage" : { } }, - "0xa500000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6c726576657274656420646174616000556d726576657274206d65737361676560005260006001fd", - "nonce" : "0x00", + "a500000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0x01 0x00) }", + "nonce" : "0", "storage" : { } }, - "0xa600000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6c726576657274656420646174616000556d726576657274206d65737361676560005260006e0ffffffffffffffffffffffffffffffd", - "nonce" : "0x00", + "a600000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x72657665727465642064617461) (MSTORE 0 0x726576657274206d657373616765) (REVERT 0xfffffffffffffffffffffffffffff 0x00) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -573,15 +162,15 @@ "000000000000000000000000a600000000000000000000000000000000000000" ], "gasLimit" : [ - "0x0c3500", - "0x011170" + "800000", + "70000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertPrecompiledTouch.json b/GeneralStateTests/stRevertTest/RevertPrecompiledTouch.json index 53e725e85..abdfb0ce5 100644 --- a/GeneralStateTests/stRevertTest/RevertPrecompiledTouch.json +++ b/GeneralStateTests/stRevertTest/RevertPrecompiledTouch.json @@ -2,137 +2,123 @@ "RevertPrecompiledTouch" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertPrecompiledTouchFiller.json" }, "env" : { - "currentCoinbase" : "0x68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x3d37ef", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "4012015", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x424be5185a107f496bf82f63a1f0e0c533ff5913687ed87c4fd198637c439340", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000002" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000003" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000004" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000005" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000006" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000007" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000008" : { + "balance" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0x424be5185a107f496bf82f63a1f0e0c533ff5913687ed87c4fd198637c439340", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x424be5185a107f496bf82f63a1f0e0c533ff5913687ed87c4fd198637c439340", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x424be5185a107f496bf82f63a1f0e0c533ff5913687ed87c4fd198637c439340", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x424be5185a107f496bf82f63a1f0e0c533ff5913687ed87c4fd198637c439340", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x60006000600060006000600161c350f15060006000600060006000600261c350f15060006000600060006000600361c350f15060006000600060006000600461c350f15060006000600060006000600561c350f15060006000600060006000600661c350f15060006000600060006000600761c350f15060006000600060006000600861c350f1505a6001555a6002555a600355", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (CALL 50000 1 0 0 0 0 0) (CALL 50000 2 0 0 0 0 0) (CALL 50000 3 0 0 0 0 0) (CALL 50000 4 0 0 0 0 0) (CALL 50000 5 0 0 0 0 0) (CALL 50000 6 0 0 0 0 0) (CALL 50000 7 0 0 0 0 0) (CALL 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -142,14 +128,14 @@ "" ], "gasLimit" : [ - "0xea60" + "60000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertPrecompiledTouchCC.json b/GeneralStateTests/stRevertTest/RevertPrecompiledTouchCC.json index 237ae82c9..b801cecca 100644 --- a/GeneralStateTests/stRevertTest/RevertPrecompiledTouchCC.json +++ b/GeneralStateTests/stRevertTest/RevertPrecompiledTouchCC.json @@ -2,137 +2,123 @@ "RevertPrecompiledTouchCC" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertPrecompiledTouchCCFiller.json" }, "env" : { - "currentCoinbase" : "0x68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x3d37ef", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "4012015", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xde48a41a0688b373a48fd2e17d4c4221a8c3c8fd0b7d15318bb40c4320418dee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000002" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000003" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000004" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000005" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000006" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000007" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000008" : { + "balance" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xde48a41a0688b373a48fd2e17d4c4221a8c3c8fd0b7d15318bb40c4320418dee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xde48a41a0688b373a48fd2e17d4c4221a8c3c8fd0b7d15318bb40c4320418dee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xde48a41a0688b373a48fd2e17d4c4221a8c3c8fd0b7d15318bb40c4320418dee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xde48a41a0688b373a48fd2e17d4c4221a8c3c8fd0b7d15318bb40c4320418dee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x60006000600060006000600161c350f25060006000600060006000600261c350f25060006000600060006000600361c350f25060006000600060006000600461c350f25060006000600060006000600561c350f25060006000600060006000600661c350f25060006000600060006000600761c350f25060006000600060006000600861c350f2505a6001555a6002555a600355", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (CALLCODE 50000 1 0 0 0 0 0) (CALLCODE 50000 2 0 0 0 0 0) (CALLCODE 50000 3 0 0 0 0 0) (CALLCODE 50000 4 0 0 0 0 0) (CALLCODE 50000 5 0 0 0 0 0) (CALLCODE 50000 6 0 0 0 0 0) (CALLCODE 50000 7 0 0 0 0 0) (CALLCODE 50000 8 0 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -142,14 +128,14 @@ "" ], "gasLimit" : [ - "0xea60" + "60000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertPrecompiledTouchDC.json b/GeneralStateTests/stRevertTest/RevertPrecompiledTouchDC.json index ab4a567aa..736f6cd04 100644 --- a/GeneralStateTests/stRevertTest/RevertPrecompiledTouchDC.json +++ b/GeneralStateTests/stRevertTest/RevertPrecompiledTouchDC.json @@ -2,137 +2,123 @@ "RevertPrecompiledTouchDC" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertPrecompiledTouchDCFiller.json" }, "env" : { - "currentCoinbase" : "0x68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x3d37ef", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "4012015", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf6e61932177156675bc1f56bafea0999e78ccd7e47c86e549cc5ece7b65a1824", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000002" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000003" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000004" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000005" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000006" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000007" : { + "balance" : "0" + }, + "0000000000000000000000000000000000000008" : { + "balance" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xf6e61932177156675bc1f56bafea0999e78ccd7e47c86e549cc5ece7b65a1824", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf6e61932177156675bc1f56bafea0999e78ccd7e47c86e549cc5ece7b65a1824", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf6e61932177156675bc1f56bafea0999e78ccd7e47c86e549cc5ece7b65a1824", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf6e61932177156675bc1f56bafea0999e78ccd7e47c86e549cc5ece7b65a1824", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600161c350f4506000600060006000600261c350f4506000600060006000600361c350f4506000600060006000600461c350f4506000600060006000600561c350f4506000600060006000600661c350f4506000600060006000600761c350f4506000600060006000600861c350f4505a6001555a6002555a600355", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 50000 1 0 0 0 0) (DELEGATECALL 50000 2 0 0 0 0) (DELEGATECALL 50000 3 0 0 0 0) (DELEGATECALL 50000 4 0 0 0 0) (DELEGATECALL 50000 5 0 0 0 0) (DELEGATECALL 50000 6 0 0 0 0) (DELEGATECALL 50000 7 0 0 0 0) (DELEGATECALL 50000 8 0 0 0 0) [[1]] (GAS) [[2]] (GAS) [[3]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -142,14 +128,14 @@ "" ], "gasLimit" : [ - "0xea60" + "60000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertPrefound.json b/GeneralStateTests/stRevertTest/RevertPrefound.json index 16738a41b..f4afd0ffd 100644 --- a/GeneralStateTests/stRevertTest/RevertPrefound.json +++ b/GeneralStateTests/stRevertTest/RevertPrefound.json @@ -2,88 +2,96 @@ "RevertPrefound" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertPrefoundFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x13e72a366d61652d0793db7748e4403bb523238d390736520834918f4483b030", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbf9cac93b8f08ed994e2f738612995f8a41f412f1e6756a956e29053646ac96c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x13e72a366d61652d0793db7748e4403bb523238d390736520834918f4483b030", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x13e72a366d61652d0793db7748e4403bb523238d390736520834918f4483b030", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xbf9cac93b8f08ed994e2f738612995f8a41f412f1e6756a956e29053646ac96c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "1", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0x01", + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "0x602060006000f0600055600c600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (CREATE 0 0 32) [[1]]12 }", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +101,14 @@ "" ], "gasLimit" : [ - "0x016f30" + "94000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertPrefoundCall.json b/GeneralStateTests/stRevertTest/RevertPrefoundCall.json index b3b8bb33d..197374c12 100644 --- a/GeneralStateTests/stRevertTest/RevertPrefoundCall.json +++ b/GeneralStateTests/stRevertTest/RevertPrefoundCall.json @@ -2,88 +2,96 @@ "RevertPrefoundCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertPrefoundCallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xed72adb985f07be27c7fa0aed129485c9fe288082184d69560967cfca89dccba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xed72adb985f07be27c7fa0aed129485c9fe288082184d69560967cfca89dccba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe06a0eec31a3a3ef18732bc4f5ec10475e4791591728e3222ead654c3990343e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe06a0eec31a3a3ef18732bc4f5ec10475e4791591728e3222ead654c3990343e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xed72adb985f07be27c7fa0aed129485c9fe288082184d69560967cfca89dccba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0x01", + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "0x60206000602060006000737db299e0885c85039f56fa504a13dd8ce8a56aa761c350f1600055600c600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (CALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 }", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +101,14 @@ "" ], "gasLimit" : [ - "0x016f30" + "94000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertPrefoundCallOOG.json b/GeneralStateTests/stRevertTest/RevertPrefoundCallOOG.json index 705a4d0d4..44fa982c9 100644 --- a/GeneralStateTests/stRevertTest/RevertPrefoundCallOOG.json +++ b/GeneralStateTests/stRevertTest/RevertPrefoundCallOOG.json @@ -2,88 +2,57 @@ "RevertPrefoundCallOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertPrefoundCallOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd929a48e85304ee89d27dac9a747049fd1107c6c9511803709ef428d0825e020", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd929a48e85304ee89d27dac9a747049fd1107c6c9511803709ef428d0825e020", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd929a48e85304ee89d27dac9a747049fd1107c6c9511803709ef428d0825e020", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd929a48e85304ee89d27dac9a747049fd1107c6c9511803709ef428d0825e020", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd929a48e85304ee89d27dac9a747049fd1107c6c9511803709ef428d0825e020", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0x01", + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "0x60206000602060006000737db299e0885c85039f56fa504a13dd8ce8a56aa761c350f1600055600c600155600c600255", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (CALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 [[2]]12 }", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0xf618" + "63000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertPrefoundEmpty.json b/GeneralStateTests/stRevertTest/RevertPrefoundEmpty.json index ccd1dcefa..94846430c 100644 --- a/GeneralStateTests/stRevertTest/RevertPrefoundEmpty.json +++ b/GeneralStateTests/stRevertTest/RevertPrefoundEmpty.json @@ -2,88 +2,96 @@ "RevertPrefoundEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertPrefoundEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7928c8f99a40ee4e90832070c4cb9c8ed2450c32dfe63a4c441fa6b2183e3946", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc2ea011c70b9915217b5443a28ce2e2831ae80d401946d58b5b6cb98c14a5786", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7928c8f99a40ee4e90832070c4cb9c8ed2450c32dfe63a4c441fa6b2183e3946", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7928c8f99a40ee4e90832070c4cb9c8ed2450c32dfe63a4c441fa6b2183e3946", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xc2ea011c70b9915217b5443a28ce2e2831ae80d401946d58b5b6cb98c14a5786", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "1", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0x00", + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "0x602060006000f0600055600c600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (CREATE 0 0 32) [[1]]12 }", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +101,14 @@ "" ], "gasLimit" : [ - "0x016f30" + "94000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertPrefoundEmptyCall.json b/GeneralStateTests/stRevertTest/RevertPrefoundEmptyCall.json index 59b46919e..76c731322 100644 --- a/GeneralStateTests/stRevertTest/RevertPrefoundEmptyCall.json +++ b/GeneralStateTests/stRevertTest/RevertPrefoundEmptyCall.json @@ -2,88 +2,92 @@ "RevertPrefoundEmptyCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertPrefoundEmptyCallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7ded03faa6a98d0e873172b3b0a346b6651730a957883ffd4e38cbc0c2cc7923", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x197c27f55074d15725bf77c4d8e87efdd1229bb3857541ee86009870d453d0e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa6e1a58acac8171e0e4afe14904ada48877349bb40aa35a05593563e957713cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa6e1a58acac8171e0e4afe14904ada48877349bb40aa35a05593563e957713cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x197c27f55074d15725bf77c4d8e87efdd1229bb3857541ee86009870d453d0e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0x00", + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "0x60206000602060006000737db299e0885c85039f56fa504a13dd8ce8a56aa761c350f1600055600c600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (CALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 }", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +97,14 @@ "" ], "gasLimit" : [ - "0x016f30" + "94000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertPrefoundEmptyCallOOG.json b/GeneralStateTests/stRevertTest/RevertPrefoundEmptyCallOOG.json index dd575a86f..5f63adcbe 100644 --- a/GeneralStateTests/stRevertTest/RevertPrefoundEmptyCallOOG.json +++ b/GeneralStateTests/stRevertTest/RevertPrefoundEmptyCallOOG.json @@ -2,88 +2,57 @@ "RevertPrefoundEmptyCallOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertPrefoundEmptyCallOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb14bde7808a9c984b3ec3e9826e246e3318a9f911db888e6c64486b92354d5a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xb14bde7808a9c984b3ec3e9826e246e3318a9f911db888e6c64486b92354d5a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb14bde7808a9c984b3ec3e9826e246e3318a9f911db888e6c64486b92354d5a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb14bde7808a9c984b3ec3e9826e246e3318a9f911db888e6c64486b92354d5a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb14bde7808a9c984b3ec3e9826e246e3318a9f911db888e6c64486b92354d5a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0x00", + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "0x60206000602060006000737db299e0885c85039f56fa504a13dd8ce8a56aa761c350f1600055600c600155600c600255", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (CALL 50000 0x7db299e0885c85039f56fa504a13dd8ce8a56aa7 0 0 32 0 32) [[1]]12 [[2]]12 }", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0xf618" + "63000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertPrefoundEmptyOOG.json b/GeneralStateTests/stRevertTest/RevertPrefoundEmptyOOG.json index 3fd6d0b9f..02968019f 100644 --- a/GeneralStateTests/stRevertTest/RevertPrefoundEmptyOOG.json +++ b/GeneralStateTests/stRevertTest/RevertPrefoundEmptyOOG.json @@ -2,88 +2,57 @@ "RevertPrefoundEmptyOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertPrefoundEmptyOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3452411abdcb0aec5b56356ed88d77bbec0a0d9fcabad3801ace5b0692fa90a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x3452411abdcb0aec5b56356ed88d77bbec0a0d9fcabad3801ace5b0692fa90a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3452411abdcb0aec5b56356ed88d77bbec0a0d9fcabad3801ace5b0692fa90a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3452411abdcb0aec5b56356ed88d77bbec0a0d9fcabad3801ace5b0692fa90a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3452411abdcb0aec5b56356ed88d77bbec0a0d9fcabad3801ace5b0692fa90a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0x00", + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "0x602060006000f0600055600c600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (CREATE 0 0 32) [[1]]12 }", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x016b48" + "93000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertPrefoundOOG.json b/GeneralStateTests/stRevertTest/RevertPrefoundOOG.json index 760c6cdd4..79e6dd766 100644 --- a/GeneralStateTests/stRevertTest/RevertPrefoundOOG.json +++ b/GeneralStateTests/stRevertTest/RevertPrefoundOOG.json @@ -2,88 +2,57 @@ "RevertPrefoundOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertPrefoundOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd059b45833134777f23eca1eb256ca5a2451fc5ecea41e0cc8f581faccdf385e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd059b45833134777f23eca1eb256ca5a2451fc5ecea41e0cc8f581faccdf385e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd059b45833134777f23eca1eb256ca5a2451fc5ecea41e0cc8f581faccdf385e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd059b45833134777f23eca1eb256ca5a2451fc5ecea41e0cc8f581faccdf385e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd059b45833134777f23eca1eb256ca5a2451fc5ecea41e0cc8f581faccdf385e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { - "balance" : "0x01", + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "balance" : "1", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "0x602060006000f0600055600c600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "{ [[0]] (CREATE 0 0 32) [[1]]12 }", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x016b48" + "93000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertRemoteSubCallStorageOOG.json b/GeneralStateTests/stRevertTest/RevertRemoteSubCallStorageOOG.json index 28e3f4ac6..621995984 100644 --- a/GeneralStateTests/stRevertTest/RevertRemoteSubCallStorageOOG.json +++ b/GeneralStateTests/stRevertTest/RevertRemoteSubCallStorageOOG.json @@ -2,161 +2,88 @@ "RevertRemoteSubCallStorageOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertRemoteSubCallStorageOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x04068d2d81730e74a66ab864af1073c8b7ade7c47680d10d782638320f776c20", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0df4cf0474e559e763dd66ca1f543974ae6c675ddf2c7c1deb88274ce226819a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x55c8e8054f7f508f34286f7016c8a00d0d829ec3d0778bb3204fed4ae04b4607", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x04068d2d81730e74a66ab864af1073c8b7ade7c47680d10d782638320f776c20", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x991a17af593912ef7be7d526b56e4605271135c8e3f9ab16260ecc53179727ab", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x55c8e8054f7f508f34286f7016c8a00d0d829ec3d0778bb3204fed4ae04b4607", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xeb8017c3cc4624d2be7c5c746a416e1ba33c6cdaf57bac91e9a3c368e16e8fd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0x1d76ca685425229b1bcc27120c269e0134b87b646ba36735ea9e15b8a604a438", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x55c8e8054f7f508f34286f7016c8a00d0d829ec3d0778bb3204fed4ae04b4607", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 + "network" : [ + "Frontier" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x01" : "0x0d" + } } } - ], - "Homestead" : [ - { - "hash" : "0xeb8017c3cc4624d2be7c5c746a416e1ba33c6cdaf57bac91e9a3c368e16e8fd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1d76ca685425229b1bcc27120c269e0134b87b646ba36735ea9e15b8a604a438", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 2, + "value" : -1 }, - { - "hash" : "0x55c8e8054f7f508f34286f7016c8a00d0d829ec3d0778bb3204fed4ae04b4607", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x04068d2d81730e74a66ab864af1073c8b7ade7c47680d10d782638320f776c20", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x991a17af593912ef7be7d526b56e4605271135c8e3f9ab16260ecc53179727ab", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x55c8e8054f7f508f34286f7016c8a00d0d829ec3d0778bb3204fed4ae04b4607", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x00" : "0x0c", + "0x01" : "0x0d" + } } } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x01", + "a000000000000000000000000000000000000000" : { + "balance" : "1", "code" : "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c414610049578063c040622614610058575b610000565b346100005761005661007f565b005b346100005761006561008a565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b6000600060405161016f80610163833901809050604051809103906000f080156100005790508073ffffffffffffffffffffffffffffffffffffffff166373027f6d306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b156100005760325a03f11561000057505050600d600181905550600191505b50905600606060405234610000575b610156806100196000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806373027f6d1461003e575b610000565b346100005761006f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610071565b005b8073ffffffffffffffffffffffffffffffffffffffff1660405180807f73746f7228290000000000000000000000000000000000000000000000000000815250600601905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f192505050505b505600a165627a7a72305820db9c9d1f37fd36768131a0bf9687f465e15b0503452e603be6b6f07b70d72e260029a165627a7a72305820f8ff2f7feef24d01a1cc070e67db9e15ac34810c8e5d1c7f34f3c38148eeae900029", - "nonce" : "0x00", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -166,16 +93,16 @@ "0xc0406226" ], "gasLimit" : [ - "0x024220", - "0x02c308", - "0x023668" + "148000", + "181000", + "145000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertRemoteSubCallStorageOOG2.json b/GeneralStateTests/stRevertTest/RevertRemoteSubCallStorageOOG2.json index 5e8693e95..ca7fb91f3 100644 --- a/GeneralStateTests/stRevertTest/RevertRemoteSubCallStorageOOG2.json +++ b/GeneralStateTests/stRevertTest/RevertRemoteSubCallStorageOOG2.json @@ -2,161 +2,89 @@ "RevertRemoteSubCallStorageOOG2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertRemoteSubCallStorageOOG2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd2c01284b0648a4b5dc0fda0cb1cf0278549930aef7a3d6f2f7060eb12fb13cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd2c01284b0648a4b5dc0fda0cb1cf0278549930aef7a3d6f2f7060eb12fb13cf", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc06202a27f33b4314aace545da9d82fddd233f9c927e8736af75c612fbe94216", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x74724ec28c6efcabe715b59397c0141bd023d845cefdeb7bd69e7967827c9e3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x74724ec28c6efcabe715b59397c0141bd023d845cefdeb7bd69e7967827c9e3e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc06202a27f33b4314aace545da9d82fddd233f9c927e8736af75c612fbe94216", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb3567d3bcac54b002ffec737200094bbbb870b506fa1c2470f35aa40ab04d2ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xb3567d3bcac54b002ffec737200094bbbb870b506fa1c2470f35aa40ab04d2ea", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc06202a27f33b4314aace545da9d82fddd233f9c927e8736af75c612fbe94216", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 + "network" : [ + "Frontier" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x00" : "0x0d", + "0x01" : "0x0e" + } } } - ], - "Homestead" : [ - { - "hash" : "0xb3567d3bcac54b002ffec737200094bbbb870b506fa1c2470f35aa40ab04d2ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb3567d3bcac54b002ffec737200094bbbb870b506fa1c2470f35aa40ab04d2ea", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 2, + "value" : -1 }, - { - "hash" : "0xc06202a27f33b4314aace545da9d82fddd233f9c927e8736af75c612fbe94216", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x74724ec28c6efcabe715b59397c0141bd023d845cefdeb7bd69e7967827c9e3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x74724ec28c6efcabe715b59397c0141bd023d845cefdeb7bd69e7967827c9e3e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xc06202a27f33b4314aace545da9d82fddd233f9c927e8736af75c612fbe94216", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 + "network" : [ + "ALL" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x00" : "0x0d", + "0x01" : "0x0e" + } } } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x01", + "a000000000000000000000000000000000000000" : { + "balance" : "1", "code" : "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c414610049578063c040622614610058575b610000565b346100005761005661007f565b005b346100005761006561008a565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b6000600060405161016f8061016b833901809050604051809103906000f080156100005790508073ffffffffffffffffffffffffffffffffffffffff166373027f6d306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b156100005760325a03f11561000057505050600d600081905550600e600181905550600191505b50905600606060405234610000575b610156806100196000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806373027f6d1461003e575b610000565b346100005761006f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610071565b005b8073ffffffffffffffffffffffffffffffffffffffff1660405180807f73746f7228290000000000000000000000000000000000000000000000000000815250600601905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f192505050505b505600a165627a7a723058201d40a4f4ab84c9ed5c1e6f9e4574875993931efb14de8c4fc6be556ceeef5cc20029a165627a7a72305820b3260ed34e660b9533216c5881783a6cc70a072f3dc8d26e835c4d14c3c2a7890029", - "nonce" : "0x00", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -166,16 +94,16 @@ "0xc0406226" ], "gasLimit" : [ - "0x029810", - "0x02c308", - "0x023668" + "170000", + "181000", + "145000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertSubCallStorageOOG.json b/GeneralStateTests/stRevertTest/RevertSubCallStorageOOG.json index 9002ed279..0ae384067 100644 --- a/GeneralStateTests/stRevertTest/RevertSubCallStorageOOG.json +++ b/GeneralStateTests/stRevertTest/RevertSubCallStorageOOG.json @@ -2,201 +2,70 @@ "RevertSubCallStorageOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertSubCallStorageOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc7a23c4726c66e9ebf0e3f467d0bb73cf761315adacab2e5a0789df256070900", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd32c212c33ef5f828ae5d5ec88a9a5073ded539cc115abff89d79d54374d9f16", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc7a23c4726c66e9ebf0e3f467d0bb73cf761315adacab2e5a0789df256070900", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd32c212c33ef5f828ae5d5ec88a9a5073ded539cc115abff89d79d54374d9f16", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : 0 }, - { - "hash" : "0xc7a23c4726c66e9ebf0e3f467d0bb73cf761315adacab2e5a0789df256070900", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd32c212c33ef5f828ae5d5ec88a9a5073ded539cc115abff89d79d54374d9f16", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0x67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc7a23c4726c66e9ebf0e3f467d0bb73cf761315adacab2e5a0789df256070900", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd32c212c33ef5f828ae5d5ec88a9a5073ded539cc115abff89d79d54374d9f16", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "ALL" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x67a9eb69bb5ed24c9f1da061d32d7faa6dd658fe46ed4157d22ab990eb87ee1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc7a23c4726c66e9ebf0e3f467d0bb73cf761315adacab2e5a0789df256070900", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : 0 }, - { - "hash" : "0xd32c212c33ef5f828ae5d5ec88a9a5073ded539cc115abff89d79d54374d9f16", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "ALL" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x00" : "0x0c", + "0x01" : "0x0d", + "0x02" : "0x0e" + } } } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x01", + "a000000000000000000000000000000000000000" : { + "balance" : "1", "code" : "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c4146046578063c0406226146052575b6000565b3460005760506076565b005b34600057605c6081565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b600060896076565b600d600181905550600e600281905550600190505b905600a165627a7a723058202a8a75d7d795b5bcb9042fb18b283daa90b999a11ddec892f548732235342eb60029", - "nonce" : "0x00", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -206,16 +75,16 @@ "0xc0406226" ], "gasLimit" : [ - "0x013c68", - "0x02c308" + "81000", + "181000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stRevertTest/RevertSubCallStorageOOG2.json b/GeneralStateTests/stRevertTest/RevertSubCallStorageOOG2.json index 22e14d8fd..6a47de4b2 100644 --- a/GeneralStateTests/stRevertTest/RevertSubCallStorageOOG2.json +++ b/GeneralStateTests/stRevertTest/RevertSubCallStorageOOG2.json @@ -2,201 +2,69 @@ "RevertSubCallStorageOOG2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/RevertSubCallStorageOOG2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6d4219451c92eff91d7a6404f8dfd48fe36b087480a2eb7e5cb8efaaf12bc109", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6d4219451c92eff91d7a6404f8dfd48fe36b087480a2eb7e5cb8efaaf12bc109", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xcf684bf367af93683536de7327a3873e72f3d8674deefc114b7c8aabc782ca32", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc61bcc459fec38f4a7c3ee32e2a4f6d4578d165ac45505bffa98b53a305e8d15", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6d4219451c92eff91d7a6404f8dfd48fe36b087480a2eb7e5cb8efaaf12bc109", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6d4219451c92eff91d7a6404f8dfd48fe36b087480a2eb7e5cb8efaaf12bc109", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xcf684bf367af93683536de7327a3873e72f3d8674deefc114b7c8aabc782ca32", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc61bcc459fec38f4a7c3ee32e2a4f6d4578d165ac45505bffa98b53a305e8d15", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6d4219451c92eff91d7a6404f8dfd48fe36b087480a2eb7e5cb8efaaf12bc109", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6d4219451c92eff91d7a6404f8dfd48fe36b087480a2eb7e5cb8efaaf12bc109", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : 0 }, - { - "hash" : "0xcf684bf367af93683536de7327a3873e72f3d8674deefc114b7c8aabc782ca32", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc61bcc459fec38f4a7c3ee32e2a4f6d4578d165ac45505bffa98b53a305e8d15", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6d4219451c92eff91d7a6404f8dfd48fe36b087480a2eb7e5cb8efaaf12bc109", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6d4219451c92eff91d7a6404f8dfd48fe36b087480a2eb7e5cb8efaaf12bc109", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xcf684bf367af93683536de7327a3873e72f3d8674deefc114b7c8aabc782ca32", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc61bcc459fec38f4a7c3ee32e2a4f6d4578d165ac45505bffa98b53a305e8d15", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "ALL" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x6d4219451c92eff91d7a6404f8dfd48fe36b087480a2eb7e5cb8efaaf12bc109", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6d4219451c92eff91d7a6404f8dfd48fe36b087480a2eb7e5cb8efaaf12bc109", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xcf684bf367af93683536de7327a3873e72f3d8674deefc114b7c8aabc782ca32", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : 0 }, - { - "hash" : "0xc61bcc459fec38f4a7c3ee32e2a4f6d4578d165ac45505bffa98b53a305e8d15", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "ALL" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x00" : "0x0d", + "0x01" : "0x0e" + } } } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x01", + "a000000000000000000000000000000000000000" : { + "balance" : "1", "code" : "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c4146046578063c0406226146052575b6000565b3460005760506076565b005b34600057605c6081565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b600060896076565b600d600081905550600e6001819055505b905600a165627a7a72305820b7c6987c21e63fed8a74d899557744a3be8d3fda191ce0f56cf261d6b860f6b40029", - "nonce" : "0x00", + "nonce" : "", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -206,16 +74,16 @@ "0xc0406226" ], "gasLimit" : [ - "0x0103c4", - "0x02c308" + "66500", + "181000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stRevertTest/TouchToEmptyAccountRevert.json b/GeneralStateTests/stRevertTest/TouchToEmptyAccountRevert.json index 024d46f8e..b6219e7e9 100644 --- a/GeneralStateTests/stRevertTest/TouchToEmptyAccountRevert.json +++ b/GeneralStateTests/stRevertTest/TouchToEmptyAccountRevert.json @@ -2,95 +2,64 @@ "TouchToEmptyAccountRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/TouchToEmptyAccountRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8b8c2f339c8b3eeb1372eca8d379983d99b1631a828913743ec3f17cc855c3fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8b8c2f339c8b3eeb1372eca8d379983d99b1631a828913743ec3f17cc855c3fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8b8c2f339c8b3eeb1372eca8d379983d99b1631a828913743ec3f17cc855c3fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8b8c2f339c8b3eeb1372eca8d379983d99b1631a828913743ec3f17cc855c3fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8b8c2f339c8b3eeb1372eca8d379983d99b1631a828913743ec3f17cc855c3fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b617530f16000556001600255", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](CALL 30000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] 1 }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x60006000600060006000731000000000000000000000000000000000000000617530f1600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[1]](CALL 30000 0x1000000000000000000000000000000000000000 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -100,14 +69,14 @@ "" ], "gasLimit" : [ - "0x011170" + "70000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/TouchToEmptyAccountRevert2.json b/GeneralStateTests/stRevertTest/TouchToEmptyAccountRevert2.json index d3b934fb5..0249aed49 100644 --- a/GeneralStateTests/stRevertTest/TouchToEmptyAccountRevert2.json +++ b/GeneralStateTests/stRevertTest/TouchToEmptyAccountRevert2.json @@ -2,95 +2,64 @@ "TouchToEmptyAccountRevert2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/TouchToEmptyAccountRevert2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x271c21195e9e41c52003339d0957473d172f67c4bb780a308e2ac800a0a50b24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x271c21195e9e41c52003339d0957473d172f67c4bb780a308e2ac800a0a50b24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xab0c055cc7ace4fbd1d251cabdafa7bca86064b231087adec534c90d6185eab2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xab0c055cc7ace4fbd1d251cabdafa7bca86064b231087adec534c90d6185eab2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x271c21195e9e41c52003339d0957473d172f67c4bb780a308e2ac800a0a50b24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x60006000600060006000731000000000000000000000000000000000000000617530f16002556001600355", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[2]](CALL 30000 0x1000000000000000000000000000000000000000 0 0 0 0 0) [[3]] 1 }", + "nonce" : "0", "storage" : { } }, - "0xba4f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x60006000600060006000731000000000000000000000000000000000000000617530f16000556000600060006000600073b94f5374fce5edbc8e2a8697c15331677e6ebf0b617530f1600155", - "nonce" : "0x00", + "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](CALL 30000 0x1000000000000000000000000000000000000000 0 0 0 0 0) [[1]](CALL 30000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -100,14 +69,14 @@ "" ], "gasLimit" : [ - "0x012e58" + "77400" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xba4f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stRevertTest/TouchToEmptyAccountRevert3.json b/GeneralStateTests/stRevertTest/TouchToEmptyAccountRevert3.json index a01d5c330..8d55eb90a 100644 --- a/GeneralStateTests/stRevertTest/TouchToEmptyAccountRevert3.json +++ b/GeneralStateTests/stRevertTest/TouchToEmptyAccountRevert3.json @@ -2,109 +2,78 @@ "TouchToEmptyAccountRevert3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stRevertTest/TouchToEmptyAccountRevert3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x408c421965df91a5ab9a8103c92e4497d11740e218ce569e47dd39b0ca924e2f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x408c421965df91a5ab9a8103c92e4497d11740e218ce569e47dd39b0ca924e2f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd53b7d6e4469317d1c11a5e26fce847c3b7c6f1acd59778db3528aa7e80dabaa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd53b7d6e4469317d1c11a5e26fce847c3b7c6f1acd59778db3528aa7e80dabaa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x408c421965df91a5ab9a8103c92e4497d11740e218ce569e47dd39b0ca924e2f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600073e94f5374fce5edbc8e2a8697c15331677e6ebf0b617530f16002556001600355", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[2]](CALL 30000 0xe94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[3]] 1 }", + "nonce" : "0", "storage" : { } }, - "0xba4f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600073d94f5374fce5edbc8e2a8697c15331677e6ebf0b617530f16000556000600060006000600073b94f5374fce5edbc8e2a8697c15331677e6ebf0b617530f1600155", - "nonce" : "0x00", + "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](CALL 30000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[1]](CALL 30000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0xe94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "e94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } } @@ -114,14 +83,14 @@ "" ], "gasLimit" : [ - "0x0141e0" + "82400" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xba4f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ba4f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stSolidityTest/AmbiguousMethod.json b/GeneralStateTests/stSolidityTest/AmbiguousMethod.json index 60b997ba3..5f1c8e19e 100644 --- a/GeneralStateTests/stSolidityTest/AmbiguousMethod.json +++ b/GeneralStateTests/stSolidityTest/AmbiguousMethod.json @@ -2,81 +2,49 @@ "AmbiguousMethod" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/AmbiguousMethodFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc55c94f5708aff56edbe823e1e448d4e7db3d9e4c693044f633c76395219a532", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x014f" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd568910442624a2259901b496d69aeaa58375be8c9f8f18c5316251cf306f31e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc55c94f5708aff56edbe823e1e448d4e7db3d9e4c693044f633c76395219a532", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc55c94f5708aff56edbe823e1e448d4e7db3d9e4c693044f633c76395219a532", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd568910442624a2259901b496d69aeaa58375be8c9f8f18c5316251cf306f31e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}\t\t\t\t", + "balance" : "100000", "code" : "0x60003560e060020a90048063c040622614601557005b601b6021565b60006000f35b61014f60008190555056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07a120", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "500000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stSolidityTest/CallInfiniteLoop.json b/GeneralStateTests/stSolidityTest/CallInfiniteLoop.json index 4ea8e96e7..82cec8de9 100644 --- a/GeneralStateTests/stSolidityTest/CallInfiniteLoop.json +++ b/GeneralStateTests/stSolidityTest/CallInfiniteLoop.json @@ -2,81 +2,47 @@ "CallInfiniteLoop" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/CallInfiniteLoopFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x94a768f71a8f2feee4dd28a9d71ac3c34b5324df442b634b47eb96139f2f9358", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "300000" } } - ], - "EIP158" : [ - { - "hash" : "0x94a768f71a8f2feee4dd28a9d71ac3c34b5324df442b634b47eb96139f2f9358", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x94a768f71a8f2feee4dd28a9d71ac3c34b5324df442b634b47eb96139f2f9358", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x94a768f71a8f2feee4dd28a9d71ac3c34b5324df442b634b47eb96139f2f9358", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x94a768f71a8f2feee4dd28a9d71ac3c34b5324df442b634b47eb96139f2f9358", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}", + "balance" : "100000", "code" : "0x60003560e060020a90048063296df0df1460295780634893d88a146035578063981a316514604157005b602f604d565b60006000f35b603b6062565b60006000f35b6047605a565b60006000f35b5b600115605857604e565b565b60606062565b565b6068605a565b56", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07a120", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "500000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +52,14 @@ "0x296df0df" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stSolidityTest/CallLowLevelCreatesSolidity.json b/GeneralStateTests/stSolidityTest/CallLowLevelCreatesSolidity.json index 62eea675a..78f7d1d1f 100644 --- a/GeneralStateTests/stSolidityTest/CallLowLevelCreatesSolidity.json +++ b/GeneralStateTests/stSolidityTest/CallLowLevelCreatesSolidity.json @@ -2,81 +2,51 @@ "CallLowLevelCreatesSolidity" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/CallLowLevelCreatesSolidityFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb228eae256f1654e21d832c5be223b05762abbe26f7a7aa46541e219fb40769b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xe1", + "0x01" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" + } } } - ], - "EIP158" : [ - { - "hash" : "0x492942ca8f130e161aa13923a962a3133dd5a25f786eaa97985dc721dac212c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4b1504174022cbd59e4757634acd4fa9db18145fc5ea0a5893b7040a1e6879e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4b1504174022cbd59e4757634acd4fa9db18145fc5ea0a5893b7040a1e6879e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x492942ca8f130e161aa13923a962a3133dd5a25f786eaa97985dc721dac212c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}", + "balance" : "100000", "code" : "0x60003560e060020a9004806330debb4214610021578063c04062261461003257005b61002c6004356100c7565b60006000f35b61003a610044565b8060005260206000f35b60006000600160008190555073095e7baea6a6c7c4c2dfeb977efac326af552d87600181905550606a6100d2600039606a60006000f0905080600160a060020a03166319ab453c600060008260e060020a026000526004600154600160a060020a03168152602001600060008660325a03f16100bc57005b505060005491505090565b80600081905550505600605e80600c6000396000f30060003560e060020a9004806319ab453c14601557005b601e6004356024565b60006000f35b80600160a060020a03166330debb42600060008260e060020a02600052600460e18152602001600060008660325a03f1605957005b50505056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +56,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x055730" + "350000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stSolidityTest/CallRecursiveMethods.json b/GeneralStateTests/stSolidityTest/CallRecursiveMethods.json index 9688cd0e7..0ef07cff3 100644 --- a/GeneralStateTests/stSolidityTest/CallRecursiveMethods.json +++ b/GeneralStateTests/stSolidityTest/CallRecursiveMethods.json @@ -2,81 +2,47 @@ "CallRecursiveMethods" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/CallRecursiveMethodsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x28775a9bfb2082afcf55670f0cec3345867d51cf068580a38bb823d375e44f1a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "60000" } } - ], - "EIP158" : [ - { - "hash" : "0x28775a9bfb2082afcf55670f0cec3345867d51cf068580a38bb823d375e44f1a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x28775a9bfb2082afcf55670f0cec3345867d51cf068580a38bb823d375e44f1a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x28775a9bfb2082afcf55670f0cec3345867d51cf068580a38bb823d375e44f1a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x28775a9bfb2082afcf55670f0cec3345867d51cf068580a38bb823d375e44f1a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}", + "balance" : "100000", "code" : "0x7c01000000000000000000000000000000000000000000000000000000006000350463296df0df811460415780634893d88a14604d578063981a316514605957005b60476065565b60006000f35b6053607a565b60006000f35b605f6072565b60006000f35b5b6001156070576066565b565b6078607a565b565b60806072565b56", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07a120", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "500000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +52,14 @@ "0x981a3165" ], "gasLimit" : [ - "0xea60" + "60000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stSolidityTest/ContractInheritance.json b/GeneralStateTests/stSolidityTest/ContractInheritance.json index 173f815f1..982eed403 100644 --- a/GeneralStateTests/stSolidityTest/ContractInheritance.json +++ b/GeneralStateTests/stSolidityTest/ContractInheritance.json @@ -2,81 +2,49 @@ "ContractInheritance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/ContractInheritanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xef8d0a0e1452bcf2ec28e34e9945b26ae8cc833de5b2cec8b1306b70df6f2cbc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x296b2fd1997a528da5f325628fbc77260461bca622bab66caf85fb4d1321a009", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe7f84d674881d1cfd115be59e3e390271435c0b3474a482f7add54c3fe429d85", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe7f84d674881d1cfd115be59e3e390271435c0b3474a482f7add54c3fe429d85", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x296b2fd1997a528da5f325628fbc77260461bca622bab66caf85fb4d1321a009", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}", + "balance" : "100000", "code" : "0x7c010000000000000000000000000000000000000000000000000000000060003504633e0bca3b8114610039578063c0406226146100a857005b6100b55b600160008060456101ec8339604560006000f091508173ffffffffffffffffffffffffffffffffffffffff166381bda09b60206000827c010000000000000000000000000000000000000000000000000000000002600052600460006000866161da5a03f161011957005b6100bf60006100c961003d565b8060005260206000f35b8060005260206000f35b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016919091179081905560ff16919050565b505060005163ffffffff166002141561019d575b5b505090565b505060005163ffffffff1660011415610194575b60456101a7600039604560006000f090508073ffffffffffffffffffffffffffffffffffffffff166381bda09b60206000827c010000000000000000000000000000000000000000000000000000000002600052600460006000866161da5a03f16100ff57005b60009250610114565b600092506101145600603980600c6000396000f3007c0100000000000000000000000000000000000000000000000000000000600035046381bda09b8114602d57005b60026000818152602090f3603980600c6000396000f3007c0100000000000000000000000000000000000000000000000000000000600035046381bda09b8114602d57005b60016000818152602090f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x02faf080", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "50000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x02160ec0" + "35000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stSolidityTest/CreateContractFromMethod.json b/GeneralStateTests/stSolidityTest/CreateContractFromMethod.json index be435d5ce..46550888b 100644 --- a/GeneralStateTests/stSolidityTest/CreateContractFromMethod.json +++ b/GeneralStateTests/stSolidityTest/CreateContractFromMethod.json @@ -2,81 +2,99 @@ "CreateContractFromMethod" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/CreateContractFromMethodFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb82770d51d1259de93c4e884e126cc1914564b6e87a6636f38f27c4d3b6bbf66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "0", + "code" : "0x60003560e060020a90048062f55d9d14601e578063b9c3d0a514602d57005b60276004356046565b60006000f35b6033603d565b8060005260206000f35b600060e1905090565b80600160a060020a0316ff5056", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf188cfbe040b966727dce0c929cc6711a42aa93d064515f751106ef1a9e7525d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb82770d51d1259de93c4e884e126cc1914564b6e87a6636f38f27c4d3b6bbf66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb82770d51d1259de93c4e884e126cc1914564b6e87a6636f38f27c4d3b6bbf66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "0", + "code" : "0x60003560e060020a90048062f55d9d14601e578063b9c3d0a514602d57005b60276004356046565b60006000f35b6033603d565b8060005260206000f35b600060e1905090565b80600160a060020a0316ff5056", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xf188cfbe040b966727dce0c929cc6711a42aa93d064515f751106ef1a9e7525d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "0", + "code" : "0x60003560e060020a90048062f55d9d14601e578063b9c3d0a514602d57005b60276004356046565b60006000f35b6033603d565b8060005260206000f35b600060e1905090565b80600160a060020a0316ff5056", + "nonce" : "1", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}\t\t\t\t\t\t\t\t\t", + "balance" : "100000", "code" : "0x60003560e060020a900480637ee17e1214601f578063c040622614602b57005b60256047565b60006000f35b6031603b565b8060005260206000f35b600060436047565b5090565b60006060605d600039606060006000f09050905600605480600c6000396000f30060003560e060020a90048062f55d9d14601e578063b9c3d0a514602d57005b60276004356046565b60006000f35b6033603d565b8060005260206000f35b600060e1905090565b80600160a060020a0316ff5056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +104,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x055730" + "350000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stSolidityTest/RecursiveCreateContracts.json b/GeneralStateTests/stSolidityTest/RecursiveCreateContracts.json index 2a3f9fcdd..0702eed0c 100644 --- a/GeneralStateTests/stSolidityTest/RecursiveCreateContracts.json +++ b/GeneralStateTests/stSolidityTest/RecursiveCreateContracts.json @@ -2,81 +2,112 @@ "RecursiveCreateContracts" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/RecursiveCreateContractsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xde2b270f7ca346807238c5d102d518d261a6abf4ff217a70ca1c7e7251bfb3ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "300000" } } - ], - "EIP158" : [ - { - "hash" : "0xbf0e0fcf76fec2d3216a7830dbf3cb7f3bd715b6b3b245668d4e2946235c7bf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf0259d59719b205707dabbde44be2a0e5ca1b74c3c132df147d992a0cc1b96e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf0259d59719b205707dabbde44be2a0e5ca1b74c3c132df147d992a0cc1b96e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x314dc6448d9338c15b0a00000001", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x01" : "0x0304" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "293976" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "nonce" : "0x00", + "storage" : { + "0x00" : "0x0303" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xbf0e0fcf76fec2d3216a7830dbf3cb7f3bd715b6b3b245668d4e2946235c7bf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0x314dc6448d9338c15b0a00000001", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x01" : "0x0304" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x047c5d" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "nonce" : "0x01", + "storage" : { + "0x00" : "0x0303" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x314dc6448d9338c15b0a00000000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}", + "balance" : "1000000000000000000000000000000000", "code" : "0x60003560e060020a90048063820b13f614610021578063a444f5e91461003257005b61002c600435610093565b60006000f35b61003d600435610043565b60006000f35b600073095e7baea6a6c7c4c2dfeb977efac326af552d8760008190555081600181905550606b6101ad600039606b600054600160a060020a0316815260200182815260200160006000f090505050565b600060c86100e560003960c8600054600160a060020a0316815260200182815260200160006000f0905080600160a060020a0316600060026000600060006000848787f16100dd57005b50505050505600604060c860043960045160245160006001820391508160008190555060008211602657604c565b606b605d600039606b83600160a060020a0316815260200182815260200160006000f090505b505050600180605c6000396000f300006040606b6004396004516024516001810390508060008190555060008111602457605b565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660325a03f1605857005b50505b5050600180606a6000396000f300006040606b6004396004516024516001810390508060008190555060008111602457605b565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660325a03f1605857005b50505b5050600180606a6000396000f30000", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x4c4b40", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "5000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +117,14 @@ "0xa444f5e90000000000000000000000000000000000000000000000000000000000000304" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stSolidityTest/RecursiveCreateContractsCreate4Contracts.json b/GeneralStateTests/stSolidityTest/RecursiveCreateContractsCreate4Contracts.json index 5cd68ba6e..1cc5e5204 100644 --- a/GeneralStateTests/stSolidityTest/RecursiveCreateContractsCreate4Contracts.json +++ b/GeneralStateTests/stSolidityTest/RecursiveCreateContractsCreate4Contracts.json @@ -2,81 +2,119 @@ "RecursiveCreateContractsCreate4Contracts" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/RecursiveCreateContractsCreate4ContractsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc9c2c49e4940b2ee507726474e8f5d31502ed5691e4edc27463058d676d69029", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "3", + "storage" : { + "0x" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x01" : "0x04" + } + }, + "5d35480c6e7f8952363fa280a0a96906da981f63" : { + "balance" : "2" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b88de88b35ecbf3c141e3caae2baf35834d18f63" : { + "storage" : { + "0x" : "0x02" + } + }, + "c506eeab8810e0b592686a218b889284e45b2c35" : { + "storage" : { + "0x" : "0x01" + } + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "storage" : { + "0x" : "0x03" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf27f3f2ecfc41e216642436c6c76ffdf50b68674dd698d6806cbaa295ad46260", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc2fffb98fdd2871f70a001e775525039d94bb8ad0c3c783efa970af2e3ed54a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc2fffb98fdd2871f70a001e775525039d94bb8ad0c3c783efa970af2e3ed54a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf27f3f2ecfc41e216642436c6c76ffdf50b68674dd698d6806cbaa295ad46260", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0x03", + "storage" : { + "0x00" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "0x01" : "0x04" + } + }, + "2b25ae4b13cb6e06869f694d29de45e7614ebd97" : { + "nonce" : "0x01", + "storage" : { + "0x00" : "0x01" + } + }, + "5d35480c6e7f8952363fa280a0a96906da981f63" : { + "balance" : "0x02", + "nonce" : "0x01" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "b88de88b35ecbf3c141e3caae2baf35834d18f63" : { + "balance" : "0x02", + "nonce" : "0x02", + "storage" : { + "0x00" : "0x02" + } + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "nonce" : "0x01", + "storage" : { + "0x00" : "0x03" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x314dc6448d9338c15b0a00000000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}", + "balance" : "1000000000000000000000000000000000", "code" : "0x60003560e060020a90048063820b13f614610021578063a444f5e91461003257005b61002c600435610093565b60006000f35b61003d600435610043565b60006000f35b600073095e7baea6a6c7c4c2dfeb977efac326af552d8760008190555081600181905550606b6101ad600039606b600054600160a060020a0316815260200182815260200160006000f090505050565b600060c86100e560003960c8600054600160a060020a0316815260200182815260200160006000f0905080600160a060020a0316600060026000600060006000848787f16100dd57005b50505050505600604060c860043960045160245160006001820391508160008190555060008211602657604c565b606b605d600039606b83600160a060020a0316815260200182815260200160006000f090505b505050600180605c6000396000f300006040606b6004396004516024516001810390508060008190555060008111602457605b565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660325a03f1605857005b50505b5050600180606a6000396000f300006040606b6004396004516024516001810390508060008190555060008111602457605b565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660325a03f1605857005b50505b5050600180606a6000396000f30000", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x4c4b40", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "5000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +124,14 @@ "0xa444f5e90000000000000000000000000000000000000000000000000000000000000004" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stSolidityTest/TestBlockAndTransactionProperties.json b/GeneralStateTests/stSolidityTest/TestBlockAndTransactionProperties.json index 78de595c7..e9acbc166 100644 --- a/GeneralStateTests/stSolidityTest/TestBlockAndTransactionProperties.json +++ b/GeneralStateTests/stSolidityTest/TestBlockAndTransactionProperties.json @@ -2,81 +2,49 @@ "TestBlockAndTransactionProperties" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/TestBlockAndTransactionPropertiesFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8121b6e7d79c473a20d195b45650a54bd1b95bc9f16392c2ce000e79c2351037", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8121b6e7d79c473a20d195b45650a54bd1b95bc9f16392c2ce000e79c2351037", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x57eb775f62aeaea7bfcddf7b359b805f5477c8217370d5d3c0e00e582fcfdb91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x57eb775f62aeaea7bfcddf7b359b805f5477c8217370d5d3c0e00e582fcfdb91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8121b6e7d79c473a20d195b45650a54bd1b95bc9f16392c2ce000e79c2351037", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}\t\t\t\t\t\t\t\t\t\t\t", + "balance" : "100000", "code" : "0x60606040526000357c010000000000000000000000000000000000000000000000000000000090048063c040622614610044578063e97384dc1461006957610042565b005b610051600480505061008e565b60405180821515815260200191505060405180910390f35b61007660048050506100c9565b60405180821515815260200191505060405180910390f35b60006100986100c9565b600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff1690506100c6565b90565b6000600190508050732adc25665018aa1fe0e6bc666dac8fc2697ff9ba4173ffffffffffffffffffffffffffffffffffffffff1614151561010d57600090506101f7565b6302b8feb04414151561012357600090506101f7565b677fffffffffffffff4514151561013d57600090506101f7565b60784314151561015057600090506101f7565b6078405042505a5073a94f5374fce5edbc8e2a8697c15331677e6ebf0b3373ffffffffffffffffffffffffffffffffffffffff1614151561019457600090506101f7565b6064341415156101a757600090506101f7565b60013a1415156101ba57600090506101f7565b73a94f5374fce5edbc8e2a8697c15331677e6ebf0b3273ffffffffffffffffffffffffffffffffffffffff161415156101f657600090506101f7565b5b9056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x055730" + "350000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stSolidityTest/TestContractInteraction.json b/GeneralStateTests/stSolidityTest/TestContractInteraction.json index 6410332cf..916c5e6b0 100644 --- a/GeneralStateTests/stSolidityTest/TestContractInteraction.json +++ b/GeneralStateTests/stSolidityTest/TestContractInteraction.json @@ -2,81 +2,50 @@ "TestContractInteraction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/TestContractInteractionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdb558b22b3ae033794cf060d0800f57623b57015bbeaeef0ed64c97766768dca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbbb317fbcb82c1477976d9720818306902a4da39aa3fbaa8b1d6e1c41199c8df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8af7e668bc981aaa612683f34062e73fbcbb262d9394b199bdb08663d93c53c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8af7e668bc981aaa612683f34062e73fbcbb262d9394b199bdb08663d93c53c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbbb317fbcb82c1477976d9720818306902a4da39aa3fbaa8b1d6e1c41199c8df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}\t\t\t\t\t\t\t\t\t", + "balance" : "100000", "code" : "0x7c01000000000000000000000000000000000000000000000000000000006000350463c04062268114610039578063ed973fe91461004b57005b6100416100ea565b8060005260206000f35b61005361005d565b8060005260206000f35b60006000608161011a600039608160006000f0905073ffffffffffffffffffffffffffffffffffffffff811663b9c3d0a5602060007fb9c3d0a50000000000000000000000000000000000000000000000000000000081526004600060008660325a03f16100c757005b505060005160e1146100d8576100e1565b600191506100e6565b600091505b5090565b60006100f461005d565b600060006101000a81548160ff0219169083021790555060ff600160005404169050905600607580600c6000396000f3007c01000000000000000000000000000000000000000000000000000000006000350462f55d9d81146036578063b9c3d0a514604557005b603f6004356055565b60006000f35b604b6070565b8060005260206000f35b8073ffffffffffffffffffffffffffffffffffffffff16ff50565b60e19056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x055730" + "350000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stSolidityTest/TestContractSuicide.json b/GeneralStateTests/stSolidityTest/TestContractSuicide.json index b94ac6ae8..e0463929f 100644 --- a/GeneralStateTests/stSolidityTest/TestContractSuicide.json +++ b/GeneralStateTests/stSolidityTest/TestContractSuicide.json @@ -2,81 +2,50 @@ "TestContractSuicide" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/TestContractSuicideFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfd54bdda8e31060ef262e7b63839f8d089db9f8997e1a675ad99fa592f314f00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe75c86e24250e8c07574d7dbcf71440edabda1fc340eedcf88069de1e4419694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x367a4e05a146eef4824adcbb8c7e445dc01852707762a005b01b97ce1eb8622f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x367a4e05a146eef4824adcbb8c7e445dc01852707762a005b01b97ce1eb8622f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe75c86e24250e8c07574d7dbcf71440edabda1fc340eedcf88069de1e4419694", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}\t\t\t\t\t\t\t\t\t", + "balance" : "100000", "code" : "0x7c01000000000000000000000000000000000000000000000000000000006000350463a60eedda8114610039578063c04062261461004b57005b61004161005d565b8060005260206000f35b61005361015a565b8060005260206000f35b60006000608161018a600039608160006000f0905073ffffffffffffffffffffffffffffffffffffffff811662f55d9d6000807ef55d9d00000000000000000000000000000000000000000000000000000000825260044173ffffffffffffffffffffffffffffffffffffffff168152602001600060008660325a03f16100e057005b505073ffffffffffffffffffffffffffffffffffffffff811663b9c3d0a5602060007fb9c3d0a50000000000000000000000000000000000000000000000000000000081526004600060008660325a03f161013757005b505060005160e11461014857610151565b60019150610156565b600091505b5090565b600061016461005d565b600060006101000a81548160ff0219169083021790555060ff600160005404169050905600607580600c6000396000f3007c01000000000000000000000000000000000000000000000000000000006000350462f55d9d81146036578063b9c3d0a514604557005b603f600435605a565b60006000f35b604b6055565b8060005260206000f35b60e190565b8073ffffffffffffffffffffffffffffffffffffffff16ff5056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x055730" + "350000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stSolidityTest/TestCryptographicFunctions.json b/GeneralStateTests/stSolidityTest/TestCryptographicFunctions.json index ca62017ac..d3674325c 100644 --- a/GeneralStateTests/stSolidityTest/TestCryptographicFunctions.json +++ b/GeneralStateTests/stSolidityTest/TestCryptographicFunctions.json @@ -2,81 +2,49 @@ "TestCryptographicFunctions" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/TestCryptographicFunctionsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0174852c4e603778f14fdc2c67ab61f72d13b9c5122e6050bf7c0560c83a02e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x88b66fadcd2608906c1ceabb95144359b5d5c2f05a6c08ce5f9ced551bb49c96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3e2d93fa99efc8b83dfd38acc31be9d3f22d5336401f530127d8e976a111d756", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3e2d93fa99efc8b83dfd38acc31be9d3f22d5336401f530127d8e976a111d756", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x88b66fadcd2608906c1ceabb95144359b5d5c2f05a6c08ce5f9ced551bb49c96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}\t\t\t\t\t\t\t\t\t\t\t\t\t\t", + "balance" : "100000", "code" : "0x6000357c010000000000000000000000000000000000000000000000000000000090048063c04062261461003a578063e0a9fd281461004c57005b61004261005e565b8060005260206000f35b610054610099565b8060005260206000f35b6000610068610099565b600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff169050610096565b90565b60006001905080507f43c4b4524adb81e4e9a5c4648a98e9d320e3908ac5b6c889144b642cd08ae16d60010260407f74657374737472696e67000000000000000000000000000000000000000000008152600a016040900360402014156100ff57610108565b600090506102ec565b7f3c8727e019a42b444667a587b6001251becadabbb36bfed8087a92c18882d11160010260026020600060007f74657374737472696e67000000000000000000000000000000000000000000008152600a0160006000856161da5a03f161016b57005b50600051141561017a57610183565b600090506102ec565b73cd566972b5e50104011a92b59fa8e0b1234851ae6c010000000000000000000000000260036020600060007f74657374737472696e67000000000000000000000000000000000000000000008152600a0160006000856161da5a03f16101e657005b506000516c010000000000000000000000000214156102045761020d565b600090506102ec565b73a94f5374fce5edbc8e2a8697c15331677e6ebf0b60016020600060007f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c6001028152602001601c81526020017f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f60010281526020017feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549600102815260200160006000856161da5a03f16102bd57005b5060005173ffffffffffffffffffffffffffffffffffffffff1614156102e2576102eb565b600090506102ec565b5b9056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x02faf080", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "50000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x02160ec0" + "35000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stSolidityTest/TestKeywords.json b/GeneralStateTests/stSolidityTest/TestKeywords.json index f0db4beeb..2ca2042d7 100644 --- a/GeneralStateTests/stSolidityTest/TestKeywords.json +++ b/GeneralStateTests/stSolidityTest/TestKeywords.json @@ -2,81 +2,49 @@ "TestKeywords" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/TestKeywordsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2974402c2b5431807dc95248df9ca5e8869b4c77e23172d33bfa8bb77248a915", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2974402c2b5431807dc95248df9ca5e8869b4c77e23172d33bfa8bb77248a915", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5d9414ffd30ec040a59e0a99b7a54097306ee5d426bd8adf8e5a99490ad083c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5d9414ffd30ec040a59e0a99b7a54097306ee5d426bd8adf8e5a99490ad083c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2974402c2b5431807dc95248df9ca5e8869b4c77e23172d33bfa8bb77248a915", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}\t\t\t\t\t\t\t\t\t", + "balance" : "100000", "code" : "0x7c01000000000000000000000000000000000000000000000000000000006000350463380e439681146037578063c040622614604757005b603d6084565b8060005260206000f35b604d6057565b8060005260206000f35b6000605f6084565b600060006101000a81548160ff0219169083021790555060ff60016000540416905090565b6000808160011560cd575b600a82121560a157600190910190608f565b81600a1460ac5760c9565b50600a5b60008160ff16111560c85760019182900391900360b0565b5b60d5565b6000925060ed565b8160001460e05760e8565b6001925060ed565b600092505b50509056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x055730" + "350000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stSolidityTest/TestOverflow.json b/GeneralStateTests/stSolidityTest/TestOverflow.json index 78a385383..45746050e 100644 --- a/GeneralStateTests/stSolidityTest/TestOverflow.json +++ b/GeneralStateTests/stSolidityTest/TestOverflow.json @@ -2,81 +2,49 @@ "TestOverflow" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/TestOverflowFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7c490eb6a0b4ac8bedc69db1542a68292124b7fb81f1d37c0fe1a538f7fcb96c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7c490eb6a0b4ac8bedc69db1542a68292124b7fb81f1d37c0fe1a538f7fcb96c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x24c1690cfd30246726282bd723e2efc208a1bd3f734465a5c18b7fa81c4242c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x24c1690cfd30246726282bd723e2efc208a1bd3f734465a5c18b7fa81c4242c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7c490eb6a0b4ac8bedc69db1542a68292124b7fb81f1d37c0fe1a538f7fcb96c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}\t\t\t\t\t\t\t\t\t\t\t\t\t", + "balance" : "100000", "code" : "0x6000357c0100000000000000000000000000000000000000000000000000000000900480638040cac41461003a578063c04062261461004c57005b610042610099565b8060005260206000f35b61005461005e565b8060005260206000f35b6000610068610099565b600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff169050610096565b90565b60006000600060006001935083507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff925060006001840114156100db576100e4565b6000935061013b565b63ffffffff915060006001830163ffffffff1614156101025761010b565b6000935061013b565b67ffffffffffffffff905060006001820167ffffffffffffffff1614156101315761013a565b6000935061013b565b5b5050509056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x02faf080", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "50000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x02160ec0" + "35000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stSolidityTest/TestStoreGasPrices.json b/GeneralStateTests/stSolidityTest/TestStoreGasPrices.json index 48942d4f0..adff69881 100644 --- a/GeneralStateTests/stSolidityTest/TestStoreGasPrices.json +++ b/GeneralStateTests/stSolidityTest/TestStoreGasPrices.json @@ -2,81 +2,54 @@ "TestStoreGasPrices" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/TestStoreGasPricesFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe7b615fa0b33e1df7d7d59712c767013787a9f549cd65a4d22c8f143283ec4bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x4e2d", + "0x01" : "0x1395", + "0x02" : "0x1395", + "0x03" : "0x1395", + "0x04" : "0x1395", + "0x05" : "0x1395" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe7b615fa0b33e1df7d7d59712c767013787a9f549cd65a4d22c8f143283ec4bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe7b615fa0b33e1df7d7d59712c767013787a9f549cd65a4d22c8f143283ec4bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe7b615fa0b33e1df7d7d59712c767013787a9f549cd65a4d22c8f143283ec4bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe7b615fa0b33e1df7d7d59712c767013787a9f549cd65a4d22c8f143283ec4bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}\t\t\t\t\t\t\t\t", + "balance" : "100000", "code" : "0x7c01000000000000000000000000000000000000000000000000000000006000350463c04062268114602d57005b6033603d565b8060005260206000f35b600060005a600160205590505a81036000555a600260205590505a81036001555a600260205590505a81036002555a65168aa8d53fe660205590505a81036003555a600260205590505a81036004555a600060205590505a81036005555a5060019291505056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x02faf080", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "50000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +59,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x02160ec0" + "35000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stSolidityTest/TestStructuresAndVariabless.json b/GeneralStateTests/stSolidityTest/TestStructuresAndVariabless.json index 324cb7d82..66d1e9ca6 100644 --- a/GeneralStateTests/stSolidityTest/TestStructuresAndVariabless.json +++ b/GeneralStateTests/stSolidityTest/TestStructuresAndVariabless.json @@ -2,81 +2,54 @@ "TestStructuresAndVariabless" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSolidityTest/TestStructuresAndVariablessFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3c7eb90840853b3cea537fa2488045f4ec9be9ddb1469e0958e4dd90cf87cb49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01", + "0x01" : "0xff", + "0x02" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x03" : "0xff", + "0x04" : "0x676c6f62616c2064617461203332206c656e67746820737472696e6700000000", + "0x05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } } } - ], - "EIP158" : [ - { - "hash" : "0x3c7eb90840853b3cea537fa2488045f4ec9be9ddb1469e0958e4dd90cf87cb49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfabbcefefcd34f324da40464c4bd8df7a21d379e0a897796d290a2b49e974e88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfabbcefefcd34f324da40464c4bd8df7a21d379e0a897796d290a2b49e974e88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3c7eb90840853b3cea537fa2488045f4ec9be9ddb1469e0958e4dd90cf87cb49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "}\t\t\t\t\t\t\t\t\t\t\t", + "balance" : "100000", "code" : "0x7c010000000000000000000000000000000000000000000000000000000060003504632a9afb838114610039578063c04062261461004b57005b61004161005d565b8060005260206000f35b61005361016c565b8060005260206000f35b600160ff8154141561006e57610076565b506000610169565b60015460035414156100875761008f565b506000610169565b73a94f5374fce5edbc8e2a8697c15331677e6ebf0b73ffffffffffffffffffffffffffffffffffffffff60016002540481161614156100cd576100d5565b506000610169565b7f676c6f62616c2064617461203332206c656e67746820737472696e670000000060045414156101045761010c565b506000610169565b6005600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673a94f5374fce5edbc8e2a8697c15331677e6ebf0b141561016057610168565b506000610169565b5b90565b600060ff806001555073a94f5374fce5edbc8e2a8697c15331677e6ebf0b6002805473ffffffffffffffffffffffffffffffffffffffff1916821790555060ff80600355507f676c6f62616c2064617461203332206c656e67746820737472696e6700000000806004555073a94f5374fce5edbc8e2a8697c15331677e6ebf0b6005600080815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff0219169083021790555061022f61005d565b600060006101000a81548160ff0219169083021790555060ff6001600054041690509056", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +59,14 @@ "0xc0406226" ], "gasLimit" : [ - "0x055730" + "350000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stSpecialTest/JUMPDEST_Attack.json b/GeneralStateTests/stSpecialTest/JUMPDEST_Attack.json index 60886e150..58e30d109 100644 --- a/GeneralStateTests/stSpecialTest/JUMPDEST_Attack.json +++ b/GeneralStateTests/stSpecialTest/JUMPDEST_Attack.json @@ -2,81 +2,65 @@ "JUMPDEST_Attack" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSpecialTest/JUMPDEST_AttackFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xeafa4f52c37d24c6f3cbfba876bb75b68c25f43851c9b2b136a28baa1aafcf5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999812375", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xeafa4f52c37d24c6f3cbfba876bb75b68c25f43851c9b2b136a28baa1aafcf5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x33bd0cb07d88b4708a23ec8e264813c207ea04a3bea49d632ff3556273d8e242", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x33bd0cb07d88b4708a23ec8e264813c207ea04a3bea49d632ff3556273d8e242", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xeafa4f52c37d24c6f3cbfba876bb75b68c25f43851c9b2b136a28baa1aafcf5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999650900", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x600060006000600060003061c3505a03f1005b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -86,14 +70,14 @@ "" ], "gasLimit" : [ - "0x05f5e100" + "100000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSpecialTest/JUMPDEST_AttackwithJump.json b/GeneralStateTests/stSpecialTest/JUMPDEST_AttackwithJump.json index 114cae623..a74c38499 100644 --- a/GeneralStateTests/stSpecialTest/JUMPDEST_AttackwithJump.json +++ b/GeneralStateTests/stSpecialTest/JUMPDEST_AttackwithJump.json @@ -2,81 +2,65 @@ "JUMPDEST_AttackwithJump" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSpecialTest/JUMPDEST_AttackwithJumpFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfac04cf2479ecd0c28ed146800a0014f3776d44b39fb09f7c8f047400488fb0b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999800075", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xfac04cf2479ecd0c28ed146800a0014f3776d44b39fb09f7c8f047400488fb0b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf121c5c2d9dd75894d849c8a96ff1817ef5999d7e9928cf952554935c7a8e82e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf121c5c2d9dd75894d849c8a96ff1817ef5999d7e9928cf952554935c7a8e82e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfac04cf2479ecd0c28ed146800a0014f3776d44b39fb09f7c8f047400488fb0b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999648329", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6003565b600060006000600060003061c3505a03f1005b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -86,14 +70,14 @@ "" ], "gasLimit" : [ - "0x05f5e100" + "100000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSpecialTest/OverflowGasMakeMoney.json b/GeneralStateTests/stSpecialTest/OverflowGasMakeMoney.json index 0eaeb9aed..e20dc752c 100644 --- a/GeneralStateTests/stSpecialTest/OverflowGasMakeMoney.json +++ b/GeneralStateTests/stSpecialTest/OverflowGasMakeMoney.json @@ -2,74 +2,39 @@ "OverflowGasMakeMoney" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSpecialTest/OverflowGasMakeMoneyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa60566e0ecd43f9224e59c41de05e376869357327052aba6a61614fbcccf32ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000" } } - ], - "EIP158" : [ - { - "hash" : "0xa60566e0ecd43f9224e59c41de05e376869357327052aba6a61614fbcccf32ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa60566e0ecd43f9224e59c41de05e376869357327052aba6a61614fbcccf32ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa60566e0ecd43f9224e59c41de05e376869357327052aba6a61614fbcccf32ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa60566e0ecd43f9224e59c41de05e376869357327052aba6a61614fbcccf32ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x03e8", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -81,12 +46,12 @@ "gasLimit" : [ "0x7ffffffffffffffe" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x01f5" + "501" ] } } diff --git a/GeneralStateTests/stSpecialTest/StackDepthLimitSEC.json b/GeneralStateTests/stSpecialTest/StackDepthLimitSEC.json index 7030ea3eb..ac254a652 100644 --- a/GeneralStateTests/stSpecialTest/StackDepthLimitSEC.json +++ b/GeneralStateTests/stSpecialTest/StackDepthLimitSEC.json @@ -2,74 +2,83 @@ "StackDepthLimitSEC" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSpecialTest/StackDepthLimitSECFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x68f497ee77ebf9247fe0c5df49aae2b78bc0010983cec0f79b1cb440652bfd06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0a", + "code" : "0x600060006000600060003060405a03f1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99972878" } } - ], - "EIP158" : [ - { - "hash" : "0x833aa0052cff19618ec94e8996dbc8fc5e1722a37dec95e11dbdcb072bc279aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x00056a5cf74634e496d1eba26e3a027b0d2c679333b923053fad7918e882c9aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0a", + "code" : "0x600060006000600060003060405a03f1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99940878" } } - ], - "Homestead" : [ - { - "hash" : "0x68f497ee77ebf9247fe0c5df49aae2b78bc0010983cec0f79b1cb440652bfd06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0a", + "code" : "0x600060006000600060003060405a03f1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "99940878" } } - ], - "Metropolis" : [ - { - "hash" : "0x833aa0052cff19618ec94e8996dbc8fc5e1722a37dec95e11dbdcb072bc279aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +88,14 @@ "305032503350600460006000396000515060046000600037600051506f600060006000600060003060405a03f160005260106010f3" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stSpecialTest/block504980.json b/GeneralStateTests/stSpecialTest/block504980.json index 09aad8aa1..4cc9a0d21 100644 --- a/GeneralStateTests/stSpecialTest/block504980.json +++ b/GeneralStateTests/stSpecialTest/block504980.json @@ -2,151 +2,266 @@ "block504980" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSpecialTest/block504980Filler.json" }, "env" : { - "currentCoinbase" : "0x1cdc8315bdb1362de8b7b2fa9ee75dc873037179", + "currentCoinbase" : "1cdc8315bdb1362de8b7b2fa9ee75dc873037179", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x2fefd8", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x9ff4de714e01da9f8b61992efdab9b51ca14ac42d43f4c24df1d002a1239b1e9" + "currentGasLimit" : "3141592", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "9ff4de714e01da9f8b61992efdab9b51ca14ac42d43f4c24df1d002a1239b1e9" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x933c40bf2ae3cb437f9ae9a3fb2fa5f69b74ef40a6ee6fcd592e114d39242904", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0x01" + }, + "0000000000000000000000000000000000000001" : { + "balance" : "0x01" + }, + "0000000000000000000000000000000000000002" : { + "balance" : "0x01" + }, + "0000000000000000000000000000000000000003" : { + "balance" : "0x01" + }, + "0000000000000000000000000000000000000004" : { + "balance" : "0x01" + }, + "0ea65418d7bf32680f55572c943a94b590804998" : { + "balance" : "0x00", + "nonce" : "0x00", + "storage" : { + "0x065d5efdfcc0fba693dc9e467f633097ffdc97401901463ad0e28855486d1edf" : "0xb9d69098a6acfe0c6411bcaaf430f78d363a9adc32b78bc2e15ccd6e883e9784", + "0x12643ff300762717d27efb567b82c65560d7b43249d908504e5510863ab82aac" : "0x154cf60e137c594516a065149610b6a3989396a42581d5fd8919e711c55da225", + "0x1489023d18c5d10427c4aa8dc726e840eb5ae7f604a8e9243c61634fb009e4d7" : "0x05", + "0x1489023d18c5d10427c4aa8dc726e840eb5ae7f604a8e9243c61634fb009e4d8" : "0x01", + "0x19efb13d6576359514ace5211988a8d51379fa88ccd2b886b409f842b13d7932" : "0xc849cc595b452d11c206d2eb8cdfa06de211e3ff19ee0e0276dc857c05d4fe", + "0x1b37e91bf8580c7c6bcf8cdff25c7ed78180124a94af6f30c40d476a3d079ad6" : "0xaba4cd295118a482a0a62579e35e4ba5bdd76146cc9e4d96172fce8be8977ab4", + "0x2bf9fd8facdd6fd9c84657f5ad7381a5aecf670cda68cb3c5829b6532c865506" : "0x53098a1d111586dbcc0d051846284f5803c63c313e7f7e6d84430435d11d4c50", + "0x3111bfd25728c0adfad0f8c1ad79cb1b91167267deca98de88f156ed25caeedc" : "0xad393086f30b49511b08fdd27ac78810b084c7cd7de6ac354f614c18ea9e7df4", + "0x3379e7ae125c5c5d623d1d993c1459b61d6723b1c30d1aa026c48f6a6155b8ea" : "0x8c4183732567a99a8a718e363391e102532f9a640e42968cf2354d9acc908bb0", + "0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee2" : "0x01", + "0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee3" : "0x01", + "0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee4" : "0x01", + "0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee5" : "0x01", + "0x39050607fe892059a6344ab0f594f382fb0b345cab373497246dbe86fe7e14e7" : "0x2b3bca833e482737e7e47b1568e6f890f8e1666490d38fe130abd6f0ccb109cf", + "0x417be8bc6791807372e0222a350bb8a5d67bbc8d7595c301d8a5a8372cfdcef1" : "0xabd4971b4605a7155802f70e08298b1ceb0e4e4eaccccd348f77a77227f73a7f", + "0x41e9a54b3ee0c276aa076babb161de12b0f8916b47f8f6fb85cc387cf34696dd" : "0x22f2f444ebda9d2913ffef5059b039ec9b5876aa71821991c2515bf79f64935e", + "0x45ceb8da6fb8936592d3bce4883f1a6a34d636f559e0a1070a5802a65ac39bd5" : "0x57a5122ff3bf737b0de0f9f08011a8648c19e43ff071fb7086234723c9383f1f", + "0x4aa6b934608a45c8f53a945c05ddee1814a3b9f63a048fc7ad3d47e67156f024" : "0xd03862becedada67b4825a0238f3e67495ccb595cd7d08f1bd5d3160644b9299", + "0x4b8b58f0b0e326a5907d1a810e5ff31e05b4cab45125b776db8577e7dbc46bce" : "0x2f0000000000000000", + "0x4c33460347337bfc7df08bf182988301b7b426a27a67f1c6c634f637c60e87ac" : "0xbab4ab2ad4eafe7c84ef6a8cd69157d9ce6b843793a2cd0877b8e91f63cb2d4d", + "0x58da0c0c256bba101ce36fad8bf838717a57e6ab850a191dc9c09da9ce56bf1b" : "0x05", + "0x5cb38b16db1d632086d4af695de7f5f242a6e40947067f96edd566fe2ac438ef" : "0x6d0be832b2007ea28cda705b73922cbf9794c5a25b89bd2f28b7347ed2b96c86", + "0x64a9621cc4ba92bf738c55010c609dfaa3972a1138c30b5adcef1ba2363b360e" : "0xd7953bfe8cb591f129fd0862a9e9c421151e2b5831560ff5215d23f751364b35", + "0x696664a5f0ab5acd9304a377fb684f2d3fe6bb60b8a95cb2bdbb57db767e7a84" : "0x154cf60e137c594516a065149610b6a3989396a42581d5fd8919e711c55da225", + "0x69ad1d19e617936abdf05133bf268dc8ced6b518f22b249b5860967d07006487" : "0x8c803b48b383ddabd1b3afe858efb48c203229b7317dd76149dddab4253b858a", + "0x70b3bf53996fac325eb67608a4eeb0cd0b55def6255d7ed42ad28ec07238b5d6" : "0x45e9723e9232b37207ecac1c97b8647d053625a578d450f7456280b2ff8efc27", + "0x7a9dcee62e3e02cc8e020f372df2efdeb835f091c1ef1dbe221072d1095aabd2" : "0x2f0000000000000000", + "0x7e4d8c0f6d8abb4ce1ae45b254046aceedabfa9548851b8b5d3e2c0637c985fd" : "0x0b", + "0x7e95f3cc3315d289c52253baaba29b1b00c86816e6b788d50795279a8baa00db" : "0x45e9723e9232b37207ecac1c97b8647d053625a578d450f7456280b2ff8efc27", + "0x8da187157087529ee4e9c381f8e3149c56acf3bdfda29b8b9b4532f24b83f5fe" : "0x8c4183732567a99a8a718e363391e102532f9a640e42968cf2354d9acc908bb0", + "0x9001f91ddaef87bc067886e874c0749998c9b58b2ec8472ca014ca8b55f88578" : "0x0fb76974eefca01f33fb38646c2d3c1536f1a763d7aff53ab7f877d4c5ea7fd0", + "0x9ed0cedd2a9a78d949f40019f53d10031aef6ed342c97e01fc03b481ee56b3cb" : "0x04", + "0x9fddf1db29caa5c1239edd86e9e0835cdfe41f7253ec78f62d3da8558d6f3cd7" : "0x104eef8fa35bf39f677d81855bc0b9f42317f32792e98e95e4df441deb634211", + "0xa0953566119395c11186b334805fc1a16175ecac0ecc93ae0322264f0dc2e40d" : "0x10c5a00466ab7c0adae1e93537cc275ea8cf23ff509d5466a1fd6f56b0a61d1b", + "0xaa0dbf8241ef3ae07c254e6869e84895ba2be0779a7f261c8308a3114be1c54a" : "0x04", + "0xaffe808b495d13a14391ce5f27c211c36da12826969cd7841ee0d81e5b900e2d" : "0x01", + "0xaffe808b495d13a14391ce5f27c211c36da12826969cd7841ee0d81e5b900e2e" : "0x01", + "0xb4a2b68c48ef78aeb641ee538fad51781022fd23ed9d93d211017db6a02376ce" : "0x0fbc06642245cf2fed7ed46ea0a18a7185830b6f2c4e0a4ca55246041e8bfa72", + "0xba8d79990898383919e437f2458b93b340072c89d963808d9e04f51858e3c5ec" : "0x41d2cac534d90a0dbd199117481a63e32cc11411dab2eaa36c91c0eec62823cf", + "0xbb3bc1a2015123750df57d4ceff7e28cb847910b79b34841de905b59a8bb177c" : "0x734417eb19e1873427257f1ea1594748c16cfa866a7b7cf896e281f2ec774a40", + "0xbf30cdcb83ab2bd5f5eee691ffa4107b58b75ba6a5c2e6754d4c5c0437f2876c" : "0x05", + "0xc2a26b80067fc36b8268b0d5b31afff953fa91cebea39f191e2763d6e71259b9" : "0x02a43c547fe8de2400d2a141016550e8bae058d41164247c099e787ddd40e789", + "0xc98339d275eef16e0562ca8521212cef61aa0f39b12e2a27502aaa97a9e5e70f" : "0x5a3de2a5c268cdb75f4b01507aa80c4e4a1bc67bcb0df265bbb00060774e5978", + "0xcbd6ae6bd61bc9270ec836f1919b3268113abe076c7febfdb8cf573b199ce9a9" : "0xf402b17773c1f7534034ee58dc0d2a3421470a7a67daf4fa790dc3b420eef790", + "0xd2c8cbb562fccd0c9a3d0d491b7f65cc6a89856498f933427d9d21b745b9d50e" : "0x3625a26fdb7b747501f1ee2500f98c49d9cd290383a21254587c3c49d2805321", + "0xd66f52a4e24585238ccc03443b2fdb8b2b100259bc7260f39097c7c339211ffe" : "0x1641851904381915c86b60df7e288896fb5f8ebad65d594829fb9f2b59cd1da6", + "0xd8f720c05a5526dd621d1831ae122abddd3dfecd8b63b0ba4c92fa7b2ade44ff" : "0xad393086f30b49511b08fdd27ac78810b084c7cd7de6ac354f614c18ea9e7df4", + "0xdc22d3171b82817c910bbeac1f8b50c8de99f8c524f172aef3491981bd5ed4fb" : "0x94b8cba4ea090d1c392fbc94b82fb9ef9f468a15bbc537f4d051776f4d422b1d", + "0xdce8adbdefa929dbe60245f359446db4174c62824b42e5d4d9e7b834b4d61deb" : "0x2c9069845b2e74c577ff1cd18df6bc452805f527a9ee91fd4a059e0408b5dea6", + "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d196" : "0x01", + "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d197" : "0x01", + "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d198" : "0x01", + "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d199" : "0x01", + "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d19a" : "0x01", + "0xe54f074c81bfa60b5bf413934c108086298b77291560edfeead8aa1232e95236" : "0x0f40aaa24323c9e6983ccffafeebe4b426509b901e8c98b8a40d881804804e6b", + "0xe66c0f55f66c752edf73027d45b7b1ae729ae15e1c67c362dbc6f25edf8d76ff" : "0x01", + "0xe983d899f807bbcb5881f2ddf875b2ebb5cb8a7a4e77a8c98a40aaae6a468735" : "0x6d0be832b2007ea28cda705b73922cbf9794c5a25b89bd2f28b7347ed2b96c86", + "0xed7d6e2d40fbd5046412ffad1c45b63d87c6197182d6dbc66bb1e5c6e4ded5c7" : "0xaba4cd295118a482a0a62579e35e4ba5bdd76146cc9e4d96172fce8be8977ab4", + "0xf043b5a1952847579f233706a8f130889a484d2da3e574fdd5859f05aaf52111" : "0x02", + "0xf40f4cfdacb62dd799f36b580349fac1f4a4caf8dd3383cc387c35adb6574e21" : "0x2f0000000000000000", + "0xf60fa6e25e9028a6dc6b26bbc1eadae3da157df0d1d6f6628bc33cad68a7e455" : "0x2d7d00618c059ebe40593b9497c633e1ac6e161dadbd5bb734c2663cd3e8a8e1", + "0xfd280ac5182d5b2366122f38acfa6dc471240ffde9d5feb985ce7a2325c960e7" : "0x03" + } + }, + "142a6927cf0060133187ba8a8e74d641438f0c1c" : { + "balance" : "0x00", + "code" : "0x600061031f537c01000000000000000000000000000000000000000000000000000000006000350473c9ae5868651bf7b7db6e360217db49ce4e69c07e602052730ea65418d7bf32680f55572c943a94b5908049986040526327138bfb81141561038d57600435608052601c6044599059016000905201637a66d7ca601c8203526080516004820152602060e06024836000602051602d5a03f15060e051905060a052601c604459905901600090520163c60409c6601c820352608051600482015260206101206024836000602051602d5a03f150610120519050430561010052600061014052600061016052600061018052600260a051016101005112151561010a576001610140525b60006101a052610100516101c0525b606461010051016101c051121561018457601c606459905901600090520163cc1c944e601c82035260805160048201526101c051602482015260206101e06044836000604051602d5a03f1506101e05190506101a051016101a05260016101c051016101c052610119565b6005601c606459905901600090520163cc1c944e601c820352608051600482015260a051602482015260206102006044836000604051602d5a03f1506102005190501280156101d357806101db565b600a6101a051125b9050156101eb57610140516101ee565b60005b1561033657601c604459905901600090520163c5476efe601c820352608051600482015260206102406024836000602051602d5a03f15061024051905050601c6064599059016000905201637265802d601c82035260805160048201526000602482015260206102606044836000602051602d5a03f15061026051905050601c606459905901600090520163c286273a601c82035260805160048201526000602482015260206102806044836000602051602d5a03f15061028051905050601c6044599059016000905201637a66d7ca601c820352608051600482015260206102a06024836000602051602d5a03f1506102a051905060a052601c608459905901600090520163bb8e4196601c820352608051600482015260a051602482015261010051604482015260206102c06064836000604051602d5a03f1506102c051905050610343565b6001610160526001610180525b61014051156103555761016051610358565b60005b156103665761018051610369565b60005b1561037f5760016102e05260206102e0f361038c565b6000610300526020610300f35b5b50", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "c9ae5868651bf7b7db6e360217db49ce4e69c07e" : { + "balance" : "0x00", + "code" : "0x600061083f537c010000000000000000000000000000000000000000000000000000000060003504637a66d7ca8114156100665760043560405260606060599059016000905260008152604051816020015260008160400152809050205460605260206060f35b63c60409c68114156100a55760043560405260606060599059016000905260008152604051816020015260018160400152809050205460a052602060a0f35b63186335768114156100e45760043560405260606060599059016000905260008152604051816020015260028160400152809050205460e052602060e0f35b63b3903c8a8114156101bc57600435604052606060605990590160009052600081526040518160200152600581604001528090502054610120526101205180602002602001599059016000905281815260208101905090506101605260006101c0525b610120516101c051121561019f57608060805990590160009052600081526040518160200152600481604001526101c051816060015280905020546101c05160200261016051015260016101c051016101c052610147565b6101605160206040820352602060208203510260400160408203f3505b636824e0fb8114156101fd57600435604052606060605990590160009052600081526040518160200152600581604001528090502054610220526020610220f35b633db16be381141561023e57600435604052606060605990590160009052600081526040518160200152600681604001528090502054610260526020610260f35b63c33878588114156102e05760006102a0526000546102c0526102c05180602002602001599059016000905281815260208101905090506102e0525b6102c0516102a05112156102c357604060405990590160009052600181526102a051816020015280905020546102a0516020026102e051015260016102a051016102a05261027a565b6102e05160206040820352602060208203510260400160408203f3505b63175c63228114156102fa57600054610380526020610380f35b63d861f2b4811415610336576004356103a052604060405990590160009052600181526103a051816020015280905020546103c05260206103c0f35b63b0dab01f81141561044f57600435610400526024356104205260443561044052606435610460526000606060605990590160009052600081526104005181602001526001816040015280905020541415610441576104205160606060599059016000905260008152610400518160200152600081604001528090502055610440516060606059905901600090526000815261040051816020015260018160400152809050205561046051606060605990590160009052600081526104005181602001526006816040015280905020556104005160406040599059016000905260018152600054816020015280905020556001600054016000556001610520526020610520f361044e565b6000610540526020610540f35b5b63aac2ffb58114156104b95760043560405260016060606059905901600090526000815260405181602001526002816040015280905020540160606060599059016000905260008152604051816020015260028160400152809050205560016105a05260206105a0f35b637265802d811415610507576004356040526024356105c0526105c0516060606059905901600090526000815260405181602001526002816040015280905020556001610600526020610600f35b63c5476efe811415610571576004356040526001606060605990590160009052600081526040518160200152600081604001528090502054016060606059905901600090526000815260405181602001526000816040015280905020556001610660526020610660f35b63c551e31e81141561063b576004356040526024356106805260606060599059016000905260008152604051816020015260058160400152809050205461012052610680516080608059905901600090526000815260405181602001526004816040015261012051816060015280905020556001606060605990590160009052600081526040518160200152600581604001528090502054016060606059905901600090526000815260405181602001526005816040015280905020556001610720526020610720f35b633d90504581141561067c57600435604052606060605990590160009052600081526040518160200152600381604001528090502054610740526020610740f35b631cda01ef8114156106e65760043560405260016060606059905901600090526000815260405181602001526003816040015280905020540160606060599059016000905260008152604051816020015260038160400152809050205560016107c05260206107c0f35b63c286273a811415610734576004356040526024356107e0526107e0516060606059905901600090526000815260405181602001526003816040015280905020556001610820526020610820f35b50", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x0a4470e9d0419df71f6257fcdfd2c0a3bad96a23f5ab414bc10aaf1a31a536a7" : "0xb4876148229c22bd2291f1a4f5468c8c789b23639370c4d447f270ba341dbbec", + "0x16ef4193a274568d283ff919c299729e07696d9ada48187b81d68e12e7b962de" : "0x0a103c04e7ecb9b3395f77c7b0cad28e62c85f042de4767ccc6c005e6f47f8d4", + "0x1f1866e966f321b84535705846689749d34d5dc02994613e2931973c605d9e93" : "0xc723d0aa4a60529fe42277c8094aa19263aff36650136efc5edfd0785d457634", + "0x252a4ec7133643fddcdb22a86c415f78b2dd251f18d1efcd6a44acf590c4ae72" : "0x9caf94b82715869e71d3cee986094ea612f0258570b7e5ef47b5d09e9515322b", + "0x41b451e8d86d28add758cbd3f48a18fd04b11a80288c1dc434a5bf2d8fb1ca64" : "0xb602498f12a8b4af3a1fca357cea6b19bcd163dfec1d845364ce1395f7c21fa7", + "0x491d10658c1ec762152d8ad2d890ad59111b1ee7b4bc25736046923d3534d9a5" : "0x629e", + "0x5b0e8552efd72a845e47318abbbef9dc9fcdfe0d1a06cda44494401301581511" : "0xfbc98f4017ae5c20459daadaa6bee519b6de871d3dbaa9ab3f34340fef4cb643", + "0x5b672a107ba6fab01cbddf079042e9f6176a8e6f154584fc4df4b15674c9456e" : "0x1603da41d610854d85536b37d000e5eb7ca09786c43f50e7441c0afbff1de0a9", + "0x605b934bd26c9ecdf7029a7dc062d3a6b87338511cff96e0c5f13de9eea3462e" : "0xf0d24f3d0eda573fc5d43e3d0680993c51293752cd6de205040d3197f412f475", + "0x618355e25491dfe86175f9d9b3147e4d680aa561d98384e3621dc6a3088b0846" : "0x6b2e6d2d5deb27dffec973f23af4caf111e66d1397f467dbbedf5ab2192fb6b6", + "0x65112936bec0f1e84fda6623fb54e12baadc8a4a208c8c4eb3ed5e79cbd7e85f" : "0xa59ac24e3e0663413d0f87516ba8fb44c6c3e14da8eaabbde80f8ee285f65934", + "0x687cb2122de7bacf42b9cd380b04ff2a2ce92a0b63706a9a78263b3ce86f3313" : "0x0200000000000000", + "0x72a539b064c98d29a514ee55694225e05fb41fe63e5fe710e4536bd9ba3591b4" : "0x338ecfe6c523ed1184918b19584d97dd1095ecaadc49c7ba9da62b8b513026e0", + "0x7aeb0a0ce8882a12d853078382a2bc72f7a94af6109f167de37b36c0a7deb828" : "0x4c428400ea8a7bd7c46ba9895b508770efa4551f0d793e1beb1207da01d9962f", + "0x7c8f4a98e086f64e28c75f54712b5d44bec3c29b5c70519e8880d3046a5618dc" : "0xaafc1f2601752b114d722070f75539bfec7faf49f0d48a48d27862f0c3b09903", + "0x809c325f50acf5787776e960985e72443b4330ad1e2f466557fffee16ba51d44" : "0xb940a56e64b5b661d87919b8ef03640ec077a6d72dd0b524adedaa7ddc91ff7a", + "0x84e4a80d33c5d2abd2b0a5aec0fdc5eaeed90ab31db556e404a81718ea286e39" : "0x1c", + "0x877305412fa2486f563c457b744e5c8b1e4d0eca73371de5e771f2abc263f4dc" : "0x7088a36f67276d475aa62127cfde9790cc802fdf3a54df49461a25eb8bf15707", + "0x922a8f2fc1cbe67c8acc6a8a720983c366d71d3e2e78e3048949ebc913ea611a" : "0x50fb9f913ca102534bb0a8eb8ebf19c68dfd16ffe5e207bcc580084cd4ecd8b4", + "0x987cb9ecfd8ce499d9d0e9e6b7da29617aa02774a34f4a8ea54442f44a1e1936" : "0x5179f98f555f1e9f1d4a335d16f41154579a53e361e9859269b6fa74ea9c7d21", + "0xada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d" : "0x0f69b5", + "0xb16b117660f31197087f4d6fe50d3d4579152244956f753f9653ccf85f4b35c4" : "0x830272e3bb35226b047244cbdc46f1b6b864a280461e7a592f70e0863f4f1d33", + "0xb1f1aaedfb83c7755a2bffc9e2557f1723f9abe5642397963e76248c9209af57" : "0xe9be955c5fbfcd846d7425eaea05ce897786aefad99665342cbf30761b352526", + "0xb7bd50fdf7b043411c9ac33f0af2cebc69c393eb0b91f4976946f9c7b15ad0da" : "0xfccca0e7832bae9afe799a6d6177dc3869fa6c5b5105f8df6f365de5723820ec", + "0xbc96058eb03504ee6f5c0a9582f8720d99a6e9738b171499507facff0b2c0b5b" : "0x9db6a4f2766b51013b8d2f9038131d1bb4af725d019d111d7e26ff96c023b23f", + "0xc186c4f377b7f13892ade9656acd1522aa1f8ac151ac4f62457b5073241d79fc" : "0x7289738fef00f1770eeb098db9bd486c01ac12398d79cdf935514a128c585c51", + "0xcae57ae3017972d63effd8eae44f5054402c3e890d154b905ed6b5b533327fa9" : "0xd2e4bf465e61993d13089b940a7c55017a5117d8e43e4115550a139e1d4b3e3a", + "0xcf569ee7bf3accc0f893dffd04f1a757f373efe80893eff504fb3678f688ec1d" : "0x03", + "0xd69b7284545a9f5275df64ce94848dc954fcb8a8b525e7ac801517c12a75af84" : "0x4202995350abae303b43e564aa79121a30b5f1aea31f69cd25e07dd3fa64dce7", + "0xd8f6f90f51e657690ee28d1cc80d81bc1b89290065891fdd853d09caaaf756aa" : "0x01", + "0xde72f8eed43cc2a5a3eaa51483d14b17dc92bb26c154ae184cee4b4895011edc" : "0x47ce2b6fdb72c3fabb9c74f82c1e3e522bcd42e614fd85c208ac3c4c840cea72", + "0xe0e687ddf317f3d2b209ae3884148eff0f636e16827f82eded14ada8fc603009" : "0xfa7c8939f9b033162cf8d75ea69671bb8a27041bd4cdc76594e61e99333cb041", + "0xe8cda339d72a1a350b62f1e3fa52e254c395cc9fdd9f60adb21c7633fbdab531" : "0x128c4fdf4801a30eae99dd58f0f3ff5ca65f71b66a9ac0f38dd450fb24b4aaaa", + "0xec5e7f54fa5e516e616b04f9d5a0ee433a80e09ed47d7e5269afd76c05ff251e" : "0x14", + "0xf9a3bf5f2ccb903ee1a7644113b794db0260de404fb8f11203e75a7fff151618" : "0xbd94773c0d85c68240ae8dfd53d9d33cd137509bfc5d3433381299df768c8377" + } + }, + "e509e3a93beb1eba72f8cb8d25f93a85e2d54afb" : { + "nonce" : "0x00", + "storage" : { + "0x0f299dbbe3a7a5d949fe794e9a47b3106699c8110ff986eb84921c183e69e7f0" : "0x2f0000000000000000", + "0x1edcd36f61cae5dc6414157dfbadf9f11ca013ac763e27f8af55feaa8a239c89" : "0x01", + "0x689082d076ec3c02cbe4b99f6d9833e3c4a161072fd42fb7649eee5189a67ccc" : "0x63524e3fe4791aefce1e932bbfb3fdf375bfad89", + "0xaf1d6676be3ab502a59d91f6f5c49baffc15b2cfc65a41c4d96857c0f535adba" : "0x01d60000000000000000", + "0xdf1a770f69d93d1719292f384fdb4da22c0e88aef2ba462bff16674bc7848730" : "0x1c11aa45c792e202e9ffdc2f12f99d0d209bef70", + "0xec5e7f54fa5e516e616b04f9d5a0ee433a80e09ed47d7e5269afd76c05ff251e" : "0x02" + } + }, + "f1562e1c0d0baa3ea746442bb7f11153fcf5cfda" : { + "code" : "0x600061067f537c010000000000000000000000000000000000000000000000000000000060003504632f300bee8114156100ac576004356040526024356060526044356080526002608051018080602002602001599059016000905281815260208101905090506801000000000000000081526060516080516020028201526001604051036001608051016020028201528060206040820352602060208203510260400160408203f35050505b63a647a5b98114156102c85736599059016000905236600482376004356020820101610100526024356020820101610160526044356020820101610180526064356101a05260843560805250602061010051035180806020026020015990590160009052818152602081019050905060005b6101a0518112156101d557600060005b608051811215610162578060200261010051015181608051850201602002610160510151028201915060018101905061012e565b50680100000000000000008105905060005b6080518112156101c857700100000000000000000000000000000000836020026101805101518260805186020160200261016051015184020205816020028501510381602002850152600181019050610174565b505060018101905061011e565b50600060005b60805181121561020357806020028301518160200284015102820191506001810190506101db565b5068010000000000000000810590506002810560005b600b81121561024257600282680100000000000000008502058301059150600181019050610219565b5060005b60805181121561027657816801000000000000000082602002860151020581602002850152600181019050610246565b5050506001608051602002610100510151036080516020028201526001608051016020026101005101516001608051016020028201528060206040820352602060208203510260400160408203f35050505b635b18022981141561037957365990590160009052366004823760043560208201016103005260243560208201016103205260443560805250600060005b60805181121561033f57680100000000000000008160200261032051015182602002610300510151020582019150600181019050610306565b6000610320515114151561036657610320515168010000000000000000830205915061036b565b600091505b81610380526020610380f350505b63f4ca7dc481141561057157365990590160009052366004823760043560208201016103a05260243560208201016103c0526044356101a0526064356080525060206103c051035160026080510a806020026020015990590160009052818152602081019050905060005b60805181121561044d5760005b6080518112156104415768010000000000000000816020026103a0510151836020026103a051015102058160805184020160200284015101816080518402016020028401526001810190506103f1565b506001810190506103e4565b81905090508180602002602001599059016000905281815260208101905090506080516101a05102806020026020015990590160009052818152602081019050905060005b6101a05181121561051e5760005b6080518112156105125760005b608051811215610506576801000000000000000082608051830201602002870151826080518602016020026103c051015102058260805185020160200285015101826080518502016020028501526001810190506104ad565b506001810190506104a0565b50600181019050610492565b819050905060005b848112156105525780602002820151816020026103c05101510381602002840152600181019050610526565b508160206040820352602060208203510260400160408203f350505050505b63232b273481141561069d57365990590160009052366004823760043560208201016106205260243560208201016102805260443560208201016103c052606435610640526084356101a05260a435608052506000610280515112156106025760005b6080518112156106005780602002610280510151600003816020026102805101526001810190506105d4565b505b60005b6101a05181121561067f5760005b60805181121561067357680100000000000000006801000000000000000082602002610280510151610640510205826080518502016020026103c05101510205826020026106205101510182602002610620510152600181019050610613565b50600181019050610605565b6106205160206040820352602060208203510260400160408203f350505b50", + "nonce" : "0x00", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x933c40bf2ae3cb437f9ae9a3fb2fa5f69b74ef40a6ee6fcd592e114d39242904", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfeecee5008c30a0e1ea56177c862cdee3a3c356a6c1d2d7732e6c5989f5f53e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfeecee5008c30a0e1ea56177c862cdee3a3c356a6c1d2d7732e6c5989f5f53e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x933c40bf2ae3cb437f9ae9a3fb2fa5f69b74ef40a6ee6fcd592e114d39242904", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000000" : { + "0000000000000000000000000000000000000000" : { "balance" : "0x01", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { + "0000000000000000000000000000000000000001" : { "balance" : "0x01", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { + "0000000000000000000000000000000000000002" : { "balance" : "0x01", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { + "0000000000000000000000000000000000000003" : { "balance" : "0x01", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { + "0000000000000000000000000000000000000004" : { "balance" : "0x01", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0x0ea65418d7bf32680f55572c943a94b590804998" : { - "balance" : "0x00", + "0ea65418d7bf32680f55572c943a94b590804998" : { + "balance" : "0", "code" : "0x600061289f537c01000000000000000000000000000000000000000000000000000000006000350473c9ae5868651bf7b7db6e360217db49ce4e69c07e60205263c4982a8581141561012757600435606052602435608052608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460a05260a051806020026020015990590160009052818152602081019050905060e0526000610140525b60a05161014051121561010b5760a060a0599059016000905260008152606051816020015260805181604001526001816060015261014051816080015280905020546101405160200260e051015260016101405101610140526100ad565b60e05160206040820352602060208203510260400160408203f3505b63cc1c944e8114156101765760043560605260243560805260806080599059016000905260008152606051816020015260805181604001526000816060015280905020546101a05260206101a0f35b6395a405b98114156101d5576004356060526024356080526044356101e05260a060a059905901600090526000815260605181602001526080518160400152600181606001526101e05181608001528090502054610200526020610200f35b6371ebb662811415610224576004356060526024356080526080608059905901600090526000815260605181602001526080518160400152600281606001528090502054610240526020610240f35b637a57a3db811415610325576004356060526024356080526044356102805260c060c0599059016000905260008152606051816020015260805181604001526003816060015261028051816080015260008160a0015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460200280806020015990590160009052818152602081019050905060005b602083048112156102e95780840154816020028301526001810190506102c8565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63f73dc690811415610394576004356060526024356080526044356103c0526064356103e05260c060c059905901600090526000815260605181602001526080518160400152600381606001526103c05181608001526103e0518160a001528090502054610400526020610400f35b6354cc61098114156103f3576004356060526024356080526044356103c05260a060a059905901600090526000815260605181602001526080518160400152600481606001526103c05181608001528090502054610440526020610440f35b63c63ef546811415610442576004356060526024356080526080608059905901600090526000815260605181602001526080518160400152600581606001528090502054610480526020610480f35b639381779b8114156105335760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600681606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260058160600152809050205460200280806020015990590160009052818152602081019050905060005b602083048112156104f75780840154816020028301526001810190506104d6565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b634f9c6eeb8114156106245760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600781606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260058160600152809050205460200280806020015990590160009052818152602081019050905060005b602083048112156105e85780840154816020028301526001810190506105c7565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b637dc121958114156107155760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600881606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260058160600152809050205460200280806020015990590160009052818152602081019050905060005b602083048112156106d95780840154816020028301526001810190506106b8565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63fa9832d18114156108065760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600981606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460200280806020015990590160009052818152602081019050905060005b602083048112156107ca5780840154816020028301526001810190506107a9565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b632c5a40d58114156108f75760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600a81606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260058160600152809050205460200280806020015990590160009052818152602081019050905060005b602083048112156108bb57808401548160200283015260018101905061089a565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63e05dcb568114156109eb5760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600b81606001526000816080015280905020600260806080599059016000905260008152606051816020015260805181604001526000816060015280905020546020020180806020015990590160009052818152602081019050905060005b602083048112156109af57808401548160200283015260018101905061098e565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63586b5be0811415610a3a576004356060526024356080526080608059905901600090526000815260605181602001526080518160400152600c81606001528090502054610b80526020610b80f35b63eb8af5aa811415610b585760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600d81606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460806080599059016000905260008152606051816020015260805181604001526005816060015280905020540560200280806020015990590160009052818152602081019050905060005b60208304811215610b1c578084015481602002830152600181019050610afb565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b637ab6ea8a811415610c765760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600e81606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460806080599059016000905260008152606051816020015260805181604001526005816060015280905020540560200280806020015990590160009052818152602081019050905060005b60208304811215610c3a578084015481602002830152600181019050610c19565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b632b810cb9811415610d945760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152600f81606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460806080599059016000905260008152606051816020015260805181604001526005816060015280905020540560200280806020015990590160009052818152602081019050905060005b60208304811215610d58578084015481602002830152600181019050610d37565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b637fb42e46811415610e855760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152601081606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460200280806020015990590160009052818152602081019050905060005b60208304811215610e49578084015481602002830152600181019050610e28565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63734fa727811415610f765760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152601181606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460200280806020015990590160009052818152602081019050905060005b60208304811215610f3a578084015481602002830152600181019050610f19565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63c67fa8578114156110675760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152601281606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460200280806020015990590160009052818152602081019050905060005b6020830481121561102b57808401548160200283015260018101905061100a565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b635ed853e48114156111855760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152601381606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460806080599059016000905260008152606051816020015260805181604001526005816060015280905020540560200280806020015990590160009052818152602081019050905060005b60208304811215611149578084015481602002830152600181019050611128565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63b86f51258114156112a35760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152601481606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460806080599059016000905260008152606051816020015260805181604001526005816060015280905020540560200280806020015990590160009052818152602081019050905060005b60208304811215611267578084015481602002830152600181019050611246565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63bc3d7d858114156113945760043560605260243560805260a060a059905901600090526000815260605181602001526080518160400152601581606001526000816080015280905020608060805990590160009052600081526060518160200152608051816040015260008160600152809050205460200280806020015990590160009052818152602081019050905060005b60208304811215611358578084015481602002830152600181019050611337565b602083066020036101000a60000381850154168160200283015281905090509050905060206040820352602060208203510260400160408203f3505b63a2302f2f81141561148157600435606052602435611680526044356116a0526116a05160a060a0599059016000905260008152606051816020015261168051816040015260018160600152608060805990590160009052600081526060518160200152611680518160400152600081606001528090502054816080015280905020556001608060805990590160009052600081526060518160200152611680518160400152600081606001528090502054016080608059905901600090526000815260605181602001526116805181604001526000816060015280905020556001611740526020611740f35b63058ca2bc8114156114dd576004356060526024356080526044356117605261176051608060805990590160009052600081526060518160200152608051816040015260028160600152809050205560016117a05260206117a0f35b635d3b965b8114156116175736599059016000905236600482376004356060526024356080526044356102805260643560208201016117e052608435611800525060c060c0599059016000905260008152606051816020015260805181604001526003816060015261028051816080015260008160a001528090502060206117e05103516020026020810460005b8181121561158c57806020026117e05101518482015560018101905061156b565b602083066020036101000a600003816020026117e05101511684820155505050506118005160806080599059016000905260008152606051816020015260805181604001526002816060015280905020540160806080599059016000905260008152606051816020015260805181604001526002816060015280905020556001611900526020611900f35b63b0e14f0f81141561167357600435606052602435608052604435611920526119205160806080599059016000905260008152606051816020015260805181604001526005816060015280905020556001611960526020611960f35b636acccdbc8114156117395736599059016000905236600482376004356060526024356080526044356020820101611980525060a060a05990590160009052600081526060518160200152608051816040015260068160600152600081608001528090502060206119805103516020026020810460005b8181121561170b5780602002611980510151848201556001810190506116ea565b602083066020036101000a600003816020026119805101511684820155505050506001611a40526020611a40f35b63a1fa51f98114156117ff5736599059016000905236600482376004356060526024356080526044356020820101611a60525060a060a0599059016000905260008152606051816020015260805181604001526007816060015260008160800152809050206020611a605103516020026020810460005b818112156117d15780602002611a60510151848201556001810190506117b0565b602083066020036101000a60000381602002611a605101511684820155505050506001611b20526020611b20f35b63cd87f43a8114156118c55736599059016000905236600482376004356060526024356080526044356020820101611b40525060a060a0599059016000905260008152606051816020015260805181604001526008816060015260008160800152809050206020611b405103516020026020810460005b818112156118975780602002611b4051015184820155600181019050611876565b602083066020036101000a60000381602002611b405101511684820155505050506001611c00526020611c00f35b63222a866381141561198b5736599059016000905236600482376004356060526024356080526044356020820101611c20525060a060a0599059016000905260008152606051816020015260805181604001526009816060015260008160800152809050206020611c205103516020026020810460005b8181121561195d5780602002611c205101518482015560018101905061193c565b602083066020036101000a60000381602002611c205101511684820155505050506001611ce0526020611ce0f35b63b39e1faa811415611a515736599059016000905236600482376004356060526024356080526044356020820101611d00525060a060a059905901600090526000815260605181602001526080518160400152600a816060015260008160800152809050206020611d005103516020026020810460005b81811215611a235780602002611d0051015184820155600181019050611a02565b602083066020036101000a60000381602002611d005101511684820155505050506001611dc0526020611dc0f35b63e365736b811415611b175736599059016000905236600482376004356060526024356080526044356020820101611de0525060a060a059905901600090526000815260605181602001526080518160400152600b816060015260008160800152809050206020611de05103516020026020810460005b81811215611ae95780602002611de051015184820155600181019050611ac8565b602083066020036101000a60000381602002611de05101511684820155505050506001611ea0526020611ea0f35b63aad7d6e3811415611b7357600435606052602435608052604435611ec052611ec0516080608059905901600090526000815260605181602001526080518160400152600c816060015280905020556001611f00526020611f00f35b6301112b27811415611c395736599059016000905236600482376004356060526024356080526044356020820101611f20525060a060a059905901600090526000815260605181602001526080518160400152600d816060015260008160800152809050206020611f205103516020026020810460005b81811215611c0b5780602002611f2051015184820155600181019050611bea565b602083066020036101000a60000381602002611f205101511684820155505050506001611fe0526020611fe0f35b63bdbb239b811415611cff5736599059016000905236600482376004356060526024356080526044356020820101612000525060a060a059905901600090526000815260605181602001526080518160400152600e8160600152600081608001528090502060206120005103516020026020810460005b81811215611cd1578060200261200051015184820155600181019050611cb0565b602083066020036101000a6000038160200261200051015116848201555050505060016120c05260206120c0f35b6305a0cd48811415611dc557365990590160009052366004823760043560605260243560805260443560208201016120e0525060a060a059905901600090526000815260605181602001526080518160400152600f8160600152600081608001528090502060206120e05103516020026020810460005b81811215611d9757806020026120e051015184820155600181019050611d76565b602083066020036101000a600003816020026120e051015116848201555050505060016121a05260206121a0f35b63aaa1fe35811415611e8b57365990590160009052366004823760043560605260243560805260443560208201016121c0525060a060a05990590160009052600081526060518160200152608051816040015260108160600152600081608001528090502060206121c05103516020026020810460005b81811215611e5d57806020026121c051015184820155600181019050611e3c565b602083066020036101000a600003816020026121c05101511684820155505050506001612280526020612280f35b632be4935d811415611f5157365990590160009052366004823760043560605260243560805260443560208201016122a0525060a060a05990590160009052600081526060518160200152608051816040015260118160600152600081608001528090502060206122a05103516020026020810460005b81811215611f2357806020026122a051015184820155600181019050611f02565b602083066020036101000a600003816020026122a05101511684820155505050506001612360526020612360f35b6313a8350d8114156120175736599059016000905236600482376004356060526024356080526044356020820101612380525060a060a05990590160009052600081526060518160200152608051816040015260128160600152600081608001528090502060206123805103516020026020810460005b81811215611fe9578060200261238051015184820155600181019050611fc8565b602083066020036101000a600003816020026123805101511684820155505050506001612440526020612440f35b63cb540b458114156120dd5736599059016000905236600482376004356060526024356080526044356020820101612460525060a060a05990590160009052600081526060518160200152608051816040015260138160600152600081608001528090502060206124605103516020026020810460005b818112156120af57806020026124605101518482015560018101905061208e565b602083066020036101000a600003816020026124605101511684820155505050506001612520526020612520f35b63be0306278114156121a35736599059016000905236600482376004356060526024356080526044356020820101612540525060a060a05990590160009052600081526060518160200152608051816040015260148160600152600081608001528090502060206125405103516020026020810460005b81811215612175578060200261254051015184820155600181019050612154565b602083066020036101000a600003816020026125405101511684820155505050506001612600526020612600f35b6383fd77f08114156122695736599059016000905236600482376004356060526024356080526044356020820101612620525060a060a05990590160009052600081526060518160200152608051816040015260158160600152600081608001528090502060206126205103516020026020810460005b8181121561223b57806020026126205101518482015560018101905061221a565b602083066020036101000a6000038160200261262051015116848201555050505060016126e05260206126e0f35b63594622058114156122d5576004356060526024356080526044356103c052606435612700526127005160a060a059905901600090526000815260605181602001526080518160400152600481606001526103c051816080015280905020556001612740526020612740f35b63bb8e419681141561244857600435606052602435612760526044356127805260006127a0525b6080608059905901600090526000815260605181602001526001612760510381604001526000816060015280905020546127a051121561243b5760a060a05990590160009052600081526060518160200152600161276051038160400152600181606001526127a0518160800152809050205460a060a05990590160009052600081526060518160200152612780518160400152600181606001526080608059905901600090526000815260605181602001526127805181604001526000816060015280905020548160800152809050205560016080608059905901600090526000815260605181602001526127805181604001526000816060015280905020540160806080599059016000905260008152606051816020015261278051816040015260008160600152809050205560016127a051016127a0526122fc565b6001612880526020612880f35b50", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x065d5efdfcc0fba693dc9e467f633097ffdc97401901463ad0e28855486d1edf" : "0xb9d69098a6acfe0c6411bcaaf430f78d363a9adc32b78bc2e15ccd6e883e9784", "0x12643ff300762717d27efb567b82c65560d7b43249d908504e5510863ab82aac" : "0x154cf60e137c594516a065149610b6a3989396a42581d5fd8919e711c55da225", - "0x1489023d18c5d10427c4aa8dc726e840eb5ae7f604a8e9243c61634fb009e4d7" : "0x05", - "0x1489023d18c5d10427c4aa8dc726e840eb5ae7f604a8e9243c61634fb009e4d8" : "0x01", - "0x19efb13d6576359514ace5211988a8d51379fa88ccd2b886b409f842b13d7932" : "0xc849cc595b452d11c206d2eb8cdfa06de211e3ff19ee0e0276dc857c05d4fe", + "0x1489023d18c5d10427c4aa8dc726e840eb5ae7f604a8e9243c61634fb009e4d7" : "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x1489023d18c5d10427c4aa8dc726e840eb5ae7f604a8e9243c61634fb009e4d8" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x19efb13d6576359514ace5211988a8d51379fa88ccd2b886b409f842b13d7932" : "0x00c849cc595b452d11c206d2eb8cdfa06de211e3ff19ee0e0276dc857c05d4fe", "0x1b37e91bf8580c7c6bcf8cdff25c7ed78180124a94af6f30c40d476a3d079ad6" : "0xaba4cd295118a482a0a62579e35e4ba5bdd76146cc9e4d96172fce8be8977ab4", "0x2bf9fd8facdd6fd9c84657f5ad7381a5aecf670cda68cb3c5829b6532c865506" : "0x53098a1d111586dbcc0d051846284f5803c63c313e7f7e6d84430435d11d4c50", "0x3111bfd25728c0adfad0f8c1ad79cb1b91167267deca98de88f156ed25caeedc" : "0xad393086f30b49511b08fdd27ac78810b084c7cd7de6ac354f614c18ea9e7df4", "0x3379e7ae125c5c5d623d1d993c1459b61d6723b1c30d1aa026c48f6a6155b8ea" : "0x8c4183732567a99a8a718e363391e102532f9a640e42968cf2354d9acc908bb0", - "0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee2" : "0x01", - "0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee3" : "0x01", - "0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee4" : "0x01", - "0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee5" : "0x01", + "0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee2" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee3" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee4" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x34cabe0c7e64a2caa93fd8d6a0defc07acb9d44b13430fa3ae9282fffd40dee5" : "0x0000000000000000000000000000000000000000000000000000000000000001", "0x39050607fe892059a6344ab0f594f382fb0b345cab373497246dbe86fe7e14e7" : "0x2b3bca833e482737e7e47b1568e6f890f8e1666490d38fe130abd6f0ccb109cf", "0x417be8bc6791807372e0222a350bb8a5d67bbc8d7595c301d8a5a8372cfdcef1" : "0xabd4971b4605a7155802f70e08298b1ceb0e4e4eaccccd348f77a77227f73a7f", "0x41e9a54b3ee0c276aa076babb161de12b0f8916b47f8f6fb85cc387cf34696dd" : "0x22f2f444ebda9d2913ffef5059b039ec9b5876aa71821991c2515bf79f64935e", "0x45ceb8da6fb8936592d3bce4883f1a6a34d636f559e0a1070a5802a65ac39bd5" : "0x57a5122ff3bf737b0de0f9f08011a8648c19e43ff071fb7086234723c9383f1f", "0x4aa6b934608a45c8f53a945c05ddee1814a3b9f63a048fc7ad3d47e67156f024" : "0xd03862becedada67b4825a0238f3e67495ccb595cd7d08f1bd5d3160644b9299", - "0x4b8b58f0b0e326a5907d1a810e5ff31e05b4cab45125b776db8577e7dbc46bce" : "0x2f0000000000000000", + "0x4b8b58f0b0e326a5907d1a810e5ff31e05b4cab45125b776db8577e7dbc46bce" : "0x00000000000000000000000000000000000000000000002f0000000000000000", "0x4c33460347337bfc7df08bf182988301b7b426a27a67f1c6c634f637c60e87ac" : "0xbab4ab2ad4eafe7c84ef6a8cd69157d9ce6b843793a2cd0877b8e91f63cb2d4d", - "0x58da0c0c256bba101ce36fad8bf838717a57e6ab850a191dc9c09da9ce56bf1b" : "0x05", + "0x58da0c0c256bba101ce36fad8bf838717a57e6ab850a191dc9c09da9ce56bf1b" : "0x0000000000000000000000000000000000000000000000000000000000000005", "0x5cb38b16db1d632086d4af695de7f5f242a6e40947067f96edd566fe2ac438ef" : "0x6d0be832b2007ea28cda705b73922cbf9794c5a25b89bd2f28b7347ed2b96c86", "0x64a9621cc4ba92bf738c55010c609dfaa3972a1138c30b5adcef1ba2363b360e" : "0xd7953bfe8cb591f129fd0862a9e9c421151e2b5831560ff5215d23f751364b35", "0x696664a5f0ab5acd9304a377fb684f2d3fe6bb60b8a95cb2bdbb57db767e7a84" : "0x154cf60e137c594516a065149610b6a3989396a42581d5fd8919e711c55da225", "0x69ad1d19e617936abdf05133bf268dc8ced6b518f22b249b5860967d07006487" : "0x8c803b48b383ddabd1b3afe858efb48c203229b7317dd76149dddab4253b858a", "0x70b3bf53996fac325eb67608a4eeb0cd0b55def6255d7ed42ad28ec07238b5d6" : "0x45e9723e9232b37207ecac1c97b8647d053625a578d450f7456280b2ff8efc27", - "0x7a9dcee62e3e02cc8e020f372df2efdeb835f091c1ef1dbe221072d1095aabd2" : "0x2f0000000000000000", - "0x7e4d8c0f6d8abb4ce1ae45b254046aceedabfa9548851b8b5d3e2c0637c985fd" : "0x0b", + "0x7a9dcee62e3e02cc8e020f372df2efdeb835f091c1ef1dbe221072d1095aabd2" : "0x00000000000000000000000000000000000000000000002f0000000000000000", + "0x7e4d8c0f6d8abb4ce1ae45b254046aceedabfa9548851b8b5d3e2c0637c985fd" : "0x000000000000000000000000000000000000000000000000000000000000000b", "0x7e95f3cc3315d289c52253baaba29b1b00c86816e6b788d50795279a8baa00db" : "0x45e9723e9232b37207ecac1c97b8647d053625a578d450f7456280b2ff8efc27", "0x8da187157087529ee4e9c381f8e3149c56acf3bdfda29b8b9b4532f24b83f5fe" : "0x8c4183732567a99a8a718e363391e102532f9a640e42968cf2354d9acc908bb0", "0x9001f91ddaef87bc067886e874c0749998c9b58b2ec8472ca014ca8b55f88578" : "0x0fb76974eefca01f33fb38646c2d3c1536f1a763d7aff53ab7f877d4c5ea7fd0", - "0x9ed0cedd2a9a78d949f40019f53d10031aef6ed342c97e01fc03b481ee56b3cb" : "0x04", + "0x9ed0cedd2a9a78d949f40019f53d10031aef6ed342c97e01fc03b481ee56b3cb" : "0x0000000000000000000000000000000000000000000000000000000000000004", "0x9fddf1db29caa5c1239edd86e9e0835cdfe41f7253ec78f62d3da8558d6f3cd7" : "0x104eef8fa35bf39f677d81855bc0b9f42317f32792e98e95e4df441deb634211", "0xa0953566119395c11186b334805fc1a16175ecac0ecc93ae0322264f0dc2e40d" : "0x10c5a00466ab7c0adae1e93537cc275ea8cf23ff509d5466a1fd6f56b0a61d1b", - "0xaa0dbf8241ef3ae07c254e6869e84895ba2be0779a7f261c8308a3114be1c54a" : "0x04", - "0xaffe808b495d13a14391ce5f27c211c36da12826969cd7841ee0d81e5b900e2d" : "0x01", - "0xaffe808b495d13a14391ce5f27c211c36da12826969cd7841ee0d81e5b900e2e" : "0x01", + "0xaa0dbf8241ef3ae07c254e6869e84895ba2be0779a7f261c8308a3114be1c54a" : "0x0000000000000000000000000000000000000000000000000000000000000004", + "0xaffe808b495d13a14391ce5f27c211c36da12826969cd7841ee0d81e5b900e2d" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xaffe808b495d13a14391ce5f27c211c36da12826969cd7841ee0d81e5b900e2e" : "0x0000000000000000000000000000000000000000000000000000000000000001", "0xb4a2b68c48ef78aeb641ee538fad51781022fd23ed9d93d211017db6a02376ce" : "0x0fbc06642245cf2fed7ed46ea0a18a7185830b6f2c4e0a4ca55246041e8bfa72", "0xba8d79990898383919e437f2458b93b340072c89d963808d9e04f51858e3c5ec" : "0x41d2cac534d90a0dbd199117481a63e32cc11411dab2eaa36c91c0eec62823cf", "0xbb3bc1a2015123750df57d4ceff7e28cb847910b79b34841de905b59a8bb177c" : "0x734417eb19e1873427257f1ea1594748c16cfa866a7b7cf896e281f2ec774a40", - "0xbf30cdcb83ab2bd5f5eee691ffa4107b58b75ba6a5c2e6754d4c5c0437f2876c" : "0x05", + "0xbf30cdcb83ab2bd5f5eee691ffa4107b58b75ba6a5c2e6754d4c5c0437f2876c" : "0x0000000000000000000000000000000000000000000000000000000000000005", "0xc2a26b80067fc36b8268b0d5b31afff953fa91cebea39f191e2763d6e71259b9" : "0x02a43c547fe8de2400d2a141016550e8bae058d41164247c099e787ddd40e789", "0xc98339d275eef16e0562ca8521212cef61aa0f39b12e2a27502aaa97a9e5e70f" : "0x5a3de2a5c268cdb75f4b01507aa80c4e4a1bc67bcb0df265bbb00060774e5978", "0xcbd6ae6bd61bc9270ec836f1919b3268113abe076c7febfdb8cf573b199ce9a9" : "0xf402b17773c1f7534034ee58dc0d2a3421470a7a67daf4fa790dc3b420eef790", @@ -155,116 +270,116 @@ "0xd8f720c05a5526dd621d1831ae122abddd3dfecd8b63b0ba4c92fa7b2ade44ff" : "0xad393086f30b49511b08fdd27ac78810b084c7cd7de6ac354f614c18ea9e7df4", "0xdc22d3171b82817c910bbeac1f8b50c8de99f8c524f172aef3491981bd5ed4fb" : "0x94b8cba4ea090d1c392fbc94b82fb9ef9f468a15bbc537f4d051776f4d422b1d", "0xdce8adbdefa929dbe60245f359446db4174c62824b42e5d4d9e7b834b4d61deb" : "0x2c9069845b2e74c577ff1cd18df6bc452805f527a9ee91fd4a059e0408b5dea6", - "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d196" : "0x01", - "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d197" : "0x01", - "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d198" : "0x01", - "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d199" : "0x01", - "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d19a" : "0x01", + "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d196" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d197" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d198" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d199" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xdd9493073db9e42fd955e834c89a74089f99196186ee0b2688124989be00d19a" : "0x0000000000000000000000000000000000000000000000000000000000000001", "0xe54f074c81bfa60b5bf413934c108086298b77291560edfeead8aa1232e95236" : "0x0f40aaa24323c9e6983ccffafeebe4b426509b901e8c98b8a40d881804804e6b", - "0xe66c0f55f66c752edf73027d45b7b1ae729ae15e1c67c362dbc6f25edf8d76ff" : "0x01", + "0xe66c0f55f66c752edf73027d45b7b1ae729ae15e1c67c362dbc6f25edf8d76ff" : "0x0000000000000000000000000000000000000000000000000000000000000001", "0xe983d899f807bbcb5881f2ddf875b2ebb5cb8a7a4e77a8c98a40aaae6a468735" : "0x6d0be832b2007ea28cda705b73922cbf9794c5a25b89bd2f28b7347ed2b96c86", "0xed7d6e2d40fbd5046412ffad1c45b63d87c6197182d6dbc66bb1e5c6e4ded5c7" : "0xaba4cd295118a482a0a62579e35e4ba5bdd76146cc9e4d96172fce8be8977ab4", - "0xf043b5a1952847579f233706a8f130889a484d2da3e574fdd5859f05aaf52111" : "0x02", - "0xf40f4cfdacb62dd799f36b580349fac1f4a4caf8dd3383cc387c35adb6574e21" : "0x2f0000000000000000", + "0xf043b5a1952847579f233706a8f130889a484d2da3e574fdd5859f05aaf52111" : "0x0000000000000000000000000000000000000000000000000000000000000002", + "0xf40f4cfdacb62dd799f36b580349fac1f4a4caf8dd3383cc387c35adb6574e21" : "0x00000000000000000000000000000000000000000000002f0000000000000000", "0xf60fa6e25e9028a6dc6b26bbc1eadae3da157df0d1d6f6628bc33cad68a7e455" : "0x2d7d00618c059ebe40593b9497c633e1ac6e161dadbd5bb734c2663cd3e8a8e1", - "0xfd280ac5182d5b2366122f38acfa6dc471240ffde9d5feb985ce7a2325c960e7" : "0x03" + "0xfd280ac5182d5b2366122f38acfa6dc471240ffde9d5feb985ce7a2325c960e7" : "0x0000000000000000000000000000000000000000000000000000000000000003" } }, - "0x142a6927cf0060133187ba8a8e74d641438f0c1c" : { - "balance" : "0x00", + "142a6927cf0060133187ba8a8e74d641438f0c1c" : { + "balance" : "0", "code" : "0x600061031f537c01000000000000000000000000000000000000000000000000000000006000350473c9ae5868651bf7b7db6e360217db49ce4e69c07e602052730ea65418d7bf32680f55572c943a94b5908049986040526327138bfb81141561038d57600435608052601c6044599059016000905201637a66d7ca601c8203526080516004820152602060e06024836000602051602d5a03f15060e051905060a052601c604459905901600090520163c60409c6601c820352608051600482015260206101206024836000602051602d5a03f150610120519050430561010052600061014052600061016052600061018052600260a051016101005112151561010a576001610140525b60006101a052610100516101c0525b606461010051016101c051121561018457601c606459905901600090520163cc1c944e601c82035260805160048201526101c051602482015260206101e06044836000604051602d5a03f1506101e05190506101a051016101a05260016101c051016101c052610119565b6005601c606459905901600090520163cc1c944e601c820352608051600482015260a051602482015260206102006044836000604051602d5a03f1506102005190501280156101d357806101db565b600a6101a051125b9050156101eb57610140516101ee565b60005b1561033657601c604459905901600090520163c5476efe601c820352608051600482015260206102406024836000602051602d5a03f15061024051905050601c6064599059016000905201637265802d601c82035260805160048201526000602482015260206102606044836000602051602d5a03f15061026051905050601c606459905901600090520163c286273a601c82035260805160048201526000602482015260206102806044836000602051602d5a03f15061028051905050601c6044599059016000905201637a66d7ca601c820352608051600482015260206102a06024836000602051602d5a03f1506102a051905060a052601c608459905901600090520163bb8e4196601c820352608051600482015260a051602482015261010051604482015260206102c06064836000604051602d5a03f1506102c051905050610343565b6001610160526001610180525b61014051156103555761016051610358565b60005b156103665761018051610369565b60005b1561037f5760016102e05260206102e0f361038c565b6000610300526020610300f35b5b50", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x1cdc8315bdb1362de8b7b2fa9ee75dc873037179" : { + "1cdc8315bdb1362de8b7b2fa9ee75dc873037179" : { "balance" : "0x01", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } }, - "0x9761fecf88590592cf05ce545504d376d1693ab3" : { - "balance" : "0x00", + "9761fecf88590592cf05ce545504d376d1693ab3" : { + "balance" : "0", "code" : "0x60006105df537c010000000000000000000000000000000000000000000000000000000060003504730ea65418d7bf32680f55572c943a94b59080499860205273e509e3a93beb1eba72f8cb8d25f93a85e2d54afb60405273c9ae5868651bf7b7db6e360217db49ce4e69c07e60605273f1562e1c0d0baa3ea746442bb7f11153fcf5cfda60805263546fdeb381141561038d5760043560c05260243560e05260443561010052606435610120526084356101405260026101005101601c606459905901600090520163e05dcb56601c82035260c051600482015260e05160248201526002610100510160408160200201599059016000905281602002604001816044856000602051602d5a03f150604081019050905090506000600161010051016020028201511415610250576060601c61014c59905901600090520163e365736b601c82035260c051600482015260e0516024820152601c6084599059016000905201632f300bee601c82035260026004820152600560248201526101005160448201528460408160200201599059016000905281602002604001816064856000608051602d5a03f1506040810190509050905060208103516020026020018360448401526020820360a4840152806101088401528084019350505081600401599059016000905260648160648460006004601cf16101fc57fe5b6064810192506101088201518080858260a487015160006004600a8705601201f161022357fe5b50808401935050808303602061028082846000602051602d5a03f15061028051905090509050905061037d565b6060601c61014c59905901600090520163e365736b601c82035260c051600482015260e0516024820152601c6084599059016000905201632f300bee601c820352600160016101005101602002850151036004820152600560248201526101005160448201528460408160200201599059016000905281602002604001816064856000608051602d5a03f1506040810190509050905060208103516020026020018360448401526020820360a4840152806101088401528084019350505081600401599059016000905260648160648460006004601cf161032d57fe5b6064810192506101088201518080858260a487015160006004600a8705601201f161035457fe5b5080840193505080830360206102c082846000602051602d5a03f1506102c05190509050905090505b5060016102e05260206102e0f350505b63de9080c88114156107645760043560c05260243560e05260443561010052606435610120526084356101405260026101005101601c606459905901600090520163e05dcb56601c82035260c051600482015260e05160248201528160408160200201599059016000905281602002604001816044856000602051602d5a03f15060408101905090509050601c6064599059016000905201632c5a40d5601c82035260c051600482015260e05160248201526101405160408160200201599059016000905281602002604001816044856000602051602d5a03f1506040810190509050905061012051806020026020015990590160009052818152602081019050905060005b610120518112156104ee57601c60645990590160009052016328c8b315601c82035260c051600482015281602482015260206103606044836000604051602d5a03f15061036051905081602002830152600181019050610493565b5060a0601c61020c59905901600090520163a647a5b9601c8203528460208103516020026020018360048401526020820360a484015280610148840152808401935050508360208103516020026020018360248401526020820360c484015280610168840152808401935050508260208103516020026020018360448401526020820360e4840152806101888401528084019350505061012051606482015261010051608482015281600401599059016000905260a48160a484600060046022f16105b557fe5b60a4810192506101488201518080858260a487015160006004600a8705601201f16105dc57fe5b508084019350506101688201518080858260c487015160006004600a8705601201f161060457fe5b508084019350506101888201518080858260e487015160006004600a8705601201f161062c57fe5b5080840193505080830387604081602002015990590160009052816020026040018184866000608051602d5a03f1506040810190509050905090509050905092506060601c61014c59905901600090520163e365736b601c82035260c051600482015260e05160248201528460208103516020026020018360448401526020820360a4840152806101088401528084019350505081600401599059016000905260648160648460006004601cf16106df57fe5b6064810192506101088201518080858260a487015160006004600a8705601201f161070657fe5b5080840193505080830360206103c082846000602051602d5a03f1506103c05190509050905090505060006101005160200284015114156107525760006103e05260206103e0f361075f565b6001610400526020610400f35b505050505b63384ca8dd811415610a665760043560c05260243560e052604435610100526064356101205260843561014052601c606459905901600090520163e05dcb56601c82035260c051600482015260e05160248201526002610100510160408160200201599059016000905281602002604001816044856000602051602d5a03f15060408101905090509050601c606459905901600090520163fa9832d1601c82035260c051600482015260e05160248201526101005160408160200201599059016000905281602002604001816044856000602051602d5a03f15060408101905090509050601c608459905901600090520163aad7d6e3601c82035260c051600482015260e05160248201526060601c61014c599059016000905201635b180229601c8203528360208103516020026020018360048401526020820360648401528060c8840152808401935050508460208103516020026020018360248401526020820360848401528060e88401528084019350505061010051604482015281600401599059016000905260648160648460006004601cf161090157fe5b60648101925060c882015180808582606487015160006004600a8705601201f161092757fe5b5080840193505060e882015180808582608487015160006004600a8705601201f161094e57fe5b50808401935050808303602061044082846000608051602d5a03f150610440519050905090509050604482015260206104606064836000602051602d5a03f150610460519050506060601c61014c59905901600090520163222a8663601c82035260c051600482015260e05160248201528260208103516020026020018360448401526020820360a4840152806101088401528084019350505081600401599059016000905260648160648460006004601cf1610a0757fe5b6064810192506101088201518080858260a487015160006004600a8705601201f1610a2e57fe5b50808401935050808303602061048082846000602051602d5a03f1506104805190509050905090505060016104a05260206104a0f350505b63d5dc5af1811415610d4b5760043560c05260243560e052604435610100526064356101205260843561014052601c606459905901600090520163e05dcb56601c82035260c051600482015260e05160248201526002610100510160408160200201599059016000905281602002604001816044856000602051602d5a03f15060408101905090509050601c6064599059016000905201632c5a40d5601c82035260c051600482015260e05160248201526101405160408160200201599059016000905281602002604001816044856000602051602d5a03f150604081019050905090506080601c6101ac59905901600090520163f4ca7dc4601c82035283602081035160200260200183600484015260208203608484015280610108840152808401935050508260208103516020026020018360248401526020820360a4840152806101288401528084019350505061012051604482015261010051606482015281600401599059016000905260848160848460006004601ff1610be757fe5b60848101925061010882015180808582608487015160006004600a8705601201f1610c0e57fe5b508084019350506101288201518080858260a487015160006004600a8705601201f1610c3657fe5b5080840193505080830361014051604081602002015990590160009052816020026040018184866000608051602d5a03f1506040810190509050905090509050905090506060601c61014c59905901600090520163b39e1faa601c82035260c051600482015260e05160248201528260208103516020026020018360448401526020820360a4840152806101088401528084019350505081600401599059016000905260648160648460006004601cf1610cec57fe5b6064810192506101088201518080858260a487015160006004600a8705601201f1610d1357fe5b5080840193505080830360206104c082846000602051602d5a03f1506104c05190509050905090505060016104e05260206104e0f350505b630939aa8c81141561114c5760043560c05260243560e052604435610100526064356101205260843561014052601c606459905901600090520163e05dcb56601c82035260c051600482015260e05160248201526002610100510160408160200201599059016000905281602002604001816044856000602051602d5a03f15060408101905090509050601c6064599059016000905201637dc12195601c82035260c051600482015260e05160248201526101405160408160200201599059016000905281602002604001816044856000602051602d5a03f15060408101905090509050601c606459905901600090520163586b5be0601c82035260c051600482015260e051602482015260206105006044836000602051602d5a03f150610500519050601c606459905901600090520163eb8af5aa601c82035260c051600482015260e05160248201526101205160408160200201599059016000905281602002604001816044856000602051602d5a03f1506040810190509050905060c0601c61026c59905901600090520163232b2734601c8203528260208103516020026020018360048401526020820360c484015280610188840152808401935050508560208103516020026020018360248401526020820360e4840152806101a88401528084019350505084602081035160200260200183604484015260208203610104840152806101c8840152808401935050508360648201526101205160848201526101005160a482015281600401599059016000905260c48160c484600060046025f1610f9657fe5b60c4810192506101888201518080858260c487015160006004600a8705601201f1610fbd57fe5b508084019350506101a88201518080858260e487015160006004600a8705601201f1610fe557fe5b508084019350506101c88201518080858261010487015160006004600a8705601201f161100e57fe5b5080840193505080830361012051604081602002015990590160009052816020026040018184866000608051602d5a03f1506040810190509050905090509050905090506060601c61014c5990590160009052016301112b27601c82035260c051600482015260e05160248201528260208103516020026020018360448401526020820360a4840152806101088401528084019350505081600401599059016000905260648160648460006004601cf16110c457fe5b6064810192506101088201518080858260a487015160006004600a8705601201f16110eb57fe5b50808401935050808303602061058082846000602051602d5a03f15061058051905090509050905050600060016101005101602002850151141561113a5760006105a05260206105a0f3611147565b60016105c05260206105c0f35b505050505b50", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xd8d726b7177a800000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4000000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xb03f030056db7d467d778326658bac0d1b35d8f7" : { - "balance" : "0x00", + "b03f030056db7d467d778326658bac0d1b35d8f7" : { + "balance" : "0", "code" : "0x600061075f537c010000000000000000000000000000000000000000000000000000000060003504731e147037f0a63df228fe6e7aef730f1ea31c8ce3602052730ea65418d7bf32680f55572c943a94b59080499860405273e509e3a93beb1eba72f8cb8d25f93a85e2d54afb60605273c9ae5868651bf7b7db6e360217db49ce4e69c07e60805273142a6927cf0060133187ba8a8e74d641438f0c1c60a05273b163e767e4c1ba5ae88b2ee7594f3a3fec2bb09660c05273ba7b277319128ef4c22635534d0f61dffdaa13ab60e052739761fecf88590592cf05ce545504d376d1693ab36101005273f70bbc50f1468cecae0761ef09386a87c1c696ea6101205273a89d22f049aaa5bbfb5f1a1939fff3ae7a26ae746101405273174827f7e53e8ce13b047adcac0eb3f2cb0c3285610160526336a560bd811415610a88576004356101a052601c60445990590160009052016327138bfb601c8203526101a051600482015260206101e0602483600060a051602d5a03f1506101e05190501515610195576001600003610200526020610200f35b601c6044599059016000905201637a66d7ca601c8203526101a051600482015260206102206024836000608051602d5a03f150610220519050601c606459905901600090520163cc1c944e601c8203526101a05160048201528160248201526020610260604483600061028051602d5a03f150610260519050601c60445990590160009052016380b5e7bd601c8203526101a051600482015260206102a06024836000606051602d5a03f1506102a0519050808202601c60445990590160009052016318633576601c8203526101a051600482015260206103006024836000608051602d5a03f150610300519050600981141561036d57601c60c459905901600090520163ac44d71e601c8203526101a0516004820152856024820152846044820152836064820152826084820152602061036060a483600061016051602d5a03f15061036051905050601c6064599059016000905201637265802d601c8203526101a05160048201526000602482015260206103806044836000608051602d5a03f15061038051905050601c604459905901600090520163c5476efe601c8203526101a051600482015260206103a06024836000608051602d5a03f1506103a051905050600185016103c05260206103c0f3610a3a565b60008114156103cd57601c60c459905901600090520163ef72638a601c8203526101a051600482015285602482015284604482015283606482015282608482015260206103e060a483600060c051602d5a03f1506103e051905050610a39565b600181141561042d57601c60c459905901600090520163a63e976c601c8203526101a0516004820152856024820152846044820152836064820152826084820152602061040060a483600060e051602d5a03f15061040051905050610a38565b600281141561048d57601c60c459905901600090520163533ea0ed601c8203526101a0516004820152856024820152846044820152836064820152826084820152602061042060a483600060e051602d5a03f15061042051905050610a37565b600381141561085057601c606459905901600090520163e05dcb56601c8203526101a0516004820152856024820152600285016040816020020159905901600090528160200260400181604485600061028051602d5a03f15060408101905090509050601c6044599059016000905201633d905045601c8203526101a051600482015260206104806024836000608051602d5a03f150610480519050600481141561063357601c60c4599059016000905201630939aa8c601c8203526101a051600482015287602482015286604482015285606482015284608482015260206104e060a483600061010051602d5a03f1506104e05190506104c052601c606459905901600090520163c286273a601c8203526101a05160048201526000602482015260206105006044836000608051602d5a03f1506105005190505060016104c05114156105e55782610520526020610520f361062e565b601c604459905901600090520163aac2ffb5601c8203526101a051600482015260206105406024836000608051602d5a03f1506105405190505060018301610560526020610560f35b610804565b600081141561069457601c60c459905901600090520163546fdeb3601c8203526101a0516004820152876024820152866044820152856064820152846084820152602061058060a483600061010051602d5a03f15061058051905050610803565b6001811415610742576000601c60c459905901600090520163de9080c8601c8203526101a051600482015288602482015287604482015286606482015285608482015260206105a060a483600061010051602d5a03f1506105a0519050141561073257601c6044599059016000905201631cda01ef601c8203526101a051600482015260206105c06024836000608051602d5a03f1506105c0519050505b826105e05260206105e0f3610802565b60028114156107a357601c60c459905901600090520163384ca8dd601c8203526101a0516004820152876024820152866044820152856064820152846084820152602061060060a483600061010051602d5a03f15061060051905050610801565b600381141561080057601c60c459905901600090520163d5dc5af1601c8203526101a0516004820152876024820152866044820152856064820152846084820152602061062060a483600061010051602d5a03f150610620519050505b5b5b5b5b601c6044599059016000905201631cda01ef601c8203526101a051600482015260206106406024836000608051602d5a03f1506106405190505082610660526020610660f35050610a36565b60048114156108b157601c60c459905901600090520163f6559853601c8203526101a0516004820152856024820152846044820152836064820152826084820152602061068060a483600061012051602d5a03f15061068051905050610a35565b600581141561091257601c60c459905901600090520163d8e5473d601c8203526101a051600482015285602482015284604482015283606482015282608482015260206106a060a483600061012051602d5a03f1506106a051905050610a34565b600681141561097357601c60c459905901600090520163090507ea601c8203526101a051600482015285602482015284604482015283606482015282608482015260206106c060a483600061012051602d5a03f1506106c051905050610a33565b60078114156109d457601c60c4599059016000905201635b911842601c8203526101a051600482015285602482015284604482015283606482015282608482015260206106e060a483600061014051602d5a03f1506106e051905050610a32565b6008811415610a3157601c60c459905901600090520163abe22b84601c8203526101a0516004820152856024820152846044820152836064820152826084820152602061070060a483600061014051602d5a03f150610700519050505b5b5b5b5b5b5b5b5b5b601c604459905901600090520163aac2ffb5601c8203526101a051600482015260206107206024836000608051602d5a03f1506107205190505060018101610740526020610740f350505050505b50", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc9ae5868651bf7b7db6e360217db49ce4e69c07e" : { - "balance" : "0x00", + "c9ae5868651bf7b7db6e360217db49ce4e69c07e" : { + "balance" : "0", "code" : "0x600061083f537c010000000000000000000000000000000000000000000000000000000060003504637a66d7ca8114156100665760043560405260606060599059016000905260008152604051816020015260008160400152809050205460605260206060f35b63c60409c68114156100a55760043560405260606060599059016000905260008152604051816020015260018160400152809050205460a052602060a0f35b63186335768114156100e45760043560405260606060599059016000905260008152604051816020015260028160400152809050205460e052602060e0f35b63b3903c8a8114156101bc57600435604052606060605990590160009052600081526040518160200152600581604001528090502054610120526101205180602002602001599059016000905281815260208101905090506101605260006101c0525b610120516101c051121561019f57608060805990590160009052600081526040518160200152600481604001526101c051816060015280905020546101c05160200261016051015260016101c051016101c052610147565b6101605160206040820352602060208203510260400160408203f3505b636824e0fb8114156101fd57600435604052606060605990590160009052600081526040518160200152600581604001528090502054610220526020610220f35b633db16be381141561023e57600435604052606060605990590160009052600081526040518160200152600681604001528090502054610260526020610260f35b63c33878588114156102e05760006102a0526000546102c0526102c05180602002602001599059016000905281815260208101905090506102e0525b6102c0516102a05112156102c357604060405990590160009052600181526102a051816020015280905020546102a0516020026102e051015260016102a051016102a05261027a565b6102e05160206040820352602060208203510260400160408203f3505b63175c63228114156102fa57600054610380526020610380f35b63d861f2b4811415610336576004356103a052604060405990590160009052600181526103a051816020015280905020546103c05260206103c0f35b63b0dab01f81141561044f57600435610400526024356104205260443561044052606435610460526000606060605990590160009052600081526104005181602001526001816040015280905020541415610441576104205160606060599059016000905260008152610400518160200152600081604001528090502055610440516060606059905901600090526000815261040051816020015260018160400152809050205561046051606060605990590160009052600081526104005181602001526006816040015280905020556104005160406040599059016000905260018152600054816020015280905020556001600054016000556001610520526020610520f361044e565b6000610540526020610540f35b5b63aac2ffb58114156104b95760043560405260016060606059905901600090526000815260405181602001526002816040015280905020540160606060599059016000905260008152604051816020015260028160400152809050205560016105a05260206105a0f35b637265802d811415610507576004356040526024356105c0526105c0516060606059905901600090526000815260405181602001526002816040015280905020556001610600526020610600f35b63c5476efe811415610571576004356040526001606060605990590160009052600081526040518160200152600081604001528090502054016060606059905901600090526000815260405181602001526000816040015280905020556001610660526020610660f35b63c551e31e81141561063b576004356040526024356106805260606060599059016000905260008152604051816020015260058160400152809050205461012052610680516080608059905901600090526000815260405181602001526004816040015261012051816060015280905020556001606060605990590160009052600081526040518160200152600581604001528090502054016060606059905901600090526000815260405181602001526005816040015280905020556001610720526020610720f35b633d90504581141561067c57600435604052606060605990590160009052600081526040518160200152600381604001528090502054610740526020610740f35b631cda01ef8114156106e65760043560405260016060606059905901600090526000815260405181602001526003816040015280905020540160606060599059016000905260008152604051816020015260038160400152809050205560016107c05260206107c0f35b63c286273a811415610734576004356040526024356107e0526107e0516060606059905901600090526000815260405181602001526003816040015280905020556001610820526020610820f35b50", - "nonce" : "0x00", + "nonce" : "0", "storage" : { - "0x00" : "0x01", + "0x0000000000000000000000000000000000000000000000000000000000000000" : "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0a4470e9d0419df71f6257fcdfd2c0a3bad96a23f5ab414bc10aaf1a31a536a7" : "0xb4876148229c22bd2291f1a4f5468c8c789b23639370c4d447f270ba341dbbec", "0x16ef4193a274568d283ff919c299729e07696d9ada48187b81d68e12e7b962de" : "0x0a103c04e7ecb9b3395f77c7b0cad28e62c85f042de4767ccc6c005e6f47f8d4", "0x1f1866e966f321b84535705846689749d34d5dc02994613e2931973c605d9e93" : "0xc723d0aa4a60529fe42277c8094aa19263aff36650136efc5edfd0785d457634", "0x252a4ec7133643fddcdb22a86c415f78b2dd251f18d1efcd6a44acf590c4ae72" : "0x9caf94b82715869e71d3cee986094ea612f0258570b7e5ef47b5d09e9515322b", "0x41b451e8d86d28add758cbd3f48a18fd04b11a80288c1dc434a5bf2d8fb1ca64" : "0xb602498f12a8b4af3a1fca357cea6b19bcd163dfec1d845364ce1395f7c21fa7", - "0x491d10658c1ec762152d8ad2d890ad59111b1ee7b4bc25736046923d3534d9a5" : "0x629e", + "0x491d10658c1ec762152d8ad2d890ad59111b1ee7b4bc25736046923d3534d9a5" : "0x000000000000000000000000000000000000000000000000000000000000629e", "0x5b0e8552efd72a845e47318abbbef9dc9fcdfe0d1a06cda44494401301581511" : "0xfbc98f4017ae5c20459daadaa6bee519b6de871d3dbaa9ab3f34340fef4cb643", "0x5b672a107ba6fab01cbddf079042e9f6176a8e6f154584fc4df4b15674c9456e" : "0x1603da41d610854d85536b37d000e5eb7ca09786c43f50e7441c0afbff1de0a9", "0x605b934bd26c9ecdf7029a7dc062d3a6b87338511cff96e0c5f13de9eea3462e" : "0xf0d24f3d0eda573fc5d43e3d0680993c51293752cd6de205040d3197f412f475", "0x618355e25491dfe86175f9d9b3147e4d680aa561d98384e3621dc6a3088b0846" : "0x6b2e6d2d5deb27dffec973f23af4caf111e66d1397f467dbbedf5ab2192fb6b6", "0x65112936bec0f1e84fda6623fb54e12baadc8a4a208c8c4eb3ed5e79cbd7e85f" : "0xa59ac24e3e0663413d0f87516ba8fb44c6c3e14da8eaabbde80f8ee285f65934", - "0x687cb2122de7bacf42b9cd380b04ff2a2ce92a0b63706a9a78263b3ce86f3313" : "0x0200000000000000", + "0x687cb2122de7bacf42b9cd380b04ff2a2ce92a0b63706a9a78263b3ce86f3313" : "0x0000000000000000000000000000000000000000000000000200000000000000", "0x72a539b064c98d29a514ee55694225e05fb41fe63e5fe710e4536bd9ba3591b4" : "0x338ecfe6c523ed1184918b19584d97dd1095ecaadc49c7ba9da62b8b513026e0", "0x7aeb0a0ce8882a12d853078382a2bc72f7a94af6109f167de37b36c0a7deb828" : "0x4c428400ea8a7bd7c46ba9895b508770efa4551f0d793e1beb1207da01d9962f", "0x7c8f4a98e086f64e28c75f54712b5d44bec3c29b5c70519e8880d3046a5618dc" : "0xaafc1f2601752b114d722070f75539bfec7faf49f0d48a48d27862f0c3b09903", "0x809c325f50acf5787776e960985e72443b4330ad1e2f466557fffee16ba51d44" : "0xb940a56e64b5b661d87919b8ef03640ec077a6d72dd0b524adedaa7ddc91ff7a", - "0x84e4a80d33c5d2abd2b0a5aec0fdc5eaeed90ab31db556e404a81718ea286e39" : "0x1c", + "0x84e4a80d33c5d2abd2b0a5aec0fdc5eaeed90ab31db556e404a81718ea286e39" : "0x000000000000000000000000000000000000000000000000000000000000001c", "0x877305412fa2486f563c457b744e5c8b1e4d0eca73371de5e771f2abc263f4dc" : "0x7088a36f67276d475aa62127cfde9790cc802fdf3a54df49461a25eb8bf15707", "0x922a8f2fc1cbe67c8acc6a8a720983c366d71d3e2e78e3048949ebc913ea611a" : "0x50fb9f913ca102534bb0a8eb8ebf19c68dfd16ffe5e207bcc580084cd4ecd8b4", "0x987cb9ecfd8ce499d9d0e9e6b7da29617aa02774a34f4a8ea54442f44a1e1936" : "0x5179f98f555f1e9f1d4a335d16f41154579a53e361e9859269b6fa74ea9c7d21", - "0xada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d" : "0x0f69b5", + "0xada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d" : "0x00000000000000000000000000000000000000000000000000000000000f69b5", "0xb16b117660f31197087f4d6fe50d3d4579152244956f753f9653ccf85f4b35c4" : "0x830272e3bb35226b047244cbdc46f1b6b864a280461e7a592f70e0863f4f1d33", "0xb1f1aaedfb83c7755a2bffc9e2557f1723f9abe5642397963e76248c9209af57" : "0xe9be955c5fbfcd846d7425eaea05ce897786aefad99665342cbf30761b352526", "0xb7bd50fdf7b043411c9ac33f0af2cebc69c393eb0b91f4976946f9c7b15ad0da" : "0xfccca0e7832bae9afe799a6d6177dc3869fa6c5b5105f8df6f365de5723820ec", "0xbc96058eb03504ee6f5c0a9582f8720d99a6e9738b171499507facff0b2c0b5b" : "0x9db6a4f2766b51013b8d2f9038131d1bb4af725d019d111d7e26ff96c023b23f", "0xc186c4f377b7f13892ade9656acd1522aa1f8ac151ac4f62457b5073241d79fc" : "0x7289738fef00f1770eeb098db9bd486c01ac12398d79cdf935514a128c585c51", "0xcae57ae3017972d63effd8eae44f5054402c3e890d154b905ed6b5b533327fa9" : "0xd2e4bf465e61993d13089b940a7c55017a5117d8e43e4115550a139e1d4b3e3a", - "0xcf569ee7bf3accc0f893dffd04f1a757f373efe80893eff504fb3678f688ec1d" : "0x03", + "0xcf569ee7bf3accc0f893dffd04f1a757f373efe80893eff504fb3678f688ec1d" : "0x0000000000000000000000000000000000000000000000000000000000000003", "0xd69b7284545a9f5275df64ce94848dc954fcb8a8b525e7ac801517c12a75af84" : "0x4202995350abae303b43e564aa79121a30b5f1aea31f69cd25e07dd3fa64dce7", - "0xd8f6f90f51e657690ee28d1cc80d81bc1b89290065891fdd853d09caaaf756aa" : "0x01", + "0xd8f6f90f51e657690ee28d1cc80d81bc1b89290065891fdd853d09caaaf756aa" : "0x0000000000000000000000000000000000000000000000000000000000000001", "0xde72f8eed43cc2a5a3eaa51483d14b17dc92bb26c154ae184cee4b4895011edc" : "0x47ce2b6fdb72c3fabb9c74f82c1e3e522bcd42e614fd85c208ac3c4c840cea72", "0xe0e687ddf317f3d2b209ae3884148eff0f636e16827f82eded14ada8fc603009" : "0xfa7c8939f9b033162cf8d75ea69671bb8a27041bd4cdc76594e61e99333cb041", "0xe8cda339d72a1a350b62f1e3fa52e254c395cc9fdd9f60adb21c7633fbdab531" : "0x128c4fdf4801a30eae99dd58f0f3ff5ca65f71b66a9ac0f38dd450fb24b4aaaa", - "0xec5e7f54fa5e516e616b04f9d5a0ee433a80e09ed47d7e5269afd76c05ff251e" : "0x14", + "0xec5e7f54fa5e516e616b04f9d5a0ee433a80e09ed47d7e5269afd76c05ff251e" : "0x0000000000000000000000000000000000000000000000000000000000000014", "0xf9a3bf5f2ccb903ee1a7644113b794db0260de404fb8f11203e75a7fff151618" : "0xbd94773c0d85c68240ae8dfd53d9d33cd137509bfc5d3433381299df768c8377" } }, - "0xe509e3a93beb1eba72f8cb8d25f93a85e2d54afb" : { - "balance" : "0x00", + "e509e3a93beb1eba72f8cb8d25f93a85e2d54afb" : { + "balance" : "0", "code" : "0x6000610b7f537c01000000000000000000000000000000000000000000000000000000006000350473c9ae5868651bf7b7db6e360217db49ce4e69c07e6020526308d3d58781141561024557600435606052606060605990590160009052600081526060518160200152600181604001528090502054608052600060806080599059016000905260008152606051816020015260028160400152328160600152809050205414151561014e57608060805990590160009052600081526060518160200152600281604001523281606001528090502054608052682f000000000000000060a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020553260a060a05990590160009052600081526060518160200152600081604001526080518160600152600181608001528090502055610238565b608051608060805990590160009052600081526060518160200152600281604001523281606001528090502055682f000000000000000060a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020553260a060a059905901600090526000815260605181602001526000816040015260805181606001526001816080015280905020556001606060605990590160009052600081526060518160200152600181604001528090502054016060606059905901600090526000815260605181602001526001816040015280905020555b60016101e05260206101e0f35b6328c8b31581141561029d576004356060526024356102005260a060a0599059016000905260008152606051816020015260008160400152610200518160600152600081608001528090502054610220526020610220f35b6374af23ec8114156103865760043560605260243561026052608060805990590160009052600081526060518160200152600281604001526102605181606001528090502054610200526000610200511415610332576102605160a060a05990590160009052600081526060518160200152600081604001526102005181606001526001816080015280905020541415610335565b60005b156103475760006102c05260206102c0f35b60a060a05990590160009052600081526060518160200152600081604001526102005181606001526000816080015280905020546102e05260206102e0f35b6384d646ee8114156103dc5760043560605260243560805260a060a05990590160009052600081526060518160200152600081604001526080518160600152600181608001528090502054610320526020610320f35b63f42294278114156106f45760043561026052601c602459905901600090520163175c6322601c82035260206103a06004836000602051602d5a03f1506103a0519050610360526102605115610581576103605160020280602002602001599059016000905281815260208101905090506103c05261036051806020026020015990590160009052818152602081019050905061042052601c602459905901600090520163c3387858601c8203526103605160408160200201599059016000905281602002604001816004856000602051602d5a03f150604081019050905090506104205260006104c05260006104e0525b610360516104c051121561057c576104c051602002610420510151606052601c60645990590160009052016374af23ec601c82035260605160048201526102605160248201526020610520604483600030602d5a03f1506105205190506105005260006105005114151561056c576060516104e0516020026103c05101526105005160016104e051016020026103c051015260026104e051016104e0525b60016104c051016104c0526104ce565b6106d7565b32610260526103605160020280602002602001599059016000905281815260208101905090506103c05261036051806020026020015990590160009052818152602081019050905061042052601c602459905901600090520163c3387858601c8203526103605160408160200201599059016000905281602002604001816004856000602051602d5a03f150604081019050905090506104205260006104c05260006104e0525b610360516104c05112156106d6576104c051602002610420510151606052601c60645990590160009052016374af23ec601c820352606051600482015261026051602482015260206105c0604483600030602d5a03f1506105c0519050610500526000610500511415156106c6576060516104e0516020026103c05101526105005160016104e051016020026103c051015260026104e051016104e0525b60016104c051016104c052610628565b5b6103c05160206040820352602060208203510260400160408203f3505b6380b5e7bd81141561073557600435606052606060605990590160009052600081526060518160200152600181604001528090502054610600526020610600f35b63156f1c328114156107865760043560605260243561064052608060805990590160009052600081526060518160200152600281604001526106405181606001528090502054610660526020610660f35b63b3a24fc081141561087857365990590160009052366004823760043560208201016106c0526024356106e05250600260206106c0510351018060200260200159905901600090528181526020810190509050610700523261070051526106e051602061070051015260026104c0525b600260206106c0510351016104c05112156108385760026104c051036020026106c05101516104c05160200261070051015260016104c051016104c0526107f6565b60206107005103516020026020599059016000905260208183610700516000600287604801f15080519050905061076052610760516107c05260206107c0f35b63e346f5fc811415610a1c576004356107e0526024356108005260006104c0525b606060605990590160009052600081526107e05181602001526001816040015280905020546104c05112156109e65760a060a05990590160009052600081526107e0518160200152600081604001526104c0518160600152600181608001528090502054610840526108405160a060a0599059016000905260008152610800518160200152600081604001526104c051816060015260018160800152809050205560a060a05990590160009052600081526107e0518160200152600081604001526104c051816060015260008160800152809050205460a060a0599059016000905260008152610800518160200152600081604001526104c05181606001526000816080015280905020556104c0516080608059905901600090526000815261080051816020015260028160400152610840518160600152809050205560016104c051016104c052610899565b6104c051606060605990590160009052600081526108005181602001526001816040015280905020556001610920526020610920f35b633fb57036811415610b5457600435606052602435610940526060606059905901600090526000815260605181602001526001816040015280905020546109605261096051608060805990590160009052600081526060518160200152600281604001526109405181606001528090502055600060a060a05990590160009052600081526060518160200152600081604001526109605181606001526000816080015280905020556109405160a060a05990590160009052600081526060518160200152600081604001526109605181606001526001816080015280905020556001606060605990590160009052600081526060518160200152600181604001528090502054016060606059905901600090526000815260605181602001526001816040015280905020556001610a40526020610a40f35b6312709a33811415610beb57600435606052602435608052604435610a6052610a605160a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020540160a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020556001610ac0526020610ac0f35b633229cf6e811415610c8257600435606052602435608052604435610a6052610a605160a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020540360a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020556001610b20526020610b20f35b63a75f5c6a811415610ce557600435606052602435608052604435610a6052610a605160a060a059905901600090526000815260605181602001526000816040015260805181606001526000816080015280905020556001610b60526020610b60f35b50", - "nonce" : "0x00", + "nonce" : "0", "storage" : { - "0x0f299dbbe3a7a5d949fe794e9a47b3106699c8110ff986eb84921c183e69e7f0" : "0x2f0000000000000000", - "0x1edcd36f61cae5dc6414157dfbadf9f11ca013ac763e27f8af55feaa8a239c89" : "0x01", - "0x689082d076ec3c02cbe4b99f6d9833e3c4a161072fd42fb7649eee5189a67ccc" : "0x63524e3fe4791aefce1e932bbfb3fdf375bfad89", - "0xaf1d6676be3ab502a59d91f6f5c49baffc15b2cfc65a41c4d96857c0f535adba" : "0x01d60000000000000000", - "0xdf1a770f69d93d1719292f384fdb4da22c0e88aef2ba462bff16674bc7848730" : "0x1c11aa45c792e202e9ffdc2f12f99d0d209bef70", - "0xec5e7f54fa5e516e616b04f9d5a0ee433a80e09ed47d7e5269afd76c05ff251e" : "0x02" + "0x0f299dbbe3a7a5d949fe794e9a47b3106699c8110ff986eb84921c183e69e7f0" : "0x00000000000000000000000000000000000000000000002f0000000000000000", + "0x1edcd36f61cae5dc6414157dfbadf9f11ca013ac763e27f8af55feaa8a239c89" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x689082d076ec3c02cbe4b99f6d9833e3c4a161072fd42fb7649eee5189a67ccc" : "0x00000000000000000000000063524e3fe4791aefce1e932bbfb3fdf375bfad89", + "0xaf1d6676be3ab502a59d91f6f5c49baffc15b2cfc65a41c4d96857c0f535adba" : "0x0000000000000000000000000000000000000000000001d60000000000000000", + "0xdf1a770f69d93d1719292f384fdb4da22c0e88aef2ba462bff16674bc7848730" : "0x0000000000000000000000001c11aa45c792e202e9ffdc2f12f99d0d209bef70", + "0xec5e7f54fa5e516e616b04f9d5a0ee433a80e09ed47d7e5269afd76c05ff251e" : "0x0000000000000000000000000000000000000000000000000000000000000002" } }, - "0xf1562e1c0d0baa3ea746442bb7f11153fcf5cfda" : { - "balance" : "0x00", + "f1562e1c0d0baa3ea746442bb7f11153fcf5cfda" : { + "balance" : "0", "code" : "0x600061067f537c010000000000000000000000000000000000000000000000000000000060003504632f300bee8114156100ac576004356040526024356060526044356080526002608051018080602002602001599059016000905281815260208101905090506801000000000000000081526060516080516020028201526001604051036001608051016020028201528060206040820352602060208203510260400160408203f35050505b63a647a5b98114156102c85736599059016000905236600482376004356020820101610100526024356020820101610160526044356020820101610180526064356101a05260843560805250602061010051035180806020026020015990590160009052818152602081019050905060005b6101a0518112156101d557600060005b608051811215610162578060200261010051015181608051850201602002610160510151028201915060018101905061012e565b50680100000000000000008105905060005b6080518112156101c857700100000000000000000000000000000000836020026101805101518260805186020160200261016051015184020205816020028501510381602002850152600181019050610174565b505060018101905061011e565b50600060005b60805181121561020357806020028301518160200284015102820191506001810190506101db565b5068010000000000000000810590506002810560005b600b81121561024257600282680100000000000000008502058301059150600181019050610219565b5060005b60805181121561027657816801000000000000000082602002860151020581602002850152600181019050610246565b5050506001608051602002610100510151036080516020028201526001608051016020026101005101516001608051016020028201528060206040820352602060208203510260400160408203f35050505b635b18022981141561037957365990590160009052366004823760043560208201016103005260243560208201016103205260443560805250600060005b60805181121561033f57680100000000000000008160200261032051015182602002610300510151020582019150600181019050610306565b6000610320515114151561036657610320515168010000000000000000830205915061036b565b600091505b81610380526020610380f350505b63f4ca7dc481141561057157365990590160009052366004823760043560208201016103a05260243560208201016103c0526044356101a0526064356080525060206103c051035160026080510a806020026020015990590160009052818152602081019050905060005b60805181121561044d5760005b6080518112156104415768010000000000000000816020026103a0510151836020026103a051015102058160805184020160200284015101816080518402016020028401526001810190506103f1565b506001810190506103e4565b81905090508180602002602001599059016000905281815260208101905090506080516101a05102806020026020015990590160009052818152602081019050905060005b6101a05181121561051e5760005b6080518112156105125760005b608051811215610506576801000000000000000082608051830201602002870151826080518602016020026103c051015102058260805185020160200285015101826080518502016020028501526001810190506104ad565b506001810190506104a0565b50600181019050610492565b819050905060005b848112156105525780602002820151816020026103c05101510381602002840152600181019050610526565b508160206040820352602060208203510260400160408203f350505050505b63232b273481141561069d57365990590160009052366004823760043560208201016106205260243560208201016102805260443560208201016103c052606435610640526084356101a05260a435608052506000610280515112156106025760005b6080518112156106005780602002610280510151600003816020026102805101526001810190506105d4565b505b60005b6101a05181121561067f5760005b60805181121561067357680100000000000000006801000000000000000082602002610280510151610640510205826080518502016020026103c05101510205826020026106205101510182602002610620510152600181019050610613565b50600181019050610605565b6106205160206040820352602060208203510260400160408203f350505b50", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -274,14 +389,14 @@ "0x36a560bd00000000000000000000000000000000000000000000000000000000000f69b5" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x09184e72a000", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb03f030056db7d467d778326658bac0d1b35d8f7", + "gasPrice" : "10000000000000", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b03f030056db7d467d778326658bac0d1b35d8f7", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stSpecialTest/deploymentError.json b/GeneralStateTests/stSpecialTest/deploymentError.json index 9e0ceebd0..93ff7f789 100644 --- a/GeneralStateTests/stSpecialTest/deploymentError.json +++ b/GeneralStateTests/stSpecialTest/deploymentError.json @@ -2,74 +2,57 @@ "deploymentError" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSpecialTest/deploymentErrorFiller.json" }, "env" : { - "currentCoinbase" : "0x68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x12b9b060", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "314159200", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2682565f0c945052f21b2ed7f39fa832749c79f6181e2f66f7a5cb87eb65c74d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "code" : "0x606060405236156100a35760e060020a60003504630a19b14a81146100ab578063278b8c0e146100e25780632e1a7d4d14610111578063338b5dea14610125578063577863941461015057806365e17c9d146101595780636c86888b1461016b57806393f0bb51146101da5780639e281a9814610207578063c281309e14610232578063d0e30db01461023b578063f7888aec14610287578063fb6e155f146102bb575b6103e6610002565b6103e660043560243560443560643560843560a43560c43560e4356101043561012435610144356000600034111561042b57610002565b6103e660043560243560443560643560843560a43560c43560e43561010435600060003411156108b457610002565b6103e66004356000341115610ab357610002565b6103e66004356024356000341180610146575081600160a060020a03166000145b15610b6157610002565b6103e860035481565b6103fa600254600160a060020a031681565b61041760043560243560443560643560843560a43560c43560e43561010435610124356101443561016435600160a060020a038c8116600090815260208181526040808320938516835292905290812054839010801590610c96575082610c938e8e8e8e8e8e8e8e8e8e6102df565b6103e660043560243560443560643560843560a43560c43560e435610104356000341115610ca457610002565b6103e66004356024356000341180610228575081600160a060020a03166000145b15610d3057610002565b6103e860045481565b6103e633600160a060020a03166000908152600080516020610f9f8339815191526020526040902054610ea390345b6000828201610f8f8482108015906102825750838210155b610660565b6103e8600435602435600160a060020a03828116600090815260208181526040808320938516835292905220545b92915050565b6103e860043560243560443560643560843560a43560c43560e43561010435610124355b600060006000600060028e8e8e8e8e8e6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8c1684860152606084018b9052608084018a90529351919650600160a060020a038c169360019360a0808201949293601f19840193928390039091019190866161da5a03f11561000257505060206040510351600160a060020a03161480156103d75750894311155b1515610f295760009350610f18565b005b60408051918252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b604080519115158252519081900360200190f35b60028c8c8c8c8c8c6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8a168486015260608401899052608084018890529351919450600160a060020a038a169360019360a0818101949293601f19840193928390039091019190866161da5a03f11561000257505060206040510351600160a060020a031614801561051b5750874311155b801561054057506000818152600160205260409020548b9061053d908461026a565b11155b80156105715750600160a060020a038c81166000908152602081815260408083203390941683529290522054829010155b80156105b457508a6105838a8461060a565b811561000257600160a060020a038c8116600090815260208181526040808320938c16835292905220549190049010155b151561062b57610002565b600160a060020a038d81166000908152602081815260408083203385168452909152808220939093559088168152205460035461066c9190670de0b6b3a7640000906106bc90869083035b6000828202610f8f8483148061028257508385838115610002570414610660565b600160a060020a038c811660009081526020818152604080832033909416835292905220546105bf90835b6000610f96838311155b801515610ab057610002565b600160a060020a038d81166000908152602081815260408083208b8516845290915280822093909355600254909116815220546003546106c89190670de0b6b3a7640000906106bc90869061060a565b8115610002570461026a565b600160a060020a038d8116600090815260208181526040808320600254851684528252808320949094558d83168252818152838220928a168252919091522054610717908c61076c8c8661060a565b600160a060020a038b81166000908152602081815260408083208b851684529091528082209390935533909116815220546004546107789190670de0b6b3a7640000908e906107cd906107e09084038f61060a565b81156100025704610656565b600160a060020a038b8116600090815260208181526040808320338516845290915280822093909355600254909116815220546004546107e69190670de0b6b3a7640000908e906107cd906107e0908f61060a565b811561000257048115610002570461026a565b8761060a565b600160a060020a038b81166000908152602081815260408083206002549094168352928152828220939093558381526001909252902054610827908361026a565b6000828152600160205260409020557f6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d8c838c8e8d830281156100025760408051600160a060020a03968716815260208101959095529285168484015204606083015289831660808301523390921660a082015290519081900360c00190a1505050505050505050505050565b60028a8a8a8a8a8a6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8916848601526060840188905260808401879052935191945033600160a060020a03169360019360a0818101949293601f19840193928390039091019190866161da5a03f115610002575050604051601f190151600160a060020a0316146109a257610002565b6000818152600160209081526040918290208b90558151600160a060020a038d811682529181018c90528a821681840152606081018a90526080810189905260a081018890523390911660c082015260ff861660e08201526101008101859052610120810184905290517f1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0918190036101400190a150505050505050505050565b33600160a060020a03166000818152600080516020610f9f8339815191526020908152604080832054815193845291830193909352818301849052606082015290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b50565b33600160a060020a03166000908152600080516020610f9f833981519152602052604090205481901015610ae657610002565b33600160a060020a03166000908152600080516020610f9f8339815191526020526040902054610b169082610656565b33600160a060020a03166000818152600080516020610f9f8339815191526020526040808220939093559151909183919081818185876185025a03f1925050501515610a4357610002565b81600160a060020a03166323b872dd3330846040518460e060020a0281526004018084600160a060020a0316815260200183600160a060020a031681526020018281526020019350505050602060405180830381600087803b15610002576161da5a03f1156100025750506040515115159050610bdd57610002565b600160a060020a038281166000908152602081815260408083203390941683529290522054610c0c908261026a565b600160a060020a03838116600081815260208181526040808320339095168084529482529182902085905581519283528201929092528082018490526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15050565b5060015b9c9b505050505050505050505050565b10155b1515610c7f57506000610c83565b60408051600160a060020a038b81168252602082018b905289811682840152606082018990526080820188905260a08201879052331660c082015260ff851660e08201526101008101849052610120810183905290517f91daf02b6d1454acd74c097a67e389a9d9371da3ff51366947022dc36748ce4d918190036101400190a1505050505050505050565b600160a060020a03828116600090815260208181526040808320339094168352929052205481901015610d6257610002565b600160a060020a038281166000908152602081815260408083203390941683529290522054610d919082610656565b600160a060020a03838116600081815260208181526040808320339095168084529482528083209590955584517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810194909452602484018690529351919363a9059cbb936044818101949293918390030190829087803b15610002576161da5a03f1156100025750506040515115159050610e3057610002565b600160a060020a03828116600081815260208181526040808320339095168084529482529182902054825193845290830193909352818101849052606082019290925290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15050565b33600160a060020a03166000818152600080516020610f9f8339815191526020908152604080832085905580519283529082019290925234818301526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a1565b8093505b5050509a9950505050505050505050565b600083815260016020526040902054610f43908e90610656565b600160a060020a038d8116600090815260208181526040808320938d16835292905220549092508b90610f76908f61060a565b81156100025704905080821015610f1457819350610f18565b9392505050565b508082036102b556ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } } - ], - "EIP158" : [ - { - "hash" : "0xae4a5e0ae12bf4a52102c2c5b87ebf80e02cbd61418c18ab8e8a9ed3ddc14092", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf085769bc64edb479bdbaeb689cdd2ca57d2c3656d388222a5e738e48f6331a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd08738c9f0db382b49272bafd3332654cdf0548bad79bd3cc2193c517d0307f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "code" : "0x606060405236156100a35760e060020a60003504630a19b14a81146100ab578063278b8c0e146100e25780632e1a7d4d14610111578063338b5dea14610125578063577863941461015057806365e17c9d146101595780636c86888b1461016b57806393f0bb51146101da5780639e281a9814610207578063c281309e14610232578063d0e30db01461023b578063f7888aec14610287578063fb6e155f146102bb575b6103e6610002565b6103e660043560243560443560643560843560a43560c43560e4356101043561012435610144356000600034111561042b57610002565b6103e660043560243560443560643560843560a43560c43560e43561010435600060003411156108b457610002565b6103e66004356000341115610ab357610002565b6103e66004356024356000341180610146575081600160a060020a03166000145b15610b6157610002565b6103e860035481565b6103fa600254600160a060020a031681565b61041760043560243560443560643560843560a43560c43560e43561010435610124356101443561016435600160a060020a038c8116600090815260208181526040808320938516835292905290812054839010801590610c96575082610c938e8e8e8e8e8e8e8e8e8e6102df565b6103e660043560243560443560643560843560a43560c43560e435610104356000341115610ca457610002565b6103e66004356024356000341180610228575081600160a060020a03166000145b15610d3057610002565b6103e860045481565b6103e633600160a060020a03166000908152600080516020610f9f8339815191526020526040902054610ea390345b6000828201610f8f8482108015906102825750838210155b610660565b6103e8600435602435600160a060020a03828116600090815260208181526040808320938516835292905220545b92915050565b6103e860043560243560443560643560843560a43560c43560e43561010435610124355b600060006000600060028e8e8e8e8e8e6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8c1684860152606084018b9052608084018a90529351919650600160a060020a038c169360019360a0808201949293601f19840193928390039091019190866161da5a03f11561000257505060206040510351600160a060020a03161480156103d75750894311155b1515610f295760009350610f18565b005b60408051918252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b604080519115158252519081900360200190f35b60028c8c8c8c8c8c6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8a168486015260608401899052608084018890529351919450600160a060020a038a169360019360a0818101949293601f19840193928390039091019190866161da5a03f11561000257505060206040510351600160a060020a031614801561051b5750874311155b801561054057506000818152600160205260409020548b9061053d908461026a565b11155b80156105715750600160a060020a038c81166000908152602081815260408083203390941683529290522054829010155b80156105b457508a6105838a8461060a565b811561000257600160a060020a038c8116600090815260208181526040808320938c16835292905220549190049010155b151561062b57610002565b600160a060020a038d81166000908152602081815260408083203385168452909152808220939093559088168152205460035461066c9190670de0b6b3a7640000906106bc90869083035b6000828202610f8f8483148061028257508385838115610002570414610660565b600160a060020a038c811660009081526020818152604080832033909416835292905220546105bf90835b6000610f96838311155b801515610ab057610002565b600160a060020a038d81166000908152602081815260408083208b8516845290915280822093909355600254909116815220546003546106c89190670de0b6b3a7640000906106bc90869061060a565b8115610002570461026a565b600160a060020a038d8116600090815260208181526040808320600254851684528252808320949094558d83168252818152838220928a168252919091522054610717908c61076c8c8661060a565b600160a060020a038b81166000908152602081815260408083208b851684529091528082209390935533909116815220546004546107789190670de0b6b3a7640000908e906107cd906107e09084038f61060a565b81156100025704610656565b600160a060020a038b8116600090815260208181526040808320338516845290915280822093909355600254909116815220546004546107e69190670de0b6b3a7640000908e906107cd906107e0908f61060a565b811561000257048115610002570461026a565b8761060a565b600160a060020a038b81166000908152602081815260408083206002549094168352928152828220939093558381526001909252902054610827908361026a565b6000828152600160205260409020557f6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d8c838c8e8d830281156100025760408051600160a060020a03968716815260208101959095529285168484015204606083015289831660808301523390921660a082015290519081900360c00190a1505050505050505050505050565b60028a8a8a8a8a8a6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8916848601526060840188905260808401879052935191945033600160a060020a03169360019360a0818101949293601f19840193928390039091019190866161da5a03f115610002575050604051601f190151600160a060020a0316146109a257610002565b6000818152600160209081526040918290208b90558151600160a060020a038d811682529181018c90528a821681840152606081018a90526080810189905260a081018890523390911660c082015260ff861660e08201526101008101859052610120810184905290517f1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0918190036101400190a150505050505050505050565b33600160a060020a03166000818152600080516020610f9f8339815191526020908152604080832054815193845291830193909352818301849052606082015290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b50565b33600160a060020a03166000908152600080516020610f9f833981519152602052604090205481901015610ae657610002565b33600160a060020a03166000908152600080516020610f9f8339815191526020526040902054610b169082610656565b33600160a060020a03166000818152600080516020610f9f8339815191526020526040808220939093559151909183919081818185876185025a03f1925050501515610a4357610002565b81600160a060020a03166323b872dd3330846040518460e060020a0281526004018084600160a060020a0316815260200183600160a060020a031681526020018281526020019350505050602060405180830381600087803b15610002576161da5a03f1156100025750506040515115159050610bdd57610002565b600160a060020a038281166000908152602081815260408083203390941683529290522054610c0c908261026a565b600160a060020a03838116600081815260208181526040808320339095168084529482529182902085905581519283528201929092528082018490526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15050565b5060015b9c9b505050505050505050505050565b10155b1515610c7f57506000610c83565b60408051600160a060020a038b81168252602082018b905289811682840152606082018990526080820188905260a08201879052331660c082015260ff851660e08201526101008101849052610120810183905290517f91daf02b6d1454acd74c097a67e389a9d9371da3ff51366947022dc36748ce4d918190036101400190a1505050505050505050565b600160a060020a03828116600090815260208181526040808320339094168352929052205481901015610d6257610002565b600160a060020a038281166000908152602081815260408083203390941683529290522054610d919082610656565b600160a060020a03838116600081815260208181526040808320339095168084529482528083209590955584517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810194909452602484018690529351919363a9059cbb936044818101949293918390030190829087803b15610002576161da5a03f1156100025750506040515115159050610e3057610002565b600160a060020a03828116600081815260208181526040808320339095168084529482529182902054825193845290830193909352818101849052606082019290925290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15050565b33600160a060020a03166000818152600080516020610f9f8339815191526020908152604080832085905580519283529082019290925234818301526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a1565b8093505b5050509a9950505050505050505050565b600083815260016020526040902054610f43908e90610656565b600160a060020a038d8116600090815260208181526040808320938d16835292905220549092508b90610f76908f61060a565b81156100025704905080821015610f1457819350610f18565b9392505050565b508082036102b556ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } } - ], - "Metropolis" : [ - { - "hash" : "0xae4a5e0ae12bf4a52102c2c5b87ebf80e02cbd61418c18ab8e8a9ed3ddc14092", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +62,14 @@ "0x606060405260405160608061100383395060c06040525160805160a05160028054600160a060020a031916909317909255600355600455610fbf806100446000396000f3606060405236156100a35760e060020a60003504630a19b14a81146100ab578063278b8c0e146100e25780632e1a7d4d14610111578063338b5dea14610125578063577863941461015057806365e17c9d146101595780636c86888b1461016b57806393f0bb51146101da5780639e281a9814610207578063c281309e14610232578063d0e30db01461023b578063f7888aec14610287578063fb6e155f146102bb575b6103e6610002565b6103e660043560243560443560643560843560a43560c43560e4356101043561012435610144356000600034111561042b57610002565b6103e660043560243560443560643560843560a43560c43560e43561010435600060003411156108b457610002565b6103e66004356000341115610ab357610002565b6103e66004356024356000341180610146575081600160a060020a03166000145b15610b6157610002565b6103e860035481565b6103fa600254600160a060020a031681565b61041760043560243560443560643560843560a43560c43560e43561010435610124356101443561016435600160a060020a038c8116600090815260208181526040808320938516835292905290812054839010801590610c96575082610c938e8e8e8e8e8e8e8e8e8e6102df565b6103e660043560243560443560643560843560a43560c43560e435610104356000341115610ca457610002565b6103e66004356024356000341180610228575081600160a060020a03166000145b15610d3057610002565b6103e860045481565b6103e633600160a060020a03166000908152600080516020610f9f8339815191526020526040902054610ea390345b6000828201610f8f8482108015906102825750838210155b610660565b6103e8600435602435600160a060020a03828116600090815260208181526040808320938516835292905220545b92915050565b6103e860043560243560443560643560843560a43560c43560e43561010435610124355b600060006000600060028e8e8e8e8e8e6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8c1684860152606084018b9052608084018a90529351919650600160a060020a038c169360019360a0808201949293601f19840193928390039091019190866161da5a03f11561000257505060206040510351600160a060020a03161480156103d75750894311155b1515610f295760009350610f18565b005b60408051918252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b604080519115158252519081900360200190f35b60028c8c8c8c8c8c6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8a168486015260608401899052608084018890529351919450600160a060020a038a169360019360a0818101949293601f19840193928390039091019190866161da5a03f11561000257505060206040510351600160a060020a031614801561051b5750874311155b801561054057506000818152600160205260409020548b9061053d908461026a565b11155b80156105715750600160a060020a038c81166000908152602081815260408083203390941683529290522054829010155b80156105b457508a6105838a8461060a565b811561000257600160a060020a038c8116600090815260208181526040808320938c16835292905220549190049010155b151561062b57610002565b600160a060020a038d81166000908152602081815260408083203385168452909152808220939093559088168152205460035461066c9190670de0b6b3a7640000906106bc90869083035b6000828202610f8f8483148061028257508385838115610002570414610660565b600160a060020a038c811660009081526020818152604080832033909416835292905220546105bf90835b6000610f96838311155b801515610ab057610002565b600160a060020a038d81166000908152602081815260408083208b8516845290915280822093909355600254909116815220546003546106c89190670de0b6b3a7640000906106bc90869061060a565b8115610002570461026a565b600160a060020a038d8116600090815260208181526040808320600254851684528252808320949094558d83168252818152838220928a168252919091522054610717908c61076c8c8661060a565b600160a060020a038b81166000908152602081815260408083208b851684529091528082209390935533909116815220546004546107789190670de0b6b3a7640000908e906107cd906107e09084038f61060a565b81156100025704610656565b600160a060020a038b8116600090815260208181526040808320338516845290915280822093909355600254909116815220546004546107e69190670de0b6b3a7640000908e906107cd906107e0908f61060a565b811561000257048115610002570461026a565b8761060a565b600160a060020a038b81166000908152602081815260408083206002549094168352928152828220939093558381526001909252902054610827908361026a565b6000828152600160205260409020557f6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d8c838c8e8d830281156100025760408051600160a060020a03968716815260208101959095529285168484015204606083015289831660808301523390921660a082015290519081900360c00190a1505050505050505050505050565b60028a8a8a8a8a8a6040518087600160a060020a0316606060020a02815260140186815260200185600160a060020a0316606060020a02815260140184815260200183815260200182815260200196505050505050506020604051808303816000866161da5a03f1156100025750506040805180516000828152602083810180865283905260ff8916848601526060840188905260808401879052935191945033600160a060020a03169360019360a0818101949293601f19840193928390039091019190866161da5a03f115610002575050604051601f190151600160a060020a0316146109a257610002565b6000818152600160209081526040918290208b90558151600160a060020a038d811682529181018c90528a821681840152606081018a90526080810189905260a081018890523390911660c082015260ff861660e08201526101008101859052610120810184905290517f1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0918190036101400190a150505050505050505050565b33600160a060020a03166000818152600080516020610f9f8339815191526020908152604080832054815193845291830193909352818301849052606082015290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b50565b33600160a060020a03166000908152600080516020610f9f833981519152602052604090205481901015610ae657610002565b33600160a060020a03166000908152600080516020610f9f8339815191526020526040902054610b169082610656565b33600160a060020a03166000818152600080516020610f9f8339815191526020526040808220939093559151909183919081818185876185025a03f1925050501515610a4357610002565b81600160a060020a03166323b872dd3330846040518460e060020a0281526004018084600160a060020a0316815260200183600160a060020a031681526020018281526020019350505050602060405180830381600087803b15610002576161da5a03f1156100025750506040515115159050610bdd57610002565b600160a060020a038281166000908152602081815260408083203390941683529290522054610c0c908261026a565b600160a060020a03838116600081815260208181526040808320339095168084529482529182902085905581519283528201929092528082018490526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15050565b5060015b9c9b505050505050505050505050565b10155b1515610c7f57506000610c83565b60408051600160a060020a038b81168252602082018b905289811682840152606082018990526080820188905260a08201879052331660c082015260ff851660e08201526101008101849052610120810183905290517f91daf02b6d1454acd74c097a67e389a9d9371da3ff51366947022dc36748ce4d918190036101400190a1505050505050505050565b600160a060020a03828116600090815260208181526040808320339094168352929052205481901015610d6257610002565b600160a060020a038281166000908152602081815260408083203390941683529290522054610d919082610656565b600160a060020a03838116600081815260208181526040808320339095168084529482528083209590955584517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810194909452602484018690529351919363a9059cbb936044818101949293918390030190829087803b15610002576161da5a03f1156100025750506040515115159050610e3057610002565b600160a060020a03828116600081815260208181526040808320339095168084529482529182902054825193845290830193909352818101849052606082019290925290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15050565b33600160a060020a03166000818152600080516020610f9f8339815191526020908152604080832085905580519283529082019290925234818301526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a1565b8093505b5050509a9950505050505050505050565b600083815260016020526040902054610f43908e90610656565b600160a060020a038d8116600090815260208181526040808320938d16835292905220549092508b90610f76908f61060a565b81156100025704905080821015610f1457819350610f18565b9392505050565b508082036102b556ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb50000000000000000000000001ed014aec47fae44c9e55bac7662c0b78ae617980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aa87bee538000" ], "gasLimit" : [ - "0x4c4b40" + "5000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stSpecialTest/failed_tx_xcf416c53.json b/GeneralStateTests/stSpecialTest/failed_tx_xcf416c53.json index 0257f3d6b..87b281895 100644 --- a/GeneralStateTests/stSpecialTest/failed_tx_xcf416c53.json +++ b/GeneralStateTests/stSpecialTest/failed_tx_xcf416c53.json @@ -2,88 +2,59 @@ "failed_tx_xcf416c53" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSpecialTest/failed_tx_xcf416c53Filler.json" }, "env" : { - "currentCoinbase" : "0x68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x1e8480", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "2000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb40c387efa7f872d7230dd5afe903c671154c575d4d290019bc972b1a5383227", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "0000000000000000000000000000000000000003" : { + "shouldnotexist" : "1" + }, + "68795c4aa09d6f4ed3e5deddf8c2ad3049a601da" : { + "balance" : "0x089979" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02" } } - ], - "EIP158" : [ - { - "hash" : "0x66a9925175bce994449c63c1181ca9f1bb7d03530e8cb521ae11280b4550d092", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb40c387efa7f872d7230dd5afe903c671154c575d4d290019bc972b1a5383227", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb40c387efa7f872d7230dd5afe903c671154c575d4d290019bc972b1a5383227", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x66a9925175bce994449c63c1181ca9f1bb7d03530e8cb521ae11280b4550d092", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x0e879ae28cdddeb31a405a9db354505a5560b0bd" : { - "balance" : "0x00", + "0e879AE28cdDdEB31A405A9dB354505a5560b0Bd" : { + "balance" : "0", "code" : "0x7c0100000000000000000000000000000000000000000000000000000000600035046397dd3054811415610065576004356040526024356060526040516060515b808212156100625760006000600060006000866000f150600182019150610040565b50505b50", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } @@ -93,14 +64,14 @@ "0x97dd3054000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bc" ], "gasLimit" : [ - "0x099cf0" + "630000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0e879AE28cdDdEB31A405A9dB354505a5560b0Bd", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0e879AE28cdDdEB31A405A9dB354505a5560b0Bd", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stSpecialTest/gasPrice0.json b/GeneralStateTests/stSpecialTest/gasPrice0.json index aaa3d0f31..bdfa78fda 100644 --- a/GeneralStateTests/stSpecialTest/gasPrice0.json +++ b/GeneralStateTests/stSpecialTest/gasPrice0.json @@ -2,81 +2,48 @@ "gasPrice0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSpecialTest/gasPrice0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4509680f4d6552e9a010b76297aa20291eb22b08d9e12c5bca49dbe3b5be2338", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x02" + } } } - ], - "EIP158" : [ - { - "hash" : "0x676ebf8512ef329b64106651e27d1432e328b24f84914b4f691533eaae9e6bd7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4509680f4d6552e9a010b76297aa20291eb22b08d9e12c5bca49dbe3b5be2338", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4509680f4d6552e9a010b76297aa20291eb22b08d9e12c5bca49dbe3b5be2338", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x676ebf8512ef329b64106651e27d1432e328b24f84914b4f691533eaae9e6bd7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -88,12 +55,12 @@ "gasLimit" : [ "0xa034" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSpecialTest/makeMoney.json b/GeneralStateTests/stSpecialTest/makeMoney.json index 2a2d62ef6..2e32bc10f 100644 --- a/GeneralStateTests/stSpecialTest/makeMoney.json +++ b/GeneralStateTests/stSpecialTest/makeMoney.json @@ -2,88 +2,82 @@ "makeMoney" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSpecialTest/makeMoneyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa9c1df14913efcb44c8d214bae45f7c164073e66023871276e7254f502573080", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "771500" + }, + "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000" } } - ], - "EIP158" : [ - { - "hash" : "0xa9c1df14913efcb44c8d214bae45f7c164073e66023871276e7254f502573080", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdeecad9edcf67263e8e8f56c4db89a1620a964da88dac1734461ebc1126682cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdeecad9edcf67263e8e8f56c4db89a1620a964da88dac1734461ebc1126682cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa9c1df14913efcb44c8d214bae45f7c164073e66023871276e7254f502573080", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "999999999999999987" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "931546" + }, + "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000023" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7b601080600c6000396000f200600035541560095700602035600035556000526000600060006000601773aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecf1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f20060003554156009570060203560003555) (CALL 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec 0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "0x600160015532600255", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +87,14 @@ "" ], "gasLimit" : [ - "0x037c94" + "228500" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stSpecialTest/sha3_deja.json b/GeneralStateTests/stSpecialTest/sha3_deja.json index be1da9ab3..df941676a 100644 --- a/GeneralStateTests/stSpecialTest/sha3_deja.json +++ b/GeneralStateTests/stSpecialTest/sha3_deja.json @@ -2,81 +2,46 @@ "sha3_deja" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSpecialTest/sha3_dejaFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1eb8a3f2d301b0446b95f139e15de683840c1186c564d8e1abb950a26f041523", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999900000" } } - ], - "EIP158" : [ - { - "hash" : "0x0bc2ff4ebf6438bc4280ff67c468803703c387fa89a2e4941a041672c2b1d507", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1eb8a3f2d301b0446b95f139e15de683840c1186c564d8e1abb950a26f041523", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1eb8a3f2d301b0446b95f139e15de683840c1186c564d8e1abb950a26f041523", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0bc2ff4ebf6438bc4280ff67c468803703c387fa89a2e4941a041672c2b1d507", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6042601f53600064ffffffffff2080", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -86,14 +51,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSpecialTest/txCost-sec73.json b/GeneralStateTests/stSpecialTest/txCost-sec73.json index 32079b49a..791ce5392 100644 --- a/GeneralStateTests/stSpecialTest/txCost-sec73.json +++ b/GeneralStateTests/stSpecialTest/txCost-sec73.json @@ -2,81 +2,47 @@ "txCost-sec73" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSpecialTest/txCost-sec73Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb73f1ed022d056909f34484fa432461e4702c1db53c2b8f532a59518620d30ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xb73f1ed022d056909f34484fa432461e4702c1db53c2b8f532a59518620d30ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb73f1ed022d056909f34484fa432461e4702c1db53c2b8f532a59518620d30ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb73f1ed022d056909f34484fa432461e4702c1db53c2b8f532a59518620d30ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb73f1ed022d056909f34484fa432461e4702c1db53c2b8f532a59518620d30ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -86,14 +52,14 @@ "0x00" ], "gasLimit" : [ - "0x5208" + "21000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSpecialTest/tx_e1c174e2.json b/GeneralStateTests/stSpecialTest/tx_e1c174e2.json index 27e8c3bb1..c2b5bf474 100644 --- a/GeneralStateTests/stSpecialTest/tx_e1c174e2.json +++ b/GeneralStateTests/stSpecialTest/tx_e1c174e2.json @@ -2,82 +2,97 @@ "tx_e1c174e2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSpecialTest/tx_e1c174e2Filler.json" }, "env" : { - "currentCoinbase" : "0x68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x2fefd8", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3141592", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xef25be43bc2e668d61fe245c2c7695668c8bb5c3d321ecdd680c28151be8400d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0dc02922f33e45537411b9f92a1dcc9750ba9932" : { + "storage" : { + "0x160000000000000000000000000000000000000000" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0d833611cb38cb80", + "nonce" : "0x19" } } - ], - "EIP158" : [ - { - "hash" : "0xb0d7510fe1d954482f89f01207879978500e963164659976b31477f90d707844", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x941c8ac149ed268eb2e05084c435e5c0338cd382ad8a0d2583904bd8c2f8a6b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x941c8ac149ed268eb2e05084c435e5c0338cd382ad8a0d2583904bd8c2f8a6b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "0dc02922f33e45537411b9f92a1dcc9750ba9932" : { + "storage" : { + "0x160000000000000000000000000000000000000000" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "997296921302900764", + "nonce" : "0x19" } } - ], - "Metropolis" : [ - { - "hash" : "0xb0d7510fe1d954482f89f01207879978500e963164659976b31477f90d707844", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "0dc02922f33e45537411b9f92a1dcc9750ba9932" : { + "storage" : { + "0x160000000000000000000000000000000000000000" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "998612851578200764", + "nonce" : "0x19" } } - ] - }, + } + ], "pre" : { - "0x0dc02922f33e45537411b9f92a1dcc9750ba9932" : { - "balance" : "0x00", + "0dc02922f33e45537411b9f92a1dcc9750ba9932" : { + "balance" : "0", "code" : "0x600061155f537c0100000000000000000000000000000000000000000000000000000000600035046355f10aaf8114156100655760043560405260003413156100525760006000600060003433611388f1505b600c604051026007015460605260206060f35b6369e0998b81141561053f5760043560805260243560a052604435604052600060805113151561009a57600260c052602060c0f35b600060a0511315156100b157600360e052602060e0f35b60006040511315156100ca576004610100526020610100f35b670de0b6b3a7640000600c6040510260030154600a0a600c60405102600401540260a05160805102050261012052600c604051026005015434121561012f5760003413156101225760006000600060003433611388f1505b600b610140526020610140f35b610120513412156101605760003413156101535760006000600060003433611388f1505b6014610160526020610160f35b6101205134131561018057600060006000600061012051340333611388f1505b60e0599059016000905260068152600160208201526040516040820152608051606082015260a05160808201523360a08201524360c082015260208101905061018052610180516020602082035102812090506101c05260086101c05102740e0000000000000000000000000000000000000000015415156104be576101c05160086101c05102740e00000000000000000000000000000000000000000155600160086101c05102740e0000000000000000000000000000000000000001015560405160086101c05102740e0000000000000000000000000000000000000002015560805160086101c05102740e0000000000000000000000000000000000000003015560a05160086101c05102740e000000000000000000000000000000000000000401553360086101c05102740e000000000000000000000000000000000000000501554360086101c05102740e0000000000000000000000000000000000000006015560086101c05102740e00000000000000000000000000000000000000000160086101c05102740e00000000000000000000000000000000000000070155600c60405102600b0154610200526101c05160a060a05990590160009052600081526040518160200152600c81604001526102005181606001526001816080015280905020556102005160a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020556101c05160a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526000816080015280905020556101c051600c60405102600b01556001600c60405102600a015401600c60405102600a01556002600114156104b95760805160806080599059016000905260048152338160200152604051816040015260008160600152809050205403608060805990590160009052600481523381602001526040518160400152600081606001528090502055608051608060805990590160009052600481523381602001526040518160400152600181606001528090502054016080608059905901600090526004815233816020015260405181604001526001816060015280905020555b6104cb565b6015610300526020610300f35b601c60c05990590160009052013381526001602082015260a051604082015260805160608201526101c05160808201526040517f9463d1cc4aa2db0dc624c996b1846f028d43c48cfc8b9f427f13336e4a73226460a083a2506101c051610340526020610340f36000610360526020610360f35b630909f073811415610a0c5760043560805260243560a0526044356040526000608051131515610576576002610380526020610380f35b600060a05113151561058f5760036103a05260206103a0f35b60006040511315156105a85760046103c05260206103c0f35b670de0b6b3a7640000600c6040510260030154600a0a600c60405102600401540260a05160805102050261012052600c60405102600501546101205112156106105760003413156106035760006000600060003433611388f1505b600b6103e05260206103e0f35b60806080599059016000905260048152338160200152604051816040015260008160600152809050205461040052608051610400511215156109ff5760e0599059016000905260068152600260208201526040516040820152608051606082015260a05160808201523360a08201524360c082015260208101905061018052610180516020602082035102812090506101c05260086101c05102740e00000000000000000000000000000000000000000154151561098a576101c05160086101c05102740e00000000000000000000000000000000000000000155600260086101c05102740e0000000000000000000000000000000000000001015560405160086101c05102740e0000000000000000000000000000000000000002015560805160086101c05102740e0000000000000000000000000000000000000003015560a05160086101c05102740e000000000000000000000000000000000000000401553360086101c05102740e000000000000000000000000000000000000000501554360086101c05102740e0000000000000000000000000000000000000006015560086101c05102740e00000000000000000000000000000000000000000160086101c05102740e00000000000000000000000000000000000000070155600c60405102600b0154610200526101c05160a060a05990590160009052600081526040518160200152600c81604001526102005181606001526001816080015280905020556102005160a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020556101c05160a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526000816080015280905020556101c051600c60405102600b01556001600c60405102600a015401600c60405102600a01556002600214156109855760805160806080599059016000905260048152338160200152604051816040015260008160600152809050205403608060805990590160009052600481523381602001526040518160400152600081606001528090502055608051608060805990590160009052600481523381602001526040518160400152600181606001528090502054016080608059905901600090526004815233816020015260405181604001526001816060015280905020555b610997565b6015610560526020610560f35b601c60c05990590160009052013381526002602082015260a051604082015260805160608201526101c05160808201526040517f9463d1cc4aa2db0dc624c996b1846f028d43c48cfc8b9f427f13336e4a73226460a083a2506101c051610580526020610580f35b60006105a05260206105a0f35b639998bd008114156117335736599059016000905236600482376004356105e0526024356020820101610600525034610620526000610640525b602061060051035161064051121561170a57610640516020026106005101516101c05260086101c05102740e0000000000000000000000000000000000000006015443131515610a9d576016610660526020610660f35b60086101c05102740e00000000000000000000000000000000000000020154604052600c604051026002015461068052600c60405102600301546106a052600c60405102600401546106c052600c60405102600501546106e05260086101c05102740e000000000000000000000000000000000000000101546107005260086101c05102740e0000000000000000000000000000000000000003015460805260086101c05102740e0000000000000000000000000000000000000004015460a05260086101c05102740e0000000000000000000000000000000000000005015461072052600161070051141561110e576080608059905901600090526004815233816020015260405181604001526000816060015280905020546104005260006104005113156110fc57608051610400516105e05180821215610be05781610be2565b805b9050905080821215610bf45781610bf6565b805b90509050610760526106a051600a0a6106c05102670de0b6b3a764000060a05161076051020205610120526106e051610120511215610c5b576000610620511315610c4e5760006000600060006106205133611388f1505b600c610800526020610800f35b608051610760511215610cb0576107605160086101c05102740e000000000000000000000000000000000000000301540360086101c05102740e00000000000000000000000000000000000000030155610fd4565b600060086101c05102740e00000000000000000000000000000000000000000155600060086101c05102740e00000000000000000000000000000000000000010155600060086101c05102740e00000000000000000000000000000000000000020155600060086101c05102740e00000000000000000000000000000000000000030155600060086101c05102740e00000000000000000000000000000000000000040155600060086101c05102740e00000000000000000000000000000000000000050155600060086101c05102740e00000000000000000000000000000000000000060155600060086101c05102740e0000000000000000000000000000000000000007015560a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020546108205260a060a05990590160009052600081526040518160200152600c81604001526101c0518160600152600181608001528090502054610860526108205115610e3a5761086051610e3d565b60005b15610eb7576108605160a060a05990590160009052600081526040518160200152600c81604001526108205181606001526001816080015280905020556108205160a060a05990590160009052600081526040518160200152600c8160400152610860518160600152600281608001528090502055610f06565b6108205115610f055761082051600c60405102600b0155600060a060a05990590160009052600081526040518160200152600c81604001526108205181606001526001816080015280905020555b5b6108605115610f4657600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526001816080015280905020555b6108205115610f8657600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020555b600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526000816080015280905020556001600c60405102600a015403600c60405102600a01555b6107605160806080599059016000905260048152338160200152604051816040015260008160600152809050205403608060805990590160009052600481523381602001526040518160400152600081606001528090502055610760516080608059905901600090526004815261072051816020015260405181604001526000816060015280905020540160806080599059016000905260048152610720518160200152604051816040015260008160600152809050205560006000600060006101205133611388f150601c60a05990590160009052016002815260a05160208201526107605160408201526101c051606082015261072051336040517f0f9fe89f83633cc2eca9b17e1f77422f037cb026eaca4e6a5337fa1595f50a81608085a450611109565b600a6109e05260206109e0f35b611680565b600261070051141561167f576000610620511315611671576106e0516106205112156111605760006106205113156111535760006000600060006106205133611388f1505b600c610a00526020610a00f35b6106a051600a0a6106c05102670de0b6b3a764000060a051608051020205610a205261062051610a205180821215611198578161119a565b805b9050905061012052610a205161012051121561121b57670de0b6b3a764000060a0516106a051600a0a6106c0510261012051020505610760526107605160086101c05102740e000000000000000000000000000000000000000301540360086101c05102740e00000000000000000000000000000000000000030155611546565b60805161076052600060086101c05102740e00000000000000000000000000000000000000000155600060086101c05102740e00000000000000000000000000000000000000010155600060086101c05102740e00000000000000000000000000000000000000020155600060086101c05102740e00000000000000000000000000000000000000030155600060086101c05102740e00000000000000000000000000000000000000040155600060086101c05102740e00000000000000000000000000000000000000050155600060086101c05102740e00000000000000000000000000000000000000060155600060086101c05102740e0000000000000000000000000000000000000007015560a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020546108205260a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526001816080015280905020546108605261082051156113ac57610860516113af565b60005b15611429576108605160a060a05990590160009052600081526040518160200152600c81604001526108205181606001526001816080015280905020556108205160a060a05990590160009052600081526040518160200152600c8160400152610860518160600152600281608001528090502055611478565b61082051156114775761082051600c60405102600b0155600060a060a05990590160009052600081526040518160200152600c81604001526108205181606001526001816080015280905020555b5b61086051156114b857600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526001816080015280905020555b61082051156114f857600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020555b600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526000816080015280905020556001600c60405102600a015403600c60405102600a01555b6107605160806080599059016000905260048152610720518160200152604051816040015260018160600152809050205403608060805990590160009052600481526107205181602001526040518160400152600181606001528090502055610760516080608059905901600090526004815233816020015260405181604001526000816060015280905020540160806080599059016000905260048152338160200152604051816040015260008160600152809050205560006000600060006101205161072051611388f150601c60a05990590160009052016001815260a05160208201526107605160408201526101c051606082015261072051336040517f0f9fe89f83633cc2eca9b17e1f77422f037cb026eaca4e6a5337fa1595f50a81608085a45061167e565b600a610c00526020610c00f35b5b5b60a051600c6040510260070155601c60a059905901600090520161070051815260a05160208201526107605160408201524260608201526040517f50944f09ce56f9f0e2cb67683c9b451049c39f60452b850b169148f3daa51ed6608083a250610760516105e051036105e052610120516106205103610620526001610640510161064052610a46565b61062051156117265760006000600060006106205133611388f1505b6001610c20526020610c20f35b6334a501c781141561185b57600435608052602435604052601c60845990590160009052016327f08b00601c82035233600482015230602482015260805160448201526020610c406064836000600c6040510260020154602d5a03f150610c405190501561184e57608060805990590160009052600481523381602001526040518160400152600081606001528090502054610400526080516104005101610c8052610c8051608060805990590160009052600481523381602001526040518160400152600081606001528090502055601c60405990590160009052016080518152336040517f301cd746dbb5e7f9ade2bcd9e8a849b968bfcc222de48d2086ba200184acc83d602084a350610c8051610cc0526020610cc0f35b6000610ce0526020610ce0f35b63e1ed3ad3811415611982576004356080526024356040526080608059905901600090526004815233816020015260405181604001526000816060015280905020546104005260805161040051121515611975576080516104005103608060805990590160009052600481523381602001526040518160400152600081606001528090502055601c60645990590160009052016386744558601c82035233600482015260805160248201526020610d606044836000600c6040510260020154602d5a03f150610d60519050610d4052601c60405990590160009052016080518152336040517ffa4460934f383b326d79dcd4f1e59a17ac8ee9a87312169933e7f68b85c1a8ce602084a350610d4051610d80526020610d80f35b6000610da0526020610da0f35b63327a22f1811415611f08576004356101c05260086101c05102740e000000000000000000000000000000000000000101546107005260086101c05102740e0000000000000000000000000000000000000003015460805260086101c05102740e0000000000000000000000000000000000000004015460a05260086101c05102740e000000000000000000000000000000000000000501546107205260086101c05102740e00000000000000000000000000000000000000020154604052600c604051026002015461068052600c60405102600301546106a052600c60405102600401546106c05261072051331415611efb57600060086101c05102740e00000000000000000000000000000000000000000155600060086101c05102740e00000000000000000000000000000000000000010155600060086101c05102740e00000000000000000000000000000000000000020155600060086101c05102740e00000000000000000000000000000000000000030155600060086101c05102740e00000000000000000000000000000000000000040155600060086101c05102740e00000000000000000000000000000000000000050155600060086101c05102740e00000000000000000000000000000000000000060155600060086101c05102740e0000000000000000000000000000000000000007015560a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020546108205260a060a05990590160009052600081526040518160200152600c81604001526101c0518160600152600181608001528090502054610860526108205115611c005761086051611c03565b60005b15611c7d576108605160a060a05990590160009052600081526040518160200152600c81604001526108205181606001526001816080015280905020556108205160a060a05990590160009052600081526040518160200152600c8160400152610860518160600152600281608001528090502055611ccc565b6108205115611ccb5761082051600c60405102600b0155600060a060a05990590160009052600081526040518160200152600c81604001526108205181606001526001816080015280905020555b5b6108605115611d0c57600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526001816080015280905020555b6108205115611d4c57600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020555b600060a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526000816080015280905020556001600c60405102600a015403600c60405102600a01556001610700511415611dde57670de0b6b3a76400006106a051600a0a6106c0510260a0516080510205026101205260006000600060006101205133611388f150611e9c565b6002610700511415611e9b5760805160806080599059016000905260048152338160200152604051816040015260018160600152809050205403608060805990590160009052600481523381602001526040518160400152600181606001528090502055608051608060805990590160009052600481523381602001526040518160400152600081606001528090502054016080608059905901600090526004815233816020015260405181604001526000816060015280905020555b5b601c60a059905901600090520133815260a051602082015260805160408201526101c05160608201526040517f0ac6333455d304288767a0f1039d666d16882d10b6ea83693d2556e4c8098001608083a2506001610f40526020610f40f35b6000610f60526020610f60f35b63d91e22f48114156122f057600435610f8052602435610680526044356106a0526064356106c0526084356106e05260a435610fa0526001741600000000000000000000000000000000000000005401610fc0526000610f8051131515611f7657601e610fe0526020610fe0f35b610f8051740d0000000000000000000000000000000000000000015415611fa457601f611000526020611000f35b600061068051131515611fbe576020611020526020611020f35b6000610fa0511215611fd7576021611040526020611040f35b60006106a0511215611ff0576022611060526020611060f35b60006106c0511215612009576023611080526020611080f35b60006106e05112156120225760246110a05260206110a0f35b6000601c606459905901600090520163c32d01a1601c82035233600482015230602482015260206110c0604483600061068051602d5a03f1506110c05190501415156120755760286110e05260206110e0f35b6001601c60645990590160009052016383b58638601c820352306004820152600060248201526020611100604483600061068051602d5a03f1506111005190501415156120c9576029611120526020611120f35b6000601c60445990590160009052016326690247601c8203523060048201526020611140602483600061068051602d5a03f15061114051905014151561211657602a611160526020611160f35b6000601c60645990590160009052016386744558601c820352336004820152600060248201526020611180604483600061068051602d5a03f15061118051905014151561216a57602b6111a05260206111a0f35b6000601c60845990590160009052016327f08b00601c8203523060048201523360248201526000604482015260206111c0606483600061068051602d5a03f1506111c05190501415156121c457602c6111e05260206111e0f35b610fc051600c610fc0510255610f8051600c610fc051026001015561068051600c610fc0510260020155610fa051600c610fc05102600601556106a051600c610fc05102600301556106c051600c610fc05102600401556106e051600c610fc05102600501556001600c610fc051026007015533600c610fc051026008015543600c610fc0510260090155610fc05161068051740c00000000000000000000000000000000000000000155610fc051610f8051740d00000000000000000000000000000000000000000155610fc0517416000000000000000000000000000000000000000055601c6040599059016000905201610fc05181527f1238fe6d44cf796960d61b74766b3a383110e472d849f5ca16ae50215bc05e58602082a1506001611200526020611200f35b634156966181141561232a576004356112205261122051740c00000000000000000000000000000000000000000154611240526020611240f35b63fcde9f7881141561236457600435610f8052610f8051740d00000000000000000000000000000000000000000154611260526020611260f35b636e5b4343811415612392577416000000000000000000000000000000000000000054611280526020611280f35b63fafa69c28114156124e657600435610fc0526101805990590160009052600b81526020810190506112a052600c610fc05102546112a05152600c610fc051026001015460206112a0510152600c610fc051026002015460406112a0510152600c610fc051026003015460606112a0510152600c610fc051026004015460806112a0510152600c610fc051026005015460a06112a0510152600c610fc051026007015460c06112a0510152600c610fc051026008015460e06112a0510152600c610fc05102600901546101006112a0510152600c610fc05102600a01546101206112a0510152600c610fc05102600601546101406112a05101526112a051156124b2576112a05160206040820352602060208203510260400160408203f3505b60405990590160009052600181526000602082015260208101905060206040820352602060208203510260400160408203f3505b639cfc153581141561262e57600435604052600c60405102600a015461134052600c60405102600b01546101c0526113405180602002602001599059016000905281815260208101905090506106005260006113a0525b611340516113a05112156125d45760a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526000816080015280905020546113a05160200261060051015260a060a05990590160009052600081526040518160200152600c81604001526101c05181606001526002816080015280905020546101c05260016113a051016113a05261253d565b61060051156125fa576106005160206040820352602060208203510260400160408203f3505b60405990590160009052600181526000602082015260208101905060206040820352602060208203510260400160408203f3505b630f7181908114156127e957600435610fc052610120599059016000905260088152602081019050610180526008610fc05102740e0000000000000000000000000000000000000000015461018051526008610fc05102740e0000000000000000000000000000000000000001015460206101805101526008610fc05102740e0000000000000000000000000000000000000002015460406101805101526008610fc05102740e0000000000000000000000000000000000000003015460606101805101526008610fc05102740e0000000000000000000000000000000000000004015460806101805101526008610fc05102740e0000000000000000000000000000000000000005015460a06101805101526008610fc05102740e0000000000000000000000000000000000000006015460c06101805101526008610fc05102740e0000000000000000000000000000000000000007015460e061018051015261018051156127b5576101805160206040820352602060208203510260400160408203f3505b60405990590160009052600181526000602082015260208101905060206040820352602060208203510260400160408203f3505b631c9aa4b6811415612893576004356112205260243560405260605990590160009052600281526080608059905901600090526004815261122051816020015260405181604001526000816060015280905020546020820152608060805990590160009052600481526112205181602001526040518160400152600181606001528090502054604082015260208101905060206040820352602060208203510260400160408203f3505b50", - "nonce" : "0x00", + "nonce" : "0", "storage" : { - "0x160000000000000000000000000000000000000000" : "0x01" + "0x00000000000000000000000d0000000000000000000000000000000000505347" : "0", + "0x0000000000000000000000160000000000000000000000000000000000000000" : "1" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x18", + "nonce" : "24", "storage" : { } } @@ -87,14 +102,14 @@ "0xd91e22f40000000000000000000000000000000000000000000000000000000000505347000000000000000000000000000000000000000000000000000000002450534700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x07a120" + "500000" ], "gasPrice" : "0x0c416c1984", - "nonce" : "0x18", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0dc02922f33e45537411b9f92a1dcc9750ba9932", + "nonce" : "24", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0dc02922f33e45537411b9f92a1dcc9750ba9932", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStackTests/shallowStack.json b/GeneralStateTests/stStackTests/shallowStack.json index 3c09ab026..ed501f893 100644 --- a/GeneralStateTests/stStackTests/shallowStack.json +++ b/GeneralStateTests/stStackTests/shallowStack.json @@ -2,3274 +2,39 @@ "shallowStack" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStackTests/shallowStackFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 31, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 32, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 33, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 34, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 35, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 36, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 37, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 38, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 39, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 40, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 41, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 42, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 43, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 44, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 45, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 46, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 47, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 48, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 49, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 50, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 51, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 52, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 53, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 54, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 55, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 56, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 57, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 58, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 59, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 60, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 61, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 62, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 63, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 64, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 65, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 66, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 67, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 68, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 69, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 70, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 71, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 72, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 73, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 74, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 75, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 76, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 77, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 78, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 79, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 80, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 31, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 32, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 33, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 34, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 35, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 36, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 37, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 38, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 39, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 40, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 41, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 42, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 43, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 44, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 45, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 46, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 47, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 48, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 49, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 50, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 51, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 52, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 53, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 54, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 55, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 56, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 57, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 58, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 59, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 60, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 61, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 62, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 63, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 64, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 65, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 66, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 67, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 68, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 69, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 70, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 71, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 72, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 73, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 74, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 75, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 76, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 77, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 78, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 79, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 80, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 31, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 32, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 33, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 34, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 35, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 36, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 37, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 38, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 39, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 40, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 41, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 42, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 43, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 44, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 45, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 46, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 47, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 48, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 49, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 50, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 51, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 52, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 53, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 54, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 55, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 56, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 57, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 58, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 59, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 60, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 61, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 62, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 63, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 64, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 65, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 66, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 67, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 68, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 69, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 70, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 71, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 72, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 73, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 74, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 75, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 76, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 77, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 78, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 79, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 80, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 31, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 32, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 33, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 34, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 35, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 36, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 37, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 38, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 39, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 40, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 41, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 42, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 43, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 44, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 45, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 46, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 47, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 48, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 49, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 50, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 51, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 52, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 53, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 54, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 55, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 56, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 57, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 58, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 59, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 60, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 61, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 62, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 63, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 64, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 65, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 66, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 67, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 68, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 69, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 70, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 71, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 72, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 73, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 74, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 75, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 76, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 77, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 78, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 79, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 80, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 31, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 32, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 33, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 34, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 35, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 36, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 37, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 38, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 39, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 40, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 41, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 42, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 43, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 44, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 45, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 46, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 47, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 48, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 49, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 50, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 51, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 52, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 53, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 54, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 55, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 56, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 57, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 58, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 59, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 60, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 61, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 62, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 63, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 64, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 65, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 66, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 67, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 68, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 69, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 70, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 71, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 72, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 73, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 74, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 75, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 76, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 77, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 78, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 79, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1fc169ab5f7dd9892cd52edeac8f586e1969814920c4f33b34d2120b46a08aa", - "indexes" : { - "data" : 80, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x271000000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "42949672960000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -3359,14 +124,14 @@ "0xff600055" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStackTests/stackOverflow.json b/GeneralStateTests/stStackTests/stackOverflow.json index 9c9f68872..b62d190d9 100644 --- a/GeneralStateTests/stStackTests/stackOverflow.json +++ b/GeneralStateTests/stStackTests/stackOverflow.json @@ -2,681 +2,46 @@ "stackOverflow" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStackTests/stackOverflowFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a5100000000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4294967296000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a5100000000000", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4294967296000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -701,14 +66,14 @@ "0x60006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000" ], "gasLimit" : [ - "0x5b8d80" + "6000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStackTests/stackOverflowDUP.json b/GeneralStateTests/stStackTests/stackOverflowDUP.json index d701d6e61..389d9903d 100644 --- a/GeneralStateTests/stStackTests/stackOverflowDUP.json +++ b/GeneralStateTests/stStackTests/stackOverflowDUP.json @@ -2,681 +2,46 @@ "stackOverflowDUP" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStackTests/stackOverflowDUPFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a5100000000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4294967296000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a5100000000000", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4294967296000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -701,14 +66,14 @@ "0x60016002600360046005600660076008600960106011601260136014601560168f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f" ], "gasLimit" : [ - "0x5b8d80" + "6000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStackTests/stackOverflowM1.json b/GeneralStateTests/stStackTests/stackOverflowM1.json index 698282e66..3e1486786 100644 --- a/GeneralStateTests/stStackTests/stackOverflowM1.json +++ b/GeneralStateTests/stStackTests/stackOverflowM1.json @@ -2,681 +2,66 @@ "stackOverflowM1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStackTests/stackOverflowM1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0e91f6992d2a2d23ac2d47c66b2eb2089a275a289ad07a47f4a57aa7f73b06be", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf9df0dcf5161ca039992eae68ddf660001ae3119efae8a44d9cb1f18b0da093a", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffac54c53b4f17c1f1688bc1cd83455984ea7c62dd4e62e6f0d7bfec60004c77", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1eef0b14ab0d5a3423aa5be12ec01d04ba715dfa37b1fd248f9038e0765df64f", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1bd5dc9f5055704dacbd8823e367b5b1db361df9fbbc8c14e761b6a9ca70f3bc", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0e91f6992d2a2d23ac2d47c66b2eb2089a275a289ad07a47f4a57aa7f73b06be", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe459d77e670e5efcc1628d8d99fd637457e251ac54562a4f7b679a1700fa8919", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf9df0dcf5161ca039992eae68ddf660001ae3119efae8a44d9cb1f18b0da093a", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 1 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a5100000000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4294967296000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a5100000000000", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4294967296000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -701,14 +86,14 @@ "0x6000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000" ], "gasLimit" : [ - "0x5b8d80" + "6000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stStackTests/stackOverflowM1DUP.json b/GeneralStateTests/stStackTests/stackOverflowM1DUP.json index 27fca9d85..c4ee8c036 100644 --- a/GeneralStateTests/stStackTests/stackOverflowM1DUP.json +++ b/GeneralStateTests/stStackTests/stackOverflowM1DUP.json @@ -2,681 +2,66 @@ "stackOverflowM1DUP" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStackTests/stackOverflowM1DUPFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf50d544c3837d2479abd6433382e919cabd3850240c570adb3b70594125b1185", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb32ca7dc6f7544dfd510867b5baadb7710c90efc0b76aadd2339a8189fac9bcc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0f7e0fbf781147e1c0e869e1afd5afc7ac4bf7c86de3803cfb135908cc6d2b7e", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x776cf391fcc82d5cff1bc4f8a5be5cbff843a701165b399b1ebb8fe9f894fd99", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4ee11f2d50815659666b6c53246f594f66551c62a0df386caa0c36f4553de042", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0680e98dbd6441ca41cc16a9cfaf127b6207380047ee05ec346a94f9221ee025", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc543dcf23d25e4714e95a457c5c5194fc6d6ea0c2c16a44e1db87e2f8db64e5c", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1056a1e74dba79d626695fe5ac611cc85a8e05ca1d74e7d957e2d7bfbe0622ee", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4820d082d09429e075a295dec187c3c5709c8a88eb0a870d71ef2a18e998325", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc364e245fb623ea7332fbe979dd6493a891c4302ee56eafe9039c0a3c72ffa26", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa5173c5722dad7490b4ba68f0a163cac7e9fed372de223b554340a2fad1d87bf", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x341f1d39861ddf01216c3cb3c1ed7acb9a2f16f523c3e4bdae702625f65002f5", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe85096fdee212f2d60b8d969c1a4ee2aae9a0e148c6cfe8954a4229a871b56c9", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4434bb32d1f614c4430e1227274baa6968fef57c5f34f2adc45e75299fafb250", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb52be7c8ac88a0d8e02d8c848ef9571fcb5a5494de0654afbac7114cb07a8ea2", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf298e58ad0b783a2f9b6fde92d626005a767210856adb39d3eef2570b96e7097", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6a2b1fce8d6f7cc86fd3cb28dd1d70f4b3218684db651c10df20ad89a6db8187", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x50c49177df4a6826e582cf54f85cb42bfa62efab22ae99d3bce7c37c77825270", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2f49836573b4bf385930c3ef17478b6709c7ed712f950f7fdaf2cac6ad02ee7b", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4dfeddb923a4c1a844cfb37e1be7db105b6c624fae60bb85b8e197d3a215c180", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5376fd136b98ee7b42b47c24db51c177625d5bd1859796b985b3141eb9e8099f", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0b80ab11ad5da5e789c464565d5ebf7879221265a7aeead6921f63df59dc27f2", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x92ea0d7fb847dd7a084273eb26120559c77b1da506769bec6e9e323c594cf458", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8a1cd80584c67d1c039dac6e19790e7eb07dc0876e5b47fad1d5386247f6ca4d", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa394265a8e2d722986bd36e7eb337ef9c1b4810e82fa436e519a7420075080f9", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xeac2b4c212b8348dc7236c12611be9c7172168946b17f9dc3e64a448a2c166ad", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf679fa8443129f0757cce3d0b710301cdc285fe8dce9b02c3c17bc0080f37b37", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1d108141df73a12a50b06e7e2f09f2715a02e2465117cf340c5b66d4103946b0", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e00f29606f2a7457ea0a837ba3e26786610cc0b22210f37e443e1db77503430", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3486d0d404fa8c3b6da05ddb4cdef0d234ab023bc2b5a900a31ec86d39238625", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbaa263aa9da83b28be271fb4b63f53158eff9fefbf9e36454477dfd81c485145", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf5cfc78a7ced012a553ed98d5e92e43ef626b138d30976632c908f740f3f00be", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcd53d4cc55284575d5d66d82b8b9415969ab60e6008a9345e5670ab559ac3005", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb047decda42639289e32b469f2b341070d5ef0ff966bf18e2cc95dae83150f01", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x61ba293aca152679699d42b8fdbed97140b2f6f92f6397130788f9d034d629f7", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xff32c4cc4a03ef354ae4a414b976a1add8f24410b1c504a7373e4d036d1b5515", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e6ca4ff1fdae68b8de35ebfa2100325d8eb1f67276a6a9ba17ae0a99903d1e8", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf69dc746028591d10f105436d9a4ce370652b20edf15b1b4f744cf8ce332a7fe", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xff09bfd23b77a3d5ee3983c398f942b643e1e8a997dd508d25a0133d3cdd1587", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1a0a4869b200065798adf3b1cc3438a1a903f56dc7a0e8cb8c864aaf546db1a9", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf615edfaaa581027897d73c68b53e9233d0c0aedbb55f72a66cb957fd1ebc834", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x05160390ee5a7f30b4cc22613639f252a786b09830f8186919a4a94e1f9df143", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xad22503c2fe77ea3c92468f6d60314d8067d5c419d6480c97b9fd966be4a48d2", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe858dbce385f469b74158110e93847f2612621645b22cc96fa17afea6c5c1e9a", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1837950c36299972aa2e8e37be50a3a1dc375af98cdc35de0bbf5698f822f53e", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x360828e9c7f7f0b36b06f0e53a834992d6231d55a5ab2347045d6d6b1696180b", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7ad3fa664857532c94498abbac634c7245796e5b3c1ea74e4c3ec34e77c282cd", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x03f807fc2cd205f3979007685125d7581851370f2468148ff89a733549de1b2e", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf50d544c3837d2479abd6433382e919cabd3850240c570adb3b70594125b1185", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb32ca7dc6f7544dfd510867b5baadb7710c90efc0b76aadd2339a8189fac9bcc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0f7e0fbf781147e1c0e869e1afd5afc7ac4bf7c86de3803cfb135908cc6d2b7e", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x776cf391fcc82d5cff1bc4f8a5be5cbff843a701165b399b1ebb8fe9f894fd99", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4ee11f2d50815659666b6c53246f594f66551c62a0df386caa0c36f4553de042", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0680e98dbd6441ca41cc16a9cfaf127b6207380047ee05ec346a94f9221ee025", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc543dcf23d25e4714e95a457c5c5194fc6d6ea0c2c16a44e1db87e2f8db64e5c", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1056a1e74dba79d626695fe5ac611cc85a8e05ca1d74e7d957e2d7bfbe0622ee", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4820d082d09429e075a295dec187c3c5709c8a88eb0a870d71ef2a18e998325", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc364e245fb623ea7332fbe979dd6493a891c4302ee56eafe9039c0a3c72ffa26", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa5173c5722dad7490b4ba68f0a163cac7e9fed372de223b554340a2fad1d87bf", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x341f1d39861ddf01216c3cb3c1ed7acb9a2f16f523c3e4bdae702625f65002f5", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe85096fdee212f2d60b8d969c1a4ee2aae9a0e148c6cfe8954a4229a871b56c9", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4434bb32d1f614c4430e1227274baa6968fef57c5f34f2adc45e75299fafb250", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb52be7c8ac88a0d8e02d8c848ef9571fcb5a5494de0654afbac7114cb07a8ea2", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf298e58ad0b783a2f9b6fde92d626005a767210856adb39d3eef2570b96e7097", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x6a2b1fce8d6f7cc86fd3cb28dd1d70f4b3218684db651c10df20ad89a6db8187", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x50c49177df4a6826e582cf54f85cb42bfa62efab22ae99d3bce7c37c77825270", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2f49836573b4bf385930c3ef17478b6709c7ed712f950f7fdaf2cac6ad02ee7b", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4dfeddb923a4c1a844cfb37e1be7db105b6c624fae60bb85b8e197d3a215c180", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5376fd136b98ee7b42b47c24db51c177625d5bd1859796b985b3141eb9e8099f", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0b80ab11ad5da5e789c464565d5ebf7879221265a7aeead6921f63df59dc27f2", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x92ea0d7fb847dd7a084273eb26120559c77b1da506769bec6e9e323c594cf458", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8a1cd80584c67d1c039dac6e19790e7eb07dc0876e5b47fad1d5386247f6ca4d", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa394265a8e2d722986bd36e7eb337ef9c1b4810e82fa436e519a7420075080f9", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xeac2b4c212b8348dc7236c12611be9c7172168946b17f9dc3e64a448a2c166ad", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf679fa8443129f0757cce3d0b710301cdc285fe8dce9b02c3c17bc0080f37b37", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1d108141df73a12a50b06e7e2f09f2715a02e2465117cf340c5b66d4103946b0", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e00f29606f2a7457ea0a837ba3e26786610cc0b22210f37e443e1db77503430", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3486d0d404fa8c3b6da05ddb4cdef0d234ab023bc2b5a900a31ec86d39238625", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbaa263aa9da83b28be271fb4b63f53158eff9fefbf9e36454477dfd81c485145", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf5cfc78a7ced012a553ed98d5e92e43ef626b138d30976632c908f740f3f00be", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 11 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a5100000000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4294967296000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a5100000000000", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4294967296000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -701,14 +86,14 @@ "0x60016002600360046005600660076008600960106011601260136014601560168f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f" ], "gasLimit" : [ - "0x5b8d80" + "6000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stStackTests/stackOverflowM1PUSH.json b/GeneralStateTests/stStackTests/stackOverflowM1PUSH.json index c145a204e..7f0e064eb 100644 --- a/GeneralStateTests/stStackTests/stackOverflowM1PUSH.json +++ b/GeneralStateTests/stStackTests/stackOverflowM1PUSH.json @@ -2,1281 +2,66 @@ "stackOverflowM1PUSH" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStackTests/stackOverflowM1PUSHFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbf1405df919ed7d514847a11ee8b95951b5f7a8b411df27d8b3b611b2e3a6fd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbdcdcf07de8b1036d075be0268ec2f6117b6677603ef0813d082a2fb5ad15c7e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd65bfea970605ead491689ef2c5906d60bbf535e0dca68d582d2dc24d640ef9d", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x715a02acbc04f7fe09351b2dc5ae0d4a27e36c10e91bf5303c7da24a8ed4d529", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb1115cb61504a1b65b7f737641fceb36f3da90adbf6b32badb673f68fc749cc", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc09bbbd6baf5f093ace63caa472c15d9492e53fb2b3143516d3ebe2fe20b9e52", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x645e11b8d71bf0ebd4cfc05a51bd90d8999bf115ea1bf70009316f17a176db00", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9be0e2e78c7294c478a48ebdd660fcfb341897cab0913618c1241d2932b61fb9", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd2b05a98f54cdc50aad09815c30e5813fe91ce77604d448386674081d2790c1e", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x108fbf9cb20159471af96a0941ab0fbec888bf9b9fee2d5fd22af95d1a42a33f", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcbb524333ead216bbd5c7f18a790eb2faf652eb90d23d9915c22f0b383cf22ea", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe41298d79e1052889d38b7dddc1dbee17484d08475f37d413c85c42fb191c913", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1aac4cbe74e83d359c851410eecc37cd0797f4470aa366f5e970382d1ae428f", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2c18dcdcbedf1a9828a6bed5bc160ad2b96d67562d7b1cdca2d63cacd912bd5e", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x584153ac0e3c3dfa1cbd6167f498b7367133ad70c8639f25675d96ed99ebb004", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x88edb1df1412003f5a9324a63851f67db1675f2b17c462f7882f3a86a03ebaf4", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x60ccecc75984daef8d67a45a3d6e4a231277dafdc6c24e023a6f6fdc98e446a2", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x58e1af36ab8e38412b37db6b823265c3c3f6c632bdd4b06966bd4ed15f7e9958", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x525b960811b6545f6ffa59fc0ea7d7a73bede82a32aa3b820e64fe20c7de0dde", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe5d9c8369ef3fa22cc2a6f18e1765b15d8160bbdf90765f74586bbd65c3ab279", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3461352964007b94ed71836d2a5c1f44f64104a26d7e2061f5291745be4f6b0f", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee3dea6f5f70c97a9b7fd2ec9cf70ea55a964de8bb04c94c22402be0b2ee72f7", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5a9c68cc285e162d1f6be2c3c11f9f596eb9b8c4553cf5e78891e36ba6105693", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6305f7a45b00c1f6df42d4c661ab02a6fe5dcfcbb4c9fb6b01501a3268b3a3e3", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x681d22ffbe91204513b89fd163d340884136bcc70ec033215ff2261cfeb58f5d", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x648bc9b0766e30e4e32c803cc3561b0f9bfd1d2125dee090c8b1fcae4309bc0e", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2b12d08939ae556b58f000fff27482bfa03931b11641138454bbb120446d4afe", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3abd3544b2d24b8a8cfae19154b815fed587c7b73cb9d2090cc11b3fa9737973", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3587f90e99f9cc771ae37629d52b1f445644f56447ed78f495c91a04fdb53fe9", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdba09b8526792fc05d21592acd03d8255aaf1288e89cb368850c8d3f160c4c67", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x13787302f3569c866fa165616e2cc042f269a2d207346647ca43d4d0c26968e5", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x23dde05f6f8db9d966f4444d7ed60a67edaa2f0cf719706b4bbd2f01b396dc97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd9ea2f9d61f3df9f9991a10f8e69197dca7be69d430208b7d4ad8417807171b0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe304fd4ea5a8fc2271f372b260adc36ce48dd3800222f8837c10e77729b7d2d2", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x69cd43963f23118b4ad6d96960c2c504840d7058773a451992df9a5fad1f7264", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe5cc0e7eb12b59a9836635ec2a4ec39b2a95f58469d4ee66d2e76e356c5f6cdf", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4330037d6f2082e11643d31f46be8d6b72465ccf8f589e67823158e3432be070", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x401275bc491763d1fbfbd9fcaee47f7ac3aac1f9207fb2d5cb114c9cb25286ed", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9e3f9e7c9656eee7699ee692a6c301a5d9bcc5148f61bd0297786e6bf600cee8", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x901aa1a59147292fd8253422a45c0e554fe87f39af409cf6979ce56e3d63b0dd", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6b9aba9ffcf809bbb9fa0c70affd5f6c46457a5c5cd77c30c4804d8bfd10692f", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x23966147ea3cca8997f235aaffe3b2b4e0cf6cff28cff7cefdb4bc67db157e2f", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1ce0ff63aac7caaf19dcad10d4fe88533cb384554723cd0864f0b4777ea32d96", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9dec73faa2fdcd98b3e9b9f4342f2ab4e79c759d803c8bee8b2d4df0f180189e", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2b8cdd925b650b6924200da8fc7b9c9e4580ae9974e7bce7f88c833b5245220e", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdabf1846d46073b9318ff9c7c1e0cbbc44e075dfdf42f944be041c21d8141a34", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3958aeefb61579f0ae737d5c07e6bcf7881288c8e1232bedd21dd8b2c15bbe64", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x449c2d11973c9a1e66e8d942fd5845b600c60dde5fb7a040df3840d838005bdb", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3ea28b8364ae6c3af6b2e4ee8f149f945474834b94b35ddf801a22c2e97e574d", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9da72a91d1660eb4592c0c26f6023a6e6899d2ec9d97016ed7a1fdbbcf008357", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xeb50c19207750e7898adbe172795061cd490c766e4393ffc8ea6c0c6c69300da", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd4d6042ad13766f70208fcc0961e8446e853790fe1eb5504cb3241dae91ee7cd", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x025689ba9cd9154b08c72803dd12f7bc5fb06b103ec75139508a574aa0be5a46", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb776176993392f8b1437bd92183c696210aee8ae2bfcf1889bc5a3441b55852e", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x197870ae1b3693d48ea477f961029ff3e570395a9211b68d873d15fb6ca1d796", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd83ffb7f1ad0cf6d1b0d4b26d83237ff099fd41a4eb4355ad9d610648271776d", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x98172dabd40334b238e30140c8f179a10c85b3c7958cddd79ffdbb9ef7a2187f", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4c6dd1f16747d49c3884be14a4911e98d91dfcfe65529d6c5aa581e40e5e9fb5", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xef12f66c725ebdd4fd3d9540d56c05965b92cd5626a9e9dc1585f0412060f2cf", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee0bb0accabecf0e71b0448549f25681241befe70a1e57f6f4d0e9fd48d22dd9", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x91f59d7b8547ce9f900c62f24304a84cdc36fd31f9ae3cdd8fc4dd55254767d0", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x505e5c5d7cbdea634138c97f7d3b64a6c12e50b71d9f446ea1c0eb59a6779ad0", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf45b1036273cd55fe990d8a1c33835a8efe6d3dc8e3f5ddf91b57a2b1fed7005", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9a70931a9b75e828056f28652d770c78d64991fbc3b8a991163b6d013dc9c0ce", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb96136ac908dcd97e94acbfbd3029ada7231daf9569e3cb683d21e89fb0193ee", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfd275325a535e7d4ff3707e1447ad025cce89b23e7967e7a00b8e4f568041b84", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x401ef50ba9af8d35913f582ea82cf55382d06d570406b5fbd612db0edf74e940", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x413dadfa3f0294c39d7828b316b6b2be635dafbdfa6a45370b49b3006dd25f07", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3c5a70d025fd8bf7cebef61c8c68f7e576e6d90681612a5d05e3543c9e8b6b35", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7cd2307b72542b993819c097f953e216b2aeceb53d6f926c34f82a8b53418f5a", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x493e97513e9c1d763eb49e88f7bb1fc52441c6d7e31f34568c80b093174e4a7f", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x830354788295b2059f254274ee0e19d4a59e8002e3d5be1f56e12830d8db47b9", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1b6f5a0e436b7f5472bd104158d0a3a8aca0d0e07c7f6e9d440c3b03cd8f6eb1", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7830ff2362b44858cef90305f2a8ee26377ffd6ae7066e92b1a6781b445455be", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfd13f82146bcf4e711ad2361bd3af2315c1811905a2e7c7962caa918195f8e3f", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7447d9d225936bb923490a99f2ed2bca4bc62138516423ef815072b9948d35a2", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7c0c34071f5601c14862e4f36f25b1c3d34b0e6ad948a63a565834aacd9396f1", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5db6257825078c543e64e9c05284ab8b70bb29e3650c955f10d3b62b444c8e3d", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x669733e200f26c94423c0a338e4374cba306a4af80dce17740cdcf21e794f31e", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5a1ce25e968ee24bb2ad9acf8b33c89652e5b1a14424759363b84af2e672d6fc", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaf00ded5ba93a5ecc7c745337f79d792897360836afe4ebbfe773590b37156c9", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe3776a658c14db84ba762fd918273b0d46c3b8ab4f85b17f9418c234f02ab783", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc1c667758d2d37802cc3b7ec075194f408ddd83b0f763661053257624d3954ba", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1f857644e5bd80aa9eef3e7017808d4f0424614324af5729ae7af77327975e8", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8e554f92eb99b9e9be7e2eee0b7a769761ad3a1b36ca01c7d2c4e55942a41cbc", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfb2b624e628c4145d151a9c7f8526775637050fe2cc5a5bf4bfd09560de5829c", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1776ab91ade173a30f234ba2443c1dd35785c8143dbf504131968db6c66c5404", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x26f71293beb96629e7e7ba6a80d21cf731013c03b65a5f20e9eb9597cd0e399c", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5f8437a86fcd4d29a31cfb074463e65969550e25a02c7150115847cb41814d3a", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4db1d29b75812b5e6c002401aae1ead213ca8188fbe652e240b25b1164d9bf54", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6a5b5261a8a2d58e55cbc430ce9a417dab75fa529b4b80658ecba95590b0b1dc", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x40a5b539f76c67ffd7c75dbcc0fc7b6d454e41734df2febef494e95912f9f1cc", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1c8c5287e571f85b5aa820127b7fc8d6bc3b7cf09a35fd9cdcd1bd829656d538", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0xbf1405df919ed7d514847a11ee8b95951b5f7a8b411df27d8b3b611b2e3a6fd9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbdcdcf07de8b1036d075be0268ec2f6117b6677603ef0813d082a2fb5ad15c7e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd65bfea970605ead491689ef2c5906d60bbf535e0dca68d582d2dc24d640ef9d", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x715a02acbc04f7fe09351b2dc5ae0d4a27e36c10e91bf5303c7da24a8ed4d529", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb1115cb61504a1b65b7f737641fceb36f3da90adbf6b32badb673f68fc749cc", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc09bbbd6baf5f093ace63caa472c15d9492e53fb2b3143516d3ebe2fe20b9e52", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x645e11b8d71bf0ebd4cfc05a51bd90d8999bf115ea1bf70009316f17a176db00", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9be0e2e78c7294c478a48ebdd660fcfb341897cab0913618c1241d2932b61fb9", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd2b05a98f54cdc50aad09815c30e5813fe91ce77604d448386674081d2790c1e", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x108fbf9cb20159471af96a0941ab0fbec888bf9b9fee2d5fd22af95d1a42a33f", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcbb524333ead216bbd5c7f18a790eb2faf652eb90d23d9915c22f0b383cf22ea", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe41298d79e1052889d38b7dddc1dbee17484d08475f37d413c85c42fb191c913", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd1aac4cbe74e83d359c851410eecc37cd0797f4470aa366f5e970382d1ae428f", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2c18dcdcbedf1a9828a6bed5bc160ad2b96d67562d7b1cdca2d63cacd912bd5e", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x584153ac0e3c3dfa1cbd6167f498b7367133ad70c8639f25675d96ed99ebb004", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x88edb1df1412003f5a9324a63851f67db1675f2b17c462f7882f3a86a03ebaf4", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x60ccecc75984daef8d67a45a3d6e4a231277dafdc6c24e023a6f6fdc98e446a2", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x58e1af36ab8e38412b37db6b823265c3c3f6c632bdd4b06966bd4ed15f7e9958", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x525b960811b6545f6ffa59fc0ea7d7a73bede82a32aa3b820e64fe20c7de0dde", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe5d9c8369ef3fa22cc2a6f18e1765b15d8160bbdf90765f74586bbd65c3ab279", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3461352964007b94ed71836d2a5c1f44f64104a26d7e2061f5291745be4f6b0f", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee3dea6f5f70c97a9b7fd2ec9cf70ea55a964de8bb04c94c22402be0b2ee72f7", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5a9c68cc285e162d1f6be2c3c11f9f596eb9b8c4553cf5e78891e36ba6105693", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6305f7a45b00c1f6df42d4c661ab02a6fe5dcfcbb4c9fb6b01501a3268b3a3e3", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x681d22ffbe91204513b89fd163d340884136bcc70ec033215ff2261cfeb58f5d", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x648bc9b0766e30e4e32c803cc3561b0f9bfd1d2125dee090c8b1fcae4309bc0e", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2b12d08939ae556b58f000fff27482bfa03931b11641138454bbb120446d4afe", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3abd3544b2d24b8a8cfae19154b815fed587c7b73cb9d2090cc11b3fa9737973", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3587f90e99f9cc771ae37629d52b1f445644f56447ed78f495c91a04fdb53fe9", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdba09b8526792fc05d21592acd03d8255aaf1288e89cb368850c8d3f160c4c67", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x13787302f3569c866fa165616e2cc042f269a2d207346647ca43d4d0c26968e5", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x23dde05f6f8db9d966f4444d7ed60a67edaa2f0cf719706b4bbd2f01b396dc97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd9ea2f9d61f3df9f9991a10f8e69197dca7be69d430208b7d4ad8417807171b0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe304fd4ea5a8fc2271f372b260adc36ce48dd3800222f8837c10e77729b7d2d2", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x69cd43963f23118b4ad6d96960c2c504840d7058773a451992df9a5fad1f7264", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe5cc0e7eb12b59a9836635ec2a4ec39b2a95f58469d4ee66d2e76e356c5f6cdf", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4330037d6f2082e11643d31f46be8d6b72465ccf8f589e67823158e3432be070", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x401275bc491763d1fbfbd9fcaee47f7ac3aac1f9207fb2d5cb114c9cb25286ed", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9e3f9e7c9656eee7699ee692a6c301a5d9bcc5148f61bd0297786e6bf600cee8", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x901aa1a59147292fd8253422a45c0e554fe87f39af409cf6979ce56e3d63b0dd", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6b9aba9ffcf809bbb9fa0c70affd5f6c46457a5c5cd77c30c4804d8bfd10692f", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x23966147ea3cca8997f235aaffe3b2b4e0cf6cff28cff7cefdb4bc67db157e2f", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1ce0ff63aac7caaf19dcad10d4fe88533cb384554723cd0864f0b4777ea32d96", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9dec73faa2fdcd98b3e9b9f4342f2ab4e79c759d803c8bee8b2d4df0f180189e", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2b8cdd925b650b6924200da8fc7b9c9e4580ae9974e7bce7f88c833b5245220e", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdabf1846d46073b9318ff9c7c1e0cbbc44e075dfdf42f944be041c21d8141a34", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3958aeefb61579f0ae737d5c07e6bcf7881288c8e1232bedd21dd8b2c15bbe64", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x449c2d11973c9a1e66e8d942fd5845b600c60dde5fb7a040df3840d838005bdb", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3ea28b8364ae6c3af6b2e4ee8f149f945474834b94b35ddf801a22c2e97e574d", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9da72a91d1660eb4592c0c26f6023a6e6899d2ec9d97016ed7a1fdbbcf008357", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xeb50c19207750e7898adbe172795061cd490c766e4393ffc8ea6c0c6c69300da", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd4d6042ad13766f70208fcc0961e8446e853790fe1eb5504cb3241dae91ee7cd", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x025689ba9cd9154b08c72803dd12f7bc5fb06b103ec75139508a574aa0be5a46", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb776176993392f8b1437bd92183c696210aee8ae2bfcf1889bc5a3441b55852e", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x197870ae1b3693d48ea477f961029ff3e570395a9211b68d873d15fb6ca1d796", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd83ffb7f1ad0cf6d1b0d4b26d83237ff099fd41a4eb4355ad9d610648271776d", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x98172dabd40334b238e30140c8f179a10c85b3c7958cddd79ffdbb9ef7a2187f", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4c6dd1f16747d49c3884be14a4911e98d91dfcfe65529d6c5aa581e40e5e9fb5", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xef12f66c725ebdd4fd3d9540d56c05965b92cd5626a9e9dc1585f0412060f2cf", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee0bb0accabecf0e71b0448549f25681241befe70a1e57f6f4d0e9fd48d22dd9", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x91f59d7b8547ce9f900c62f24304a84cdc36fd31f9ae3cdd8fc4dd55254767d0", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x505e5c5d7cbdea634138c97f7d3b64a6c12e50b71d9f446ea1c0eb59a6779ad0", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 6 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a5100000000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4294967296000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a5100000000000", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4294967296000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -1316,14 +101,14 @@ "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x5b8d80" + "6000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stStackTests/stackOverflowPUSH.json b/GeneralStateTests/stStackTests/stackOverflowPUSH.json index 27054d5ff..7b45868a9 100644 --- a/GeneralStateTests/stStackTests/stackOverflowPUSH.json +++ b/GeneralStateTests/stStackTests/stackOverflowPUSH.json @@ -2,1281 +2,46 @@ "stackOverflowPUSH" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStackTests/stackOverflowPUSHFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0a00000000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "42949672960", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" } } - ], - "Frontier" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xaa1e25b38e822cb4463ebb2b080509f57d3e7ce89d58d57cf6d3419725899d28", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a5100000000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4294967296000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a5100000000000", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4294967296000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -1316,14 +81,14 @@ "0x7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x5b8d80" + "6000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_ABAcalls0.json b/GeneralStateTests/stStaticCall/static_ABAcalls0.json index 7ca5d1275..baa40c59e 100644 --- a/GeneralStateTests/stStaticCall/static_ABAcalls0.json +++ b/GeneralStateTests/stStaticCall/static_ABAcalls0.json @@ -2,149 +2,117 @@ "static_ABAcalls0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc03f26592c873461737e7377bb9ae354a6acfc1af848c9ebe411e717ff86aa32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc03f26592c873461737e7377bb9ae354a6acfc1af848c9ebe411e717ff86aa32", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc03f26592c873461737e7377bb9ae354a6acfc1af848c9ebe411e717ff86aa32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc03f26592c873461737e7377bb9ae354a6acfc1af848c9ebe411e717ff86aa32", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc03f26592c873461737e7377bb9ae354a6acfc1af848c9ebe411e717ff86aa32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xc03f26592c873461737e7377bb9ae354a6acfc1af848c9ebe411e717ff86aa32", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "storage" : { + "0x24" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0ce29d" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0xc03f26592c873461737e7377bb9ae354a6acfc1af848c9ebe411e717ff86aa32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc03f26592c873461737e7377bb9ae354a6acfc1af848c9ebe411e717ff86aa32", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdedcde8098d9d29cbfebc1757ba0ddfee0553aef3828664fb48ba7dbd3f00df7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x41255adec1385a533282ad624847cace6fa9d458645a9878b61616e20846a16f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0df479" + } + }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000100000", + "storage" : { + "0x24" : "0x00" + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b5620186a0fa5855", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ (PC) ]] (STATICCALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x195e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x58600152600060006000600073245304eb96065b2a98b57a48a06ae28d285a71b5620186a0fa", - "nonce" : "0x00", + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 (PC)) (STATICCALL 100000 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x245304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x58600152600060006000600073195e7baea6a6c7c4c2dfeb977efac326af552d8761c350fa", - "nonce" : "0x00", + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { (MSTORE 1 (PC)) (STATICCALL 50000 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x600060006000600073095e7baea6a6c7c4c2dfeb977efac326af552d8761c350fa6001015855", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { [[ (PC) ]] (ADD 1 (STATICCALL 50000 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +123,14 @@ "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_ABAcalls1.json b/GeneralStateTests/stStaticCall/static_ABAcalls1.json index 3656f5bd4..a3c68014f 100644 --- a/GeneralStateTests/stStaticCall/static_ABAcalls1.json +++ b/GeneralStateTests/stStaticCall/static_ABAcalls1.json @@ -2,149 +2,115 @@ "static_ABAcalls1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x3b9aca00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0c7891487363e70826d9829cf807411e9eafc7a532e825c78b281292f0ca586c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0c7891487363e70826d9829cf807411e9eafc7a532e825c78b281292f0ca586c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0c7891487363e70826d9829cf807411e9eafc7a532e825c78b281292f0ca586c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0c7891487363e70826d9829cf807411e9eafc7a532e825c78b281292f0ca586c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x786f770b5b652f16d551ce09811f32c8521bca8aa7a30c7bfb77fbe05f743368", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x786f770b5b652f16d551ce09811f32c8521bca8aa7a30c7bfb77fbe05f743368", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x26" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01d8b81b" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x29" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x786f770b5b652f16d551ce09811f32c8521bca8aa7a30c7bfb77fbe05f743368", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x786f770b5b652f16d551ce09811f32c8521bca8aa7a30c7bfb77fbe05f743368", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe3a16c33c297cc8e1127a49a0a679bf2a264a94955792741a2bfc98f9826b25f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x405520d48ad2b4ad3fc3ac99d0042b395f2588fcc45e1d5c9b88013cbcaee345", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x26" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x3b957609" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x29" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b5620186a05a03fa5855", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ (PC) ]] (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600060006000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x195e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x58600152600060006000600073245304eb96065b2a98b57a48a06ae28d285a71b5620186a05a03fa", - "nonce" : "0x00", + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 (PC)) (STATICCALL (- (GAS) 100000) 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x245304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x600060006000600073195e7baea6a6c7c4c2dfeb977efac326af552d87620186a05a03fa6001015852", - "nonce" : "0x00", + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { (MSTORE (PC) (ADD 1 (STATICCALL (- (GAS) 100000) 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) ) } ", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x600060006000600073095e7baea6a6c7c4c2dfeb977efac326af552d87620186a05a03fa6001015855", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { [[ (PC) ]] (ADD 1 (STATICCALL (- (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +121,14 @@ "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" ], "gasLimit" : [ - "0x3b9aca00" + "1000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_ABAcalls2.json b/GeneralStateTests/stStaticCall/static_ABAcalls2.json index 3d62719eb..51e592d1e 100644 --- a/GeneralStateTests/stStaticCall/static_ABAcalls2.json +++ b/GeneralStateTests/stStaticCall/static_ABAcalls2.json @@ -2,149 +2,138 @@ "static_ABAcalls2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x3b9aca00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbb7727efd4ef264c030eb0a775f9ce7b07cf68169ca515688574a4a5412a70e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb7727efd4ef264c030eb0a775f9ce7b07cf68169ca515688574a4a5412a70e7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xbb7727efd4ef264c030eb0a775f9ce7b07cf68169ca515688574a4a5412a70e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb7727efd4ef264c030eb0a775f9ce7b07cf68169ca515688574a4a5412a70e7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x34dfa119149d9bf8fef1d1bbbabd52b934e26141b6046bd7ef8998e8e29b5c14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x34dfa119149d9bf8fef1d1bbbabd52b934e26141b6046bd7ef8998e8e29b5c14", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } } } - ], - "Homestead" : [ - { - "hash" : "0x34dfa119149d9bf8fef1d1bbbabd52b934e26141b6046bd7ef8998e8e29b5c14", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x34dfa119149d9bf8fef1d1bbbabd52b934e26141b6046bd7ef8998e8e29b5c14", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01d8c976" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x509aafd97a6a0ddbbf8ffcb740f5e8e073285758d211a169593701db4a34f8f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x8c6b4f32dafc1065d9190ffb09ef3ac4468d2366020e12dcbf4179969788e3ba", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x3b955b28" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160005401600055600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b5620186a05a03fa", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x195e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160005101600052600060006000600073245304eb96065b2a98b57a48a06ae28d285a71b5620186a05a03fa", - "nonce" : "0x00", + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ ( MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL (- (GAS) 100000) 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x245304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x00", - "code" : "0x600160005101600052600060006000600073195e7baea6a6c7c4c2dfeb977efac326af552d87620186a05a03fa", - "nonce" : "0x00", + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { ( MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL (- (GAS) 100000) 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x00", - "code" : "0x600160005401600055600060006000600073095e7baea6a6c7c4c2dfeb977efac326af552d87620186a05a03fa", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +144,14 @@ "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" ], "gasLimit" : [ - "0x3b9aca00" + "1000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_ABAcalls3.json b/GeneralStateTests/stStaticCall/static_ABAcalls3.json index 1f4713206..18ec2570e 100644 --- a/GeneralStateTests/stStaticCall/static_ABAcalls3.json +++ b/GeneralStateTests/stStaticCall/static_ABAcalls3.json @@ -2,149 +2,138 @@ "static_ABAcalls3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_ABAcalls3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x074f790d10e1e116a6426c476544b9ba4aaaf0547e6798d8a36591a5c16dec0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x074f790d10e1e116a6426c476544b9ba4aaaf0547e6798d8a36591a5c16dec0a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x074f790d10e1e116a6426c476544b9ba4aaaf0547e6798d8a36591a5c16dec0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x074f790d10e1e116a6426c476544b9ba4aaaf0547e6798d8a36591a5c16dec0a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8d9bccc5ef042358e0001d66fff581f3f1b8342c81dad02ad287a0ea18b3c8d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x8d9bccc5ef042358e0001d66fff581f3f1b8342c81dad02ad287a0ea18b3c8d6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } } } - ], - "Homestead" : [ - { - "hash" : "0x8d9bccc5ef042358e0001d66fff581f3f1b8342c81dad02ad287a0ea18b3c8d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x8d9bccc5ef042358e0001d66fff581f3f1b8342c81dad02ad287a0ea18b3c8d6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0467fd" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xedbb8b13272913d00d5bdd584be0835fbd751c1d2ac15d5f654d13ce54b5f1b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x52f205a4f23f4f83d4accf5e4b5230c4189115348a83e6203ff4ad7edebce01d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x95c35c" + } + }, + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0" + } + }, + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0fa3e8", - "code" : "0x600160005401600055600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b5620186a05a03fa", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1025000", + "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x195e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0fa3e8", - "code" : "0x600160005401600052600060006000600073245304eb96065b2a98b57a48a06ae28d285a71b5620186a05a03fa", - "nonce" : "0x00", + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1025000", + "code" : "{ (MSTORE 0 (ADD (SLOAD 0) 1)) (STATICCALL (- (GAS) 100000) 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x245304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x00", - "code" : "0x600160005401600052600060006000600073195e7baea6a6c7c4c2dfeb977efac326af552d87620186a05a03fa", - "nonce" : "0x00", + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { (MSTORE 0 (ADD (SLOAD 0) 1)) (STATICCALL (- (GAS) 100000) 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x00", - "code" : "0x600160005401600055600060006000600073095e7baea6a6c7c4c2dfeb977efac326af552d87620186a05a03fa", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { [[ 0 ]] (ADD (SLOAD 0) 1) (STATICCALL (- (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +144,14 @@ "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_ABAcallsSuicide0.json b/GeneralStateTests/stStaticCall/static_ABAcallsSuicide0.json index e03dbaae6..13e8e88de 100644 --- a/GeneralStateTests/stStaticCall/static_ABAcallsSuicide0.json +++ b/GeneralStateTests/stStaticCall/static_ABAcallsSuicide0.json @@ -2,149 +2,105 @@ "static_ABAcallsSuicide0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xffa5388f2f354f396a4b5fd50479824ecba5a05da414b74e1feb08ac768d01eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffa5388f2f354f396a4b5fd50479824ecba5a05da414b74e1feb08ac768d01eb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xffa5388f2f354f396a4b5fd50479824ecba5a05da414b74e1feb08ac768d01eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffa5388f2f354f396a4b5fd50479824ecba5a05da414b74e1feb08ac768d01eb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcea5bb685391706db4393bf037b44d0058636483ef432bb99683db120a00359d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xcea5bb685391706db4393bf037b44d0058636483ef432bb99683db120a00359d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x962352" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0" + } } } - ], - "Homestead" : [ - { - "hash" : "0xcea5bb685391706db4393bf037b44d0058636483ef432bb99683db120a00359d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcea5bb685391706db4393bf037b44d0058636483ef432bb99683db120a00359d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa96988d765d43bf98e1e566a22c3a203691fd78b1fb08f0ed8aef219c9356d22", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x0fa4fafe1227be36b2bf9ddcd40849bcd55a93f3eb70714594bfdcf14af5eb55", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x96f73c" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b5620186a0fa585573945304eb96065b2a98b57a48a06ae28d285a71b5ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ (PC) ]] (STATICCALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) (SELFDESTRUCT 0x945304eb96065b2a98b57a48a06ae28d285a71b5) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x195e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600073245304eb96065b2a98b57a48a06ae28d285a71b5620186a0fa585273945304eb96065b2a98b57a48a06ae28d285a71b5ff", - "nonce" : "0x00", + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE (PC) (STATICCALL 100000 0x245304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0)) (SELFDESTRUCT 0x945304eb96065b2a98b57a48a06ae28d285a71b5) }", + "nonce" : "0", "storage" : { } }, - "0x245304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x600060006000600073195e7baea6a6c7c4c2dfeb977efac326af552d8761c350fa6001015852", - "nonce" : "0x00", + "245304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{ (MSTORE (PC) (ADD 1 (STATICCALL 50000 0x195e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) ) } ", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x600060006000600073095e7baea6a6c7c4c2dfeb977efac326af552d8761c350fa6001015855", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{ [[ (PC) ]] (ADD 1 (STATICCALL 50000 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +111,14 @@ "0x000000000000000000000000195e7baea6a6c7c4c2dfeb977efac326af552d87" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_ABAcallsSuicide1.json b/GeneralStateTests/stStaticCall/static_ABAcallsSuicide1.json index cff7406a3..c67373ccf 100644 --- a/GeneralStateTests/stStaticCall/static_ABAcallsSuicide1.json +++ b/GeneralStateTests/stStaticCall/static_ABAcallsSuicide1.json @@ -2,128 +2,67 @@ "static_ABAcallsSuicide1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_ABAcallsSuicide1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xccd4d8f4dc9f37f077981d80525df227265e9f76286a255ebe5feb27c474674e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xccd4d8f4dc9f37f077981d80525df227265e9f76286a255ebe5feb27c474674e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xccd4d8f4dc9f37f077981d80525df227265e9f76286a255ebe5feb27c474674e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xccd4d8f4dc9f37f077981d80525df227265e9f76286a255ebe5feb27c474674e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xccd4d8f4dc9f37f077981d80525df227265e9f76286a255ebe5feb27c474674e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xccd4d8f4dc9f37f077981d80525df227265e9f76286a255ebe5feb27c474674e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xccd4d8f4dc9f37f077981d80525df227265e9f76286a255ebe5feb27c474674e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xccd4d8f4dc9f37f077981d80525df227265e9f76286a255ebe5feb27c474674e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xadea7a18f356290092a47170f2f30423787d851719ae597d21ea8c949d8d3a86", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xfe615f89e81cf8b016a7433aa27c05ad0c4ee79ba39ff764492e5f4d5f5a6d6f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "EIP150", + "EIP158", + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "shouldnotexist" : "1" + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600035600052600060006020600073945304eb96065b2a98b57a48a06ae28d285a71b5600035fa", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL (CALLDATALOAD 0) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 32 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x600035600052600060006020600073095e7baea6a6c7c4c2dfeb977efac326af552d8761c35060003503fa50730f572e5295c57f15886f9b263e2f6d2d6c7b5ec6ff", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL (SUB (CALLDATALOAD 0) 50000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 32 0 0) (SELFDESTRUCT 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -134,14 +73,14 @@ "0x00000000000000000000000000000000000000000000000000000000000486a0" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CALL_OneVCallSuicide.json b/GeneralStateTests/stStaticCall/static_CALL_OneVCallSuicide.json index 375d12370..37a7c66b4 100644 --- a/GeneralStateTests/stStaticCall/static_CALL_OneVCallSuicide.json +++ b/GeneralStateTests/stStaticCall/static_CALL_OneVCallSuicide.json @@ -2,88 +2,59 @@ "static_CALL_OneVCallSuicide" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CALL_OneVCallSuicideFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd9d189d55623b848db5cb84a4aa8407b25008c9c8d8ef4ff58ca4690519b306a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x64" : "0x079a61" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xd9d189d55623b848db5cb84a4aa8407b25008c9c8d8ef4ff58ca4690519b306a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd9d189d55623b848db5cb84a4aa8407b25008c9c8d8ef4ff58ca4690519b306a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd9d189d55623b848db5cb84a4aa8407b25008c9c8d8ef4ff58ca4690519b306a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x342cabfdf44012ab2d15fd0d0b37c086d887dac25ea1f21d2d31484574c08e96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa505a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "code" : "{ [[0]](GAS) (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x73b94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +64,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CALL_ZeroVCallSuicide.json b/GeneralStateTests/stStaticCall/static_CALL_ZeroVCallSuicide.json index 52cf58a84..fb11bf86d 100644 --- a/GeneralStateTests/stStaticCall/static_CALL_ZeroVCallSuicide.json +++ b/GeneralStateTests/stStaticCall/static_CALL_ZeroVCallSuicide.json @@ -2,88 +2,59 @@ "static_CALL_ZeroVCallSuicide" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CALL_ZeroVCallSuicideFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x547505ab1a24eb2ada751603d80eecd2a47f26969fb47dbd3f9f7d78fbee1440", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0x3da96cfeceb3cb53a36674fdb1b80cae94e862296896d19ac7aadf32a3135e7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x547505ab1a24eb2ada751603d80eecd2a47f26969fb47dbd3f9f7d78fbee1440", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x547505ab1a24eb2ada751603d80eecd2a47f26969fb47dbd3f9f7d78fbee1440", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3da96cfeceb3cb53a36674fdb1b80cae94e862296896d19ac7aadf32a3135e7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x73b94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +64,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "094f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CREATE_ContractSuicideDuringInit.json b/GeneralStateTests/stStaticCall/static_CREATE_ContractSuicideDuringInit.json index 3614ddaf5..154a3bc65 100644 --- a/GeneralStateTests/stStaticCall/static_CREATE_ContractSuicideDuringInit.json +++ b/GeneralStateTests/stStaticCall/static_CREATE_ContractSuicideDuringInit.json @@ -2,222 +2,73 @@ "static_CREATE_ContractSuicideDuringInit" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInitFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba5ae1e3e6d8442c50bf29604d4d96457d6b48419f056da87878e3cc83569129", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5f371bb123b53255249203a7c7e2ffc5c3ae27f3e8816f53e02188c9f42f5ff1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa729e7decd16eb178dda568c3f383213df1d5316c4ca5b95d7512c391a10b094", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa729e7decd16eb178dda568c3f383213df1d5316c4ca5b95d7512c391a10b094", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa729e7decd16eb178dda568c3f383213df1d5316c4ca5b95d7512c391a10b094", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0b", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "11", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0b", - "code" : "0x6001600155", - "nonce" : "0x00", + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "11", + "code" : "{ (SSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xe94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0b", - "code" : "0x6000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b6064f1", - "nonce" : "0x00", + "e94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "11", + "code" : "{ (CALL 100 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -230,14 +81,14 @@ "0x600060006000600073e94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff" ], "gasLimit" : [ - "0x0249f0" + "150000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturn.json b/GeneralStateTests/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturn.json index 78c67aeb3..454ce5c17 100644 --- a/GeneralStateTests/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturn.json +++ b/GeneralStateTests/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturn.json @@ -2,142 +2,91 @@ "static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturn" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_ThenStoreThenReturnFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xac308a6d429b670ba38741ea8d3df6b5ac8a05292a857a57a53ef00dc18aeadc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xac308a6d429b670ba38741ea8d3df6b5ac8a05292a857a57a53ef00dc18aeadc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xac308a6d429b670ba38741ea8d3df6b5ac8a05292a857a57a53ef00dc18aeadc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xac308a6d429b670ba38741ea8d3df6b5ac8a05292a857a57a53ef00dc18aeadc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xac308a6d429b670ba38741ea8d3df6b5ac8a05292a857a57a53ef00dc18aeadc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xac308a6d429b670ba38741ea8d3df6b5ac8a05292a857a57a53ef00dc18aeadc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xac308a6d429b670ba38741ea8d3df6b5ac8a05292a857a57a53ef00dc18aeadc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xac308a6d429b670ba38741ea8d3df6b5ac8a05292a857a57a53ef00dc18aeadc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x06df263ff3ef057343ac2ec24147d5c092d10dc9cd873f111687ca575efe44c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x3562f98d65ea1ba4861c530d74c8ce9dbb92e41c552834193db5f9ef9fea1a57", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "0" + } + }, + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "0" + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + "0x01" : "0" + } + }, + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{(MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } }, - "0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600c600155", - "nonce" : "0x00", + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -148,14 +97,14 @@ "0x600060006000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa506d64600c6000556000526005601bf360005273d94f5374fce5edbc8e2a8697c15331677e6ebf0bff600060006000600073194f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa50600b600055600e6012f3" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValue.json b/GeneralStateTests/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValue.json index b64962886..1e6877cb1 100644 --- a/GeneralStateTests/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValue.json +++ b/GeneralStateTests/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValue.json @@ -2,128 +2,59 @@ "static_CREATE_ContractSuicideDuringInit_WithValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_ContractSuicideDuringInit_WithValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf485ec8af9bb51a5107f82c504f75a9a4f8f0631fa44d0bf5610a5aaa01079bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf485ec8af9bb51a5107f82c504f75a9a4f8f0631fa44d0bf5610a5aaa01079bf", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf485ec8af9bb51a5107f82c504f75a9a4f8f0631fa44d0bf5610a5aaa01079bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf485ec8af9bb51a5107f82c504f75a9a4f8f0631fa44d0bf5610a5aaa01079bf", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf485ec8af9bb51a5107f82c504f75a9a4f8f0631fa44d0bf5610a5aaa01079bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf485ec8af9bb51a5107f82c504f75a9a4f8f0631fa44d0bf5610a5aaa01079bf", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf485ec8af9bb51a5107f82c504f75a9a4f8f0631fa44d0bf5610a5aaa01079bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf485ec8af9bb51a5107f82c504f75a9a4f8f0631fa44d0bf5610a5aaa01079bf", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf532488f66e226bed6d8f680090a47f88e3b0c0384aee977e4db02120a2b4eab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xda4511f7aa82e9d1f3f6c45aa38812791fe76f1927aca67165cc69363cd853bd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "storage" : { + "0x01" : "0" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } }, - "0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } } @@ -134,14 +65,14 @@ "0x600060006000600073d94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa506d64600c6000556000526005601bf360005273c94f5374fce5edbc8e2a8697c15331677e6ebf0bff" ], "gasLimit" : [ - "0x0249f0" + "150000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CREATE_EmptyContractAndCallIt_0wei.json b/GeneralStateTests/stStaticCall/static_CREATE_EmptyContractAndCallIt_0wei.json index 3e7513bbf..ca5ad965f 100644 --- a/GeneralStateTests/stStaticCall/static_CREATE_EmptyContractAndCallIt_0wei.json +++ b/GeneralStateTests/stStaticCall/static_CREATE_EmptyContractAndCallIt_0wei.json @@ -2,81 +2,55 @@ "static_CREATE_EmptyContractAndCallIt_0wei" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractAndCallIt_0weiFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x95cb95e8a45183889c6c6374095e6e5ee260cac2501bc18a7318e0e0b9b4d925", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x07bc62", + "0x03" : "0x01", + "0x64" : "0x071c84" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x95cb95e8a45183889c6c6374095e6e5ee260cac2501bc18a7318e0e0b9b4d925", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x95cb95e8a45183889c6c6374095e6e5ee260cac2501bc18a7318e0e0b9b4d925", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x95cb95e8a45183889c6c6374095e6e5ee260cac2501bc18a7318e0e0b9b4d925", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4642341e03e4311cb73d40525960794e48197f36ae5b787a30b75c092192c91b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055602060006000f06001555a600255600060006000600060015461ea60fa6003555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CREATE 0 0 32) [[2]](GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0wei.json b/GeneralStateTests/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0wei.json index 59975f3af..816ec1482 100644 --- a/GeneralStateTests/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0wei.json +++ b/GeneralStateTests/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0wei.json @@ -2,88 +2,67 @@ "static_CREATE_EmptyContractWithStorageAndCallIt_0wei" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CREATE_EmptyContractWithStorageAndCallIt_0weiFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2cddc45b4f529774b2ecddd260c63d1154971cd17b1c2ffc77e92940d8c0333e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0xf1ecf98489fa9ed60a664fc4998db699cfa39d40", + "0x02" : "0x071d30", + "0x03" : "0x01", + "0x64" : "0x067d52" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "12" + } + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x2cddc45b4f529774b2ecddd260c63d1154971cd17b1c2ffc77e92940d8c0333e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2cddc45b4f529774b2ecddd260c63d1154971cd17b1c2ffc77e92940d8c0333e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2cddc45b4f529774b2ecddd260c63d1154971cd17b1c2ffc77e92940d8c0333e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4bcc548cba959981ce4cc689cf3c71fc583c7e98702efb6507db8cb62dd4f8eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000557f600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331676000527f7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000602052604060006000f06001555a600255600060006000600060015461ea60fa6003555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) (MSTORE 0 0x600c6000556000600060006000600073c94f5374fce5edbc8e2a8697c1533167) (MSTORE 32 0x7e6ebf0b61ea60f1000000000000000000000000000000000000000000000000) [[1]] (CREATE 0 0 64) [[2]] (GAS) [[3]] (STATICCALL 60000 (SLOAD 1) 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", - "code" : "0x600c600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "{[[1]]12}", + "nonce" : "0", "storage" : { } } @@ -93,14 +72,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call10.json b/GeneralStateTests/stStaticCall/static_Call10.json index bfbe33e11..f429aab00 100644 --- a/GeneralStateTests/stStaticCall/static_Call10.json +++ b/GeneralStateTests/stStaticCall/static_Call10.json @@ -2,142 +2,100 @@ "static_Call10" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call10Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6fc4c3084d4c54b9eacedbad095784469b5ea16f6f2525ecd8805baf90293096", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6fc4c3084d4c54b9eacedbad095784469b5ea16f6f2525ecd8805baf90293096", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x6fc4c3084d4c54b9eacedbad095784469b5ea16f6f2525ecd8805baf90293096", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6fc4c3084d4c54b9eacedbad095784469b5ea16f6f2525ecd8805baf90293096", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5b0b9342608439258a77989fc35e9362610b817f0f6c325bfbb113cb213b39b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x5b0b9342608439258a77989fc35e9362610b817f0f6c325bfbb113cb213b39b4", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7ffffffffffdadb4" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "1", + "0x01" : "0x0a" + } } } - ], - "Homestead" : [ - { - "hash" : "0x5b0b9342608439258a77989fc35e9362610b817f0f6c325bfbb113cb213b39b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5b0b9342608439258a77989fc35e9362610b817f0f6c325bfbb113cb213b39b4", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x43171058d96ffb08732b0c38a6c64c5076be8b7dbe36d3ce302384210e6d741e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa87ead574b019674d700f0c5e843668be263b3ca5770f00f791e2c09d6a09556", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7ffffffffffef99b" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x03e8", - "code" : "0x5b600a60805110156040576000600061c350600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffffa6000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{ (def 'i 0x80) (for {} (< @i 10) [i](+ @i 1) [[ 0 ]](STATICCALL 0xfffffffffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } }, - "0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x03e8", - "code" : "0x5b600a60805110156040576000600061c350600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffffa6000526001608051016080526000565b608051602052", - "nonce" : "0x00", + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{ (def 'i 0x80) (for {} (< @i 10) [i](+ @i 1) (MSTORE 0 (STATICCALL 0xfffffffffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0)) ) (MSTORE 32 @i)}", + "nonce" : "0", "storage" : { } } @@ -150,12 +108,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call1024BalanceTooLow.json b/GeneralStateTests/stStaticCall/static_Call1024BalanceTooLow.json index d58c7ecc8..5896a1970 100644 --- a/GeneralStateTests/stStaticCall/static_Call1024BalanceTooLow.json +++ b/GeneralStateTests/stStaticCall/static_Call1024BalanceTooLow.json @@ -2,142 +2,100 @@ "static_Call1024BalanceTooLow" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLowFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x28d138", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "2675000", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x65303506a22481fc271324f6e801332c20a254f5ce948e14d43f861f6439274a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x65303506a22481fc271324f6e801332c20a254f5ce948e14d43f861f6439274a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x65303506a22481fc271324f6e801332c20a254f5ce948e14d43f861f6439274a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x65303506a22481fc271324f6e801332c20a254f5ce948e14d43f861f6439274a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7195770669304046f0a56512c69b8b9f0613a2d6420474762cfc751c8d5144ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x7195770669304046f0a56512c69b8b9f0613a2d6420474762cfc751c8d5144ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7effff9ff4" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x7195770669304046f0a56512c69b8b9f0613a2d6420474762cfc751c8d5144ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7195770669304046f0a56512c69b8b9f0613a2d6420474762cfc751c8d5144ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2f4302b5aee555ad6d3a5df4d1785e280fe9ca3b22eaa16bd88fcfc5e7610dd2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xb02ff201d96fed0845c416053cfd28c239653041b732838ce42b0fbb954255c5", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0ffffff458dd" + } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x60016000540160005560006000600060005473bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffffa600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b @@0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x60016000510160005260006000600060005173cbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffffa602052", - "nonce" : "0x00", + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ (MSTORE 0 (ADD (MLOAD 0) 1)) (MSTORE 32 (STATICCALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b (MLOAD 0) 0 0 0)) }", + "nonce" : "0", "storage" : { } } @@ -148,14 +106,14 @@ "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x10000000d788" + "17592186099592" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call1024BalanceTooLow2.json b/GeneralStateTests/stStaticCall/static_Call1024BalanceTooLow2.json index f37e1506c..8742af76e 100644 --- a/GeneralStateTests/stStaticCall/static_Call1024BalanceTooLow2.json +++ b/GeneralStateTests/stStaticCall/static_Call1024BalanceTooLow2.json @@ -2,142 +2,100 @@ "static_Call1024BalanceTooLow2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call1024BalanceTooLow2Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1fa52f1d08aaae7e5fb60a1867dc3780f8ee2f2fcc2a5c7ddce608fd3f4ccb88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1fa52f1d08aaae7e5fb60a1867dc3780f8ee2f2fcc2a5c7ddce608fd3f4ccb88", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1fa52f1d08aaae7e5fb60a1867dc3780f8ee2f2fcc2a5c7ddce608fd3f4ccb88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1fa52f1d08aaae7e5fb60a1867dc3780f8ee2f2fcc2a5c7ddce608fd3f4ccb88", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x92ce69ec0f964ece3ff69f6c3b53612967056f3038093170d49f98f4acb8b00b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x92ce69ec0f964ece3ff69f6c3b53612967056f3038093170d49f98f4acb8b00b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7effff9ff4" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x92ce69ec0f964ece3ff69f6c3b53612967056f3038093170d49f98f4acb8b00b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x92ce69ec0f964ece3ff69f6c3b53612967056f3038093170d49f98f4acb8b00b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdde94d2896244944c676e465ea156a4c2aa6a86c924fca0e1f6bde3a181b963e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x286a8f834d47eae85a92d2e14062c0d930388ac53384b1a17a9c14aec7863699", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0ffffff458dd" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x60016000540160005560006000600060005473bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffffa600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b @@0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x60016000510160005260006000600060005173cbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffffa602052", - "nonce" : "0x00", + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ (MSTORE 0 (ADD (MLOAD 0) 1)) (MSTORE 32 (STATICCALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b (MLOAD 0) 0 0 0)) }", + "nonce" : "0", "storage" : { } } @@ -150,12 +108,12 @@ "gasLimit" : [ "0x10000000d788" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call1024OOG.json b/GeneralStateTests/stStaticCall/static_Call1024OOG.json index 4b9e9e79d..7598f5a9f 100644 --- a/GeneralStateTests/stStaticCall/static_Call1024OOG.json +++ b/GeneralStateTests/stStaticCall/static_Call1024OOG.json @@ -2,142 +2,102 @@ "static_Call1024OOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call1024OOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x377c7eb30bfd80a9144129404d73609218fa05572eab656a60f52d37a032c569", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x377c7eb30bfd80a9144129404d73609218fa05572eab656a60f52d37a032c569", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x377c7eb30bfd80a9144129404d73609218fa05572eab656a60f52d37a032c569", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x377c7eb30bfd80a9144129404d73609218fa05572eab656a60f52d37a032c569", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbeed75a2b66e2f7d9844281420694fb1f118de6673b1fd811db2380ca8a2527c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xbeed75a2b66e2f7d9844281420694fb1f118de6673b1fd811db2380ca8a2527c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x06ba56" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x03e9" + } } } - ], - "Homestead" : [ - { - "hash" : "0xbeed75a2b66e2f7d9844281420694fb1f118de6673b1fd811db2380ca8a2527c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbeed75a2b66e2f7d9844281420694fb1f118de6673b1fd811db2380ca8a2527c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x12252109e742ad0cab93eeb5e0555a95eae8d40ba4b26bf202962a363c9b0980", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xd979618d4b694bcf3b93ed8b0881981e421f6ef9f7b31c0ea1497624bd9271e4", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xebe90c" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005401600055600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b610401600054046001036127105a0302fa6001556103e860005402600101600255", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV @@0 1025))) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", "storage" : { } }, - "0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005101600052600060006000600073cbbf5374fce5edbc8e2a8697c15331677e6ebf0b610401600051046001036127105a0302fa506103e860005102600101602052", - "nonce" : "0x00", + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ (MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL (MUL (SUB (GAS) 10000) (SUB 1 (DIV (MLOAD 0) 1025))) 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 32 (ADD 1(MUL (MLOAD 0) 1000))) }", + "nonce" : "0", "storage" : { } } @@ -148,14 +108,14 @@ "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0xefe17a" + "15720826" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call1024PreCalls.json b/GeneralStateTests/stStaticCall/static_Call1024PreCalls.json index 02e87c976..c9a1eef15 100644 --- a/GeneralStateTests/stStaticCall/static_Call1024PreCalls.json +++ b/GeneralStateTests/stStaticCall/static_Call1024PreCalls.json @@ -2,142 +2,104 @@ "static_Call1024PreCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x72c9194816bf3bdeea30964d4ce764517bd08e0e1b6a6850dfe32af1b6a07845", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x72c9194816bf3bdeea30964d4ce764517bd08e0e1b6a6850dfe32af1b6a07845", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x72c9194816bf3bdeea30964d4ce764517bd08e0e1b6a6850dfe32af1b6a07845", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x72c9194816bf3bdeea30964d4ce764517bd08e0e1b6a6850dfe32af1b6a07845", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd8c1ef716b4972c223a88f5f00f7fbca98f82256a8179f0d008e4386c6a36a5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xd8c1ef716b4972c223a88f5f00f7fbca98f82256a8179f0d008e4386c6a36a5d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffeffffffe3617" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xd8c1ef716b4972c223a88f5f00f7fbca98f82256a8179f0d008e4386c6a36a5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd8c1ef716b4972c223a88f5f00f7fbca98f82256a8179f0d008e4386c6a36a5d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x47545485af2352f55deacfb37d334fae960a6569be0376e9aeaac56c43109d65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xc9d51252543c9fa0eb320b0a9589663000ab8135737c659d8d096f6fd5d2a9ae", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffffffffdd3145" + } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07e8", - "code" : "0x600060006000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffffa600255600060006000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffffa600355600160005401600055600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffffa600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ [[ 2 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 3 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07e8", - "code" : "0x600060006000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffffa50600060006000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffffa50600160005101600052600060006000600073cbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffffa", - "nonce" : "0x00", + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -150,12 +112,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call1024PreCalls2.json b/GeneralStateTests/stStaticCall/static_Call1024PreCalls2.json index e3f3a9d64..b3b5cb2d5 100644 --- a/GeneralStateTests/stStaticCall/static_Call1024PreCalls2.json +++ b/GeneralStateTests/stStaticCall/static_Call1024PreCalls2.json @@ -2,142 +2,104 @@ "static_Call1024PreCalls2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls2Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x84b15d76a83439d2f8b556d2790a3193aa0bc7b4b91908113a91c911b1e88e97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x84b15d76a83439d2f8b556d2790a3193aa0bc7b4b91908113a91c911b1e88e97", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x84b15d76a83439d2f8b556d2790a3193aa0bc7b4b91908113a91c911b1e88e97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x84b15d76a83439d2f8b556d2790a3193aa0bc7b4b91908113a91c911b1e88e97", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1e55307cb145f215d81a774a89864da25991de58a2a9e918c9b0df7946841997", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x1e55307cb145f215d81a774a89864da25991de58a2a9e918c9b0df7946841997", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7ffffffffea056fd" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x1e55307cb145f215d81a774a89864da25991de58a2a9e918c9b0df7946841997", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e55307cb145f215d81a774a89864da25991de58a2a9e918c9b0df7946841997", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc3e703ec8eadb5f45a5be63ef75210aba7d62e94c4fff236682d23e3ab16394a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x39ed2fb5d5606b9b81c52284938fbb0b283ad86b9bac805058f42dcb5f55fd62", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffffffffdcd15d" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", - "code" : "0x6001600052", - "nonce" : "0x00", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", + "code" : "{ (MSTORE 0 1)}", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07e8", - "code" : "0x600060006000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffffa600255600060006000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffffa600355600160005401600055600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffff4600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ [[ 2 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 3 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 0 ]] (ADD @@0 1) [[ 1 ]] (DELEGATECALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07e8", - "code" : "0x600060006000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffffa50600060006000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffffa50600160005101600052600060006000600073cbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffff4", - "nonce" : "0x00", + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 0 (ADD (MLOAD 0) 1)) (DELEGATECALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -150,12 +112,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call1024PreCalls3.json b/GeneralStateTests/stStaticCall/static_Call1024PreCalls3.json index a4e7139f6..37479e813 100644 --- a/GeneralStateTests/stStaticCall/static_Call1024PreCalls3.json +++ b/GeneralStateTests/stStaticCall/static_Call1024PreCalls3.json @@ -2,142 +2,104 @@ "static_Call1024PreCalls3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call1024PreCalls3Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x43dcef1547c811367a98a58d309ff493d8da77dc809bd85be54919cc5256d31a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x43dcef1547c811367a98a58d309ff493d8da77dc809bd85be54919cc5256d31a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x43dcef1547c811367a98a58d309ff493d8da77dc809bd85be54919cc5256d31a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x43dcef1547c811367a98a58d309ff493d8da77dc809bd85be54919cc5256d31a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0c49b7f4e9d3b5510b80e8d98d930ad870e91bcd475a0813d18e9311fd8e55cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x0c49b7f4e9d3b5510b80e8d98d930ad870e91bcd475a0813d18e9311fd8e55cd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffeffffffe3617" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0x0c49b7f4e9d3b5510b80e8d98d930ad870e91bcd475a0813d18e9311fd8e55cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0c49b7f4e9d3b5510b80e8d98d930ad870e91bcd475a0813d18e9311fd8e55cd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb5e45c3c25b7dcdd70c888946cb41e5343a078996960b179c9b50791f4099930", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x4995b48f3bd479101b9df0d5e7b80a76ccd39d8014ea778b7b012a4b4e74de69", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7fffffffffdd3145" + } + }, + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07e8", - "code" : "0x600060006000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffffa600255600060006000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffffa600355600160005401600055600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffffa600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ [[ 2 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 3 ]] (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL 0xfffffffffff 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07e8", - "code" : "0x600060006000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffffa50600060006000600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61fffffa50600160005101600052600060006000600073cbbf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffffa", - "nonce" : "0x00", + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2024", + "code" : "{ (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (STATICCALL 0xffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) (MSTORE 0 (ADD (MLOAD 0) 1)) (STATICCALL 0xfffffffffff 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -150,12 +112,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call1MB1024Calldepth.json b/GeneralStateTests/stStaticCall/static_Call1MB1024Calldepth.json index 26786a988..559f70711 100644 --- a/GeneralStateTests/stStaticCall/static_Call1MB1024Calldepth.json +++ b/GeneralStateTests/stStaticCall/static_Call1MB1024Calldepth.json @@ -2,142 +2,108 @@ "static_Call1MB1024Calldepth" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call1MB1024CalldepthFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xcd79195900", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbb49e60a0a9c224fa1ca6c5800fb429cfb15bdd05997bd22e14fd65e983d7342", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb49e60a0a9c224fa1ca6c5800fb429cfb15bdd05997bd22e14fd65e983d7342", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xbb49e60a0a9c224fa1ca6c5800fb429cfb15bdd05997bd22e14fd65e983d7342", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb49e60a0a9c224fa1ca6c5800fb429cfb15bdd05997bd22e14fd65e983d7342", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5ec6d930391ee23d713ce66da97cbc366bf929411f5fb0d01c5dae5fea491455", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x5ec6d930391ee23d713ce66da97cbc366bf929411f5fb0d01c5dae5fea491455", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374606576630825020" + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x60016000540160005561040060005410601b5760016002556045565b60006000620f4240600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03fa6001555b", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x5ec6d930391ee23d713ce66da97cbc366bf929411f5fb0d01c5dae5fea491455", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5ec6d930391ee23d713ce66da97cbc366bf929411f5fb0d01c5dae5fea491455", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7a6ec2437e4f7f5affb760be1ab360de5221df61fefca20d798b5ea54e738291", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xde79c963e0243f89748a78f8f39040f3047c77a9d70dcecb726ae683f54f7d73", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607430644755785" + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x60016000540160005561040060005410601b5760016002556045565b60006000620f4240600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03fa6001555b", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0fffffffffffff", - "code" : "0x600060006000600060006000355af1600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0xfffffffffffff", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x60016000540160005561040060005410601b5760016002556045565b60006000620f4240600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03fa6001555b", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) [[ 0 ]] (+ @@0 1) (if (LT @@0 1024) [[ 1 ]] (STATICCALL (- (GAS) 1005000) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 1000000 0 0) [[ 2 ]] 1 ) }", + "nonce" : "0", "storage" : { } }, - "0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x60016000510160005261040060005110601b5760016040526045565b60006000620f4240600073cbbf5374fce5edbc8e2a8697c15331677e6ebf0b620f55c85a03fa6020525b", - "nonce" : "0x00", + "cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (MSTORE 0 (+ (MLOAD 0) 1)) (if (LT (MLOAD 0) 1024) (MSTORE 32 (STATICCALL (- (GAS) 1005000) 0xcbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 1000000 0 0)) (MSTORE 64 1) ) }", + "nonce" : "0", "storage" : { } } @@ -148,14 +114,14 @@ "0x000000000000000000000000cbbf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0xcd79195900" + "882500000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call50000.json b/GeneralStateTests/stStaticCall/static_Call50000.json index de26d5741..434cc3781 100644 --- a/GeneralStateTests/stStaticCall/static_Call50000.json +++ b/GeneralStateTests/stStaticCall/static_Call50000.json @@ -2,142 +2,144 @@ "static_Call50000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call50000Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05204180", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "86000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4d0410e141c8f943f83cc4771edff86117b741acf6954fcc3e18cf88d1e3b425", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4d0410e141c8f943f83cc4771edff86117b741acf6954fcc3e18cf88d1e3b425", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4d0410e141c8f943f83cc4771edff86117b741acf6954fcc3e18cf88d1e3b425", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4d0410e141c8f943f83cc4771edff86117b741acf6954fcc3e18cf88d1e3b425", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcd0460282874213b0a71f14cc7f60f4af9a1299ec9520a1b35b9b98b0cdcbecb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xcd0460282874213b0a71f14cc7f60f4af9a1299ec9520a1b35b9b98b0cdcbecb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x142e79" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431684514059", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x1b58", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "83697386", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015603d576000600061c350600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b610640fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0xcd0460282874213b0a71f14cc7f60f4af9a1299ec9520a1b35b9b98b0cdcbecb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcd0460282874213b0a71f14cc7f60f4af9a1299ec9520a1b35b9b98b0cdcbecb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4d0410e141c8f943f83cc4771edff86117b741acf6954fcc3e18cf88d1e3b425", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xb568e43eaff561a067df321504be9c94a585f3e5c80147256cc39ce51f18dd13", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x02bb7917" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431729032105", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x1b58", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "39179340", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015603d576000600061c350600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b610640fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015603d576000600061c350600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b610640fa6000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1600 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } }, - "0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015603d576000600061c350600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b610640fa6000526001608051016080526000565b608051602052", - "nonce" : "0x00", + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 1600 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", "storage" : { } } @@ -148,14 +150,14 @@ "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x0510ff40" + "85000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call50000_ecrec.json b/GeneralStateTests/stStaticCall/static_Call50000_ecrec.json index 7b9d6463c..7e15a647b 100644 --- a/GeneralStateTests/stStaticCall/static_Call50000_ecrec.json +++ b/GeneralStateTests/stStaticCall/static_Call50000_ecrec.json @@ -2,135 +2,123 @@ "static_Call50000_ecrec" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_ecrecFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05a995c0", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "95000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4e68c50f1d55e4eae9fc8e5ad4c7e67d11028e71c2744e198105acebc45ea6be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4e68c50f1d55e4eae9fc8e5ad4c7e67d11028e71c2744e198105acebc45ea6be", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4e68c50f1d55e4eae9fc8e5ad4c7e67d11028e71c2744e198105acebc45ea6be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4e68c50f1d55e4eae9fc8e5ad4c7e67d11028e71c2744e198105acebc45ea6be", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x98a9c18380c2624cb8fc4b401420e9b185586a3d3617d8ed7a9b3177117e93b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x98a9c18380c2624cb8fc4b401420e9b185586a3d3617d8ed7a9b3177117e93b2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x16724f" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431675162497", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "93048948", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "0x5b61c3506080511015602a576000600061c350600060016101f4fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0x98a9c18380c2624cb8fc4b401420e9b185586a3d3617d8ed7a9b3177117e93b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x98a9c18380c2624cb8fc4b401420e9b185586a3d3617d8ed7a9b3177117e93b2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4e68c50f1d55e4eae9fc8e5ad4c7e67d11028e71c2744e198105acebc45ea6be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa6e861719720bffc51b5c19d318e904b3ca4ce0e73de561571b2995e72cedd82", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01cef637" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431704032105", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "64179340", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xffffffffffffffffffffffffffffffff", + "code" : "0x5b61c3506080511015602a576000600061c350600060016101f4fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", - "code" : "0x5b61c3506080511015602a576000600061c350600060016101f4fa6000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 500 1 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } }, - "0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", - "code" : "0x5b61c3506080511015602a576000600061c350600060016101f4fa6000526001608051016080526000565b608051602052", - "nonce" : "0x00", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 500 1 0 50000 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", "storage" : { } } @@ -141,14 +129,14 @@ "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x05a1f4a0" + "94500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call50000_identity.json b/GeneralStateTests/stStaticCall/static_Call50000_identity.json index 109a9436d..8b40a0f96 100644 --- a/GeneralStateTests/stStaticCall/static_Call50000_identity.json +++ b/GeneralStateTests/stStaticCall/static_Call50000_identity.json @@ -2,135 +2,123 @@ "static_Call50000_identity" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identityFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05429690", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "88250000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x950082ee6461cea4dc189c6338c60ed9c8658344c701ac25318e4701ec57b2ce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x950082ee6461cea4dc189c6338c60ed9c8658344c701ac25318e4701ec57b2ce", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x950082ee6461cea4dc189c6338c60ed9c8658344c701ac25318e4701ec57b2ce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x950082ee6461cea4dc189c6338c60ed9c8658344c701ac25318e4701ec57b2ce", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x821b561eb2fc794a36baf2db3d7eb4d04ef9312ecea1dc270d028881c233de5c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x821b561eb2fc794a36baf2db3d7eb4d04ef9312ecea1dc270d028881c233de5c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x14f4d7" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431681314841", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "86896604", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015602a576000600061c3506000600461061cfa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0x821b561eb2fc794a36baf2db3d7eb4d04ef9312ecea1dc270d028881c233de5c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x821b561eb2fc794a36baf2db3d7eb4d04ef9312ecea1dc270d028881c233de5c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x950082ee6461cea4dc189c6338c60ed9c8658344c701ac25318e4701ec57b2ce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x950082ee6461cea4dc189c6338c60ed9c8658344c701ac25318e4701ec57b2ce", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x14f4d7" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431681314841", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "86896604", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x5b61c3506080511015602a576000600061c3506000600461061cfa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015602a576000600061c3506000600461061cfa6000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 4 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } }, - "0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015602a576000600061c3506000600461061cfa6000526001608051016080526000565b608051602052", - "nonce" : "0x00", + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 1564 4 0 50000 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", "storage" : { } } @@ -141,14 +129,14 @@ "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x05429690" + "88250000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call50000_identity2.json b/GeneralStateTests/stStaticCall/static_Call50000_identity2.json index 6cd68e0ee..274e54c8d 100644 --- a/GeneralStateTests/stStaticCall/static_Call50000_identity2.json +++ b/GeneralStateTests/stStaticCall/static_Call50000_identity2.json @@ -2,135 +2,84 @@ "static_Call50000_identity2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_identity2Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05429690", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "88250000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x62677a239ceaf20855a7c43165a93af54133f52a3eee2bb329b9ae644fd7e5db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x62677a239ceaf20855a7c43165a93af54133f52a3eee2bb329b9ae644fd7e5db", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x62677a239ceaf20855a7c43165a93af54133f52a3eee2bb329b9ae644fd7e5db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x62677a239ceaf20855a7c43165a93af54133f52a3eee2bb329b9ae644fd7e5db", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x727d1d8785ebe9311f1d282a9c21b05b8749ed1f868733db22c70699c593a4dc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x727d1d8785ebe9311f1d282a9c21b05b8749ed1f868733db22c70699c593a4dc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x727d1d8785ebe9311f1d282a9c21b05b8749ed1f868733db22c70699c593a4dc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x727d1d8785ebe9311f1d282a9c21b05b8749ed1f868733db22c70699c593a4dc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x62677a239ceaf20855a7c43165a93af54133f52a3eee2bb329b9ae644fd7e5db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x62677a239ceaf20855a7c43165a93af54133f52a3eee2bb329b9ae644fd7e5db", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x14f4d7" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607431681314841", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "86896604", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "code" : "0x602a6001525b61c350608051101560305761c350600161c3506000600461061cfa6000556001608051016080526005565b608051600155600151600255", + "nonce" : "0x00", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x602a6001525b61c350608051101560305761c350600161c3506000600461061cfa6000556001608051016080526005565b608051600155600151600255", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) [ 1 ] 42 (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 4 0 50000 1 50000) ) [[ 1 ]] @i [[ 2 ]] @1 }", + "nonce" : "0", "storage" : { } }, - "0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x602a6001525b61c350608051101560305761c350600161c3506000600461061cfa6000526001608051016080526005565b608051602052600151604052", - "nonce" : "0x00", + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) [ 1 ] 42 (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 1564 4 0 50000 1 50000)) ) (MSTORE 32 @i) (MSTORE 64 @1 ) }", + "nonce" : "0", "storage" : { } } @@ -141,14 +90,14 @@ "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x05429690" + "88250000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call50000_rip160.json b/GeneralStateTests/stStaticCall/static_Call50000_rip160.json index 007a20728..98a256f4f 100644 --- a/GeneralStateTests/stStaticCall/static_Call50000_rip160.json +++ b/GeneralStateTests/stStaticCall/static_Call50000_rip160.json @@ -2,135 +2,86 @@ "static_Call50000_rip160" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_rip160Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xe9f2bf40", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3925000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2a8611d0d87e773018798469ea28e2d918a7b7a6d22922eed042c03f2d0e0970", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2a8611d0d87e773018798469ea28e2d918a7b7a6d22922eed042c03f2d0e0970", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2a8611d0d87e773018798469ea28e2d918a7b7a6d22922eed042c03f2d0e0970", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2a8611d0d87e773018798469ea28e2d918a7b7a6d22922eed042c03f2d0e0970", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xff18fc93b1ac218345d47ff468c282261a88fd4a86d356b81024535308bbb0ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xff18fc93b1ac218345d47ff468c282261a88fd4a86d356b81024535308bbb0ca", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xff18fc93b1ac218345d47ff468c282261a88fd4a86d356b81024535308bbb0ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xff18fc93b1ac218345d47ff468c282261a88fd4a86d356b81024535308bbb0ca", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2a8611d0d87e773018798469ea28e2d918a7b7a6d22922eed042c03f2d0e0970", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x2a8611d0d87e773018798469ea28e2d918a7b7a6d22922eed042c03f2d0e0970", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x03a7b579" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607427904514059", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "3863697386", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "code" : "0x5b61c3506080511015602b576000600061c3506000600362013178fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015602b576000600061c3506000600362013178fa6000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 78200 3 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } }, - "0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015602b576000600061c3506000600362013178fa6000526001608051016080526000565b608051602052", - "nonce" : "0x00", + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 78200 3 0 50000 0 0)) ) (MSTORE 32 @i) }", + "nonce" : "0", "storage" : { } } @@ -141,14 +92,14 @@ "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0xe9f2bf40" + "3925000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call50000_sha256.json b/GeneralStateTests/stStaticCall/static_Call50000_sha256.json index 89db7371a..3c0752cdd 100644 --- a/GeneralStateTests/stStaticCall/static_Call50000_sha256.json +++ b/GeneralStateTests/stStaticCall/static_Call50000_sha256.json @@ -2,135 +2,133 @@ "static_Call50000_sha256" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call50000_sha256Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xe9f2bf40", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3925000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x567dfc141047675ba9203a79fa7b198e2d596c57c3be2f57b06350c79d170196", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x567dfc141047675ba9203a79fa7b198e2d596c57c3be2f57b06350c79d170196", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x567dfc141047675ba9203a79fa7b198e2d596c57c3be2f57b06350c79d170196", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x567dfc141047675ba9203a79fa7b198e2d596c57c3be2f57b06350c79d170196", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7b8fc9c5eca2d59970b573bbc1f8afbf53fc7af82823d86eee6f07cf071ed9ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x7b8fc9c5eca2d59970b573bbc1f8afbf53fc7af82823d86eee6f07cf071ed9ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xa0a4cfd2" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607430538347108", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1229864337", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370505", + "code" : "0x5b61c3506080511015602b576000600061c3506000600262013178fa6000556001608051016080526000565b608051600155", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0xc350" + } } } - ], - "Homestead" : [ - { - "hash" : "0x7b8fc9c5eca2d59970b573bbc1f8afbf53fc7af82823d86eee6f07cf071ed9ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7b8fc9c5eca2d59970b573bbc1f8afbf53fc7af82823d86eee6f07cf071ed9ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaf00fbc3ebd221608c528fe17d937e0fe5d2ba954bfc81e5e13167b21aeaa27d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x8952830477bfcf66f7fdf134884f209728e591666336e55700f994e76b5b3b16", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000002" : { + "shouldnotexist" : "1" + }, + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xaf89c117" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "340282366920938463463374607430788232105", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "979979340", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370505", + "code" : "0x5b61c3506080511015602b576000600061c3506000600262013178fa6000526001608051016080526000565b608051602052", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015602b576000600061c3506000600262013178fa6000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 78200 2 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } }, - "0xcccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015602b576000600061c3506000600262013178fa6000526001608051016080526000565b608051602052", - "nonce" : "0x00", + "cccf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (MSTORE 0 (STATICCALL 78200 2 0 50000 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", "storage" : { } } @@ -141,14 +139,14 @@ "0x000000000000000000000000cccf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0xe9f2bf40" + "3925000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call50000bytesContract50_1.json b/GeneralStateTests/stStaticCall/static_Call50000bytesContract50_1.json index 349decaba..271ce3887 100644 --- a/GeneralStateTests/stStaticCall/static_Call50000bytesContract50_1.json +++ b/GeneralStateTests/stStaticCall/static_Call50000bytesContract50_1.json @@ -2,149 +2,147 @@ "static_Call50000bytesContract50_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_1Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xcd79195900", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x96a366cfe87cb1cb47987353e4d088bf7367830dc9b7e69fa047f9cc86856265", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x96a366cfe87cb1cb47987353e4d088bf7367830dc9b7e69fa047f9cc86856265", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x96a366cfe87cb1cb47987353e4d088bf7367830dc9b7e69fa047f9cc86856265", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x96a366cfe87cb1cb47987353e4d088bf7367830dc9b7e69fa047f9cc86856265", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xabb04dd35a37e4c301c300839a407015ab5e1653a4c35f31d5e7d8c99ae1f928", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xabb04dd35a37e4c301c300839a407015ab5e1653a4c35f31d5e7d8c99ae1f928", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x0335e44fe0" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x00", + "storage" : { + "0x00" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "868710963011", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0xabb04dd35a37e4c301c300839a407015ab5e1653a4c35f31d5e7d8c99ae1f928", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xabb04dd35a37e4c301c300839a407015ab5e1653a4c35f31d5e7d8c99ae1f928", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x96a366cfe87cb1cb47987353e4d088bf7367830dc9b7e69fa047f9cc86856265", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa08b43c3e259a8d3432cb92b7d2f0c640b484dfc455dc5289d1af966dca167b2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xcd78bc6eb4" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x00", + "storage" : { + "0x00" : "0" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "6109295", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", "code" : "0x6001600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b60326080511015603e57600060006000600073aaa50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280fa6000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (STATICCALL 88250000000 0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", "storage" : { } }, - "0xccc50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", + "ccc50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", "code" : "0x60016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016001016000", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xdddf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b60326080511015603e57600060006000600073ccc50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280fa6000526001608051016080526000565b608051602052", - "nonce" : "0x00", + "dddf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) (MSTORE 0 (STATICCALL 88250000000 0xccc50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0)) ) (MSTORE 32 @i) }", + "nonce" : "0", "storage" : { } } @@ -155,14 +153,14 @@ "0x000000000000000000000000dddf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0xcd79195900" + "882500000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call50000bytesContract50_2.json b/GeneralStateTests/stStaticCall/static_Call50000bytesContract50_2.json index 579264e48..6e5547c3f 100644 --- a/GeneralStateTests/stStaticCall/static_Call50000bytesContract50_2.json +++ b/GeneralStateTests/stStaticCall/static_Call50000bytesContract50_2.json @@ -2,149 +2,149 @@ "static_Call50000bytesContract50_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_2Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xcd79195900", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x955239ba7847cdf99778a9da50a5de483a73660d210829f6894e5addc222aaec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x955239ba7847cdf99778a9da50a5de483a73660d210829f6894e5addc222aaec", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x955239ba7847cdf99778a9da50a5de483a73660d210829f6894e5addc222aaec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x955239ba7847cdf99778a9da50a5de483a73660d210829f6894e5addc222aaec", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xce4e697d0442234f6ec3061e9924768d192e5005fcbc0d8e10ab5906e755db4f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xce4e697d0442234f6ec3061e9924768d192e5005fcbc0d8e10ab5906e755db4f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xcd78ea34de" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "3109445", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0xce4e697d0442234f6ec3061e9924768d192e5005fcbc0d8e10ab5906e755db4f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce4e697d0442234f6ec3061e9924768d192e5005fcbc0d8e10ab5906e755db4f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x955239ba7847cdf99778a9da50a5de483a73660d210829f6894e5addc222aaec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xfa73e2e4d1985baf99d13a849df2143f6fb40276d76c2227f35db6d1fbcf4a0d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x0335e44fe0" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "868710963011", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", "code" : "0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b60326080511015603e57600060006000600073aaa50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280fa6000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (STATICCALL 88250000000 0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", "storage" : { } }, - "0xccc50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", + "ccc50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", "code" : "0x60015b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xdddf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b60326080511015603e57600060006000600073ccc50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280fa6000526001608051016080526000565b608051602052", - "nonce" : "0x00", + "dddf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) (MSTORE 0 (STATICCALL 88250000000 0xccc50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", "storage" : { } } @@ -155,14 +155,14 @@ "0x000000000000000000000000dddf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0xcd79195900" + "882500000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Call50000bytesContract50_3.json b/GeneralStateTests/stStaticCall/static_Call50000bytesContract50_3.json index 2733d8285..4cef8e3e6 100644 --- a/GeneralStateTests/stStaticCall/static_Call50000bytesContract50_3.json +++ b/GeneralStateTests/stStaticCall/static_Call50000bytesContract50_3.json @@ -2,149 +2,147 @@ "static_Call50000bytesContract50_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Call50000bytesContract50_3Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xcd79195900", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "882500000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x294b77ce0e9a6f9549623d925c7d6e5131a340d27326cb80fe7b86daf755c61d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x294b77ce0e9a6f9549623d925c7d6e5131a340d27326cb80fe7b86daf755c61d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x294b77ce0e9a6f9549623d925c7d6e5131a340d27326cb80fe7b86daf755c61d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x294b77ce0e9a6f9549623d925c7d6e5131a340d27326cb80fe7b86daf755c61d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4da620110450866cb2b2c45dd9ae97131fb181039c05925a3465890a30169a00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x4da620110450866cb2b2c45dd9ae97131fb181039c05925a3465890a30169a00", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x0335e44fe0" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "868710963011", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x4da620110450866cb2b2c45dd9ae97131fb181039c05925a3465890a30169a00", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4da620110450866cb2b2c45dd9ae97131fb181039c05925a3465890a30169a00", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x294b77ce0e9a6f9549623d925c7d6e5131a340d27326cb80fe7b86daf755c61d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xbfeed8e5cef3e554409e2865e52faa420bca9eb0e8c86a5cc62d7567756357ad", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xcd7914e148" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "storage" : { + "0x00" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "312795", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "4503599627370495", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", + "aaa50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", "code" : "0x600161da8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b60326080511015603e57600060006000600073aaa50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280fa6000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) [[ 0 ]] (STATICCALL 88250000000 0xaaa50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", "storage" : { } }, - "0xccc50000fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", + "ccc50000fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", "code" : "0x600161da8e565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600101", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xdddf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b60326080511015603e57600060006000600073ccc50000fce5edbc8e2a8697c15331677e6ebf0b64148c1c2280fa6000526001608051016080526000565b608051602052", - "nonce" : "0x00", + "dddf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50) [i](+ @i 1) (MSTORE 0 (STATICCALL 88250000000 0xccc50000fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0)) ) (MSTORE 32 @i ) }", + "nonce" : "0", "storage" : { } } @@ -155,14 +153,14 @@ "0x000000000000000000000000dddf5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0xcd79195900" + "882500000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHas.json b/GeneralStateTests/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHas.json index 2d65f1547..cc5aa2f45 100644 --- a/GeneralStateTests/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHas.json +++ b/GeneralStateTests/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHas.json @@ -2,149 +2,111 @@ "static_CallAndCallcodeConsumeMoreGasThenTransactionHas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallAndCallcodeConsumeMoreGasThenTransactionHasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0a6c3402fe06dc0e6f70af7635a3456f263510a69a6793665402501ce48e57db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0a6c3402fe06dc0e6f70af7635a3456f263510a69a6793665402501ce48e57db", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0a6c3402fe06dc0e6f70af7635a3456f263510a69a6793665402501ce48e57db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0a6c3402fe06dc0e6f70af7635a3456f263510a69a6793665402501ce48e57db", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0a6c3402fe06dc0e6f70af7635a3456f263510a69a6793665402501ce48e57db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x0a6c3402fe06dc0e6f70af7635a3456f263510a69a6793665402501ce48e57db", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000103" : { + "code" : "0x6012600055", + "nonce" : "0x00", + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x08" : "0x00", + "0x09" : "0x00", + "0x0a" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x0a6c3402fe06dc0e6f70af7635a3456f263510a69a6793665402501ce48e57db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0a6c3402fe06dc0e6f70af7635a3456f263510a69a6793665402501ce48e57db", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0a6c3402fe06dc0e6f70af7635a3456f263510a69a6793665402501ce48e57db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x5ce6e42362f24ee3a630c7a5668b761f8d63f5e0bab65d3c0a31cf6a06877872", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "2000000000000000000000000000000000000103" : { + "code" : "0x6012600052", + "nonce" : "0x00", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x12", + "0x08" : "0x08aa2f", + "0x09" : "0x01", + "0x0a" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000103" : { - "balance" : "0x00", - "code" : "0x6012600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000103" : { + "balance" : "0", + "code" : "{ (SSTORE 0 0x12) } ", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000103" : { - "balance" : "0x00", - "code" : "0x6012600052", - "nonce" : "0x00", + "2000000000000000000000000000000000000103" : { + "balance" : "0", + "code" : "{ (MSTORE 0 0x12) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6008556000600060006000731000000000000000000000000000000000000103620927c0fa60095560006000600060006000731000000000000000000000000000000000000103620927c0f2600a55", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000103 0 0 0 0)) (SSTORE 10 (CALLCODE 600000 0x1000000000000000000000000000000000000103 0 0 0 0 0)) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6008556000600060006000732000000000000000000000000000000000000103620927c0fa60095560006000600060006000731000000000000000000000000000000000000103620927c0f2600a55", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 600000 0x2000000000000000000000000000000000000103 0 0 0 0)) (SSTORE 10 (CALLCODE 600000 0x1000000000000000000000000000000000000103 0 0 0 0 0)) }", + "nonce" : "0", "storage" : { } } @@ -155,14 +117,14 @@ "0x000000000000000000000000c94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHas.json b/GeneralStateTests/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHas.json index 4ed0da846..184e6a94f 100644 --- a/GeneralStateTests/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHas.json +++ b/GeneralStateTests/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHas.json @@ -2,163 +2,143 @@ "static_CallAskMoreGasOnDepth2ThenTransactionHas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallAskMoreGasOnDepth2ThenTransactionHasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xee649d3b09e8d08422f2077bb50db14b623db7f02c2991e9b791206e79e5f97f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee649d3b09e8d08422f2077bb50db14b623db7f02c2991e9b791206e79e5f97f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xee649d3b09e8d08422f2077bb50db14b623db7f02c2991e9b791206e79e5f97f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee649d3b09e8d08422f2077bb50db14b623db7f02c2991e9b791206e79e5f97f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xee649d3b09e8d08422f2077bb50db14b623db7f02c2991e9b791206e79e5f97f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xee649d3b09e8d08422f2077bb50db14b623db7f02c2991e9b791206e79e5f97f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x04df0e" + } + }, + "1000000000000000000000000000000000000107" : { + "storage" : { + "0x08" : "0x00", + "0x09" : "0x00" + } + }, + "1000000000000000000000000000000000000108" : { + "storage" : { + "0x08" : "0x00" + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x08" : "0x08aa2f", + "0x09" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xee649d3b09e8d08422f2077bb50db14b623db7f02c2991e9b791206e79e5f97f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee649d3b09e8d08422f2077bb50db14b623db7f02c2991e9b791206e79e5f97f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x066e481908ced482d7be5c5ac447d6b0d8ff64b7a966492005b89fb80c9f47ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xefd7d763a79a55208a7d78abfa9b08c51adbab6d5c244817225fc13c6cbd41c6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x07dd3b" + } + }, + "2000000000000000000000000000000000000107" : { + "storage" : { + "0x08" : "0x00", + "0x09" : "0x00" + } + }, + "2000000000000000000000000000000000000108" : { + "storage" : { + "0x08" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x08" : "0x08aa2f", + "0x09" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000107" : { - "balance" : "0x00", - "code" : "0x5a6008526000600060006000731000000000000000000000000000000000000108620927c0fa600952", - "nonce" : "0x00", + "1000000000000000000000000000000000000107" : { + "balance" : "0", + "code" : "{ (MSTORE 8 (GAS)) (MSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000108 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000108" : { - "balance" : "0x00", - "code" : "0x5a600855", - "nonce" : "0x00", + "1000000000000000000000000000000000000108" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS))} ", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000107" : { - "balance" : "0x00", - "code" : "0x5a6008526000600060006000732000000000000000000000000000000000000108620927c0fa600952", - "nonce" : "0x00", + "2000000000000000000000000000000000000107" : { + "balance" : "0", + "code" : "{ (MSTORE 8 (GAS)) (MSTORE 9 (STATICCALL 600000 0x2000000000000000000000000000000000000108 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000108" : { - "balance" : "0x00", - "code" : "0x5a600852", - "nonce" : "0x00", + "2000000000000000000000000000000000000108" : { + "balance" : "0", + "code" : "{ (MSTORE 8 (GAS))} ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600855600060006000600073100000000000000000000000000000000000010762030d40fa600955", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 200000 0x1000000000000000000000000000000000000107 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600855600060006000600073200000000000000000000000000000000000010762030d40fa600955", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SSTORE 8 (GAS)) (SSTORE 9 (STATICCALL 200000 0x2000000000000000000000000000000000000107 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } } @@ -169,14 +149,14 @@ "0x000000000000000000000000c94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallContractToCreateContractAndCallItOOG.json b/GeneralStateTests/stStaticCall/static_CallContractToCreateContractAndCallItOOG.json index ba17acd3e..16ff1a8f4 100644 --- a/GeneralStateTests/stStaticCall/static_CallContractToCreateContractAndCallItOOG.json +++ b/GeneralStateTests/stStaticCall/static_CallContractToCreateContractAndCallItOOG.json @@ -2,121 +2,86 @@ "static_CallContractToCreateContractAndCallItOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractAndCallItOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8f6166da7ff0b61763eb85f25c14764c14fcd106efd5f4fccc65bd6df8bb1893", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4721f9884714a841d6f824afaaa45256d898c7e4ebde40e49acaeffb7b930c0b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8f6166da7ff0b61763eb85f25c14764c14fcd106efd5f4fccc65bd6df8bb1893", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0x4721f9884714a841d6f824afaaa45256d898c7e4ebde40e49acaeffb7b930c0b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6", + "0x02" : "0x03" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } } } - ], - "Frontier" : [ - { - "hash" : "0x8f6166da7ff0b61763eb85f25c14764c14fcd106efd5f4fccc65bd6df8bb1893", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4721f9884714a841d6f824afaaa45256d898c7e4ebde40e49acaeffb7b930c0b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8f6166da7ff0b61763eb85f25c14764c14fcd106efd5f4fccc65bd6df8bb1893", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4721f9884714a841d6f824afaaa45256d898c7e4ebde40e49acaeffb7b930c0b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd8d75150011d6211cef6f1e60c35a9511b8828e49bc7b5449b71c17f0a730a21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x4721f9884714a841d6f824afaaa45256d898c7e4ebde40e49acaeffb7b930c0b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x00", + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x03e8", - "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f060005560006000600060006000546103e8fa506003600255", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "1000", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21) (STATICCALL 1000 (SLOAD 0) 0 0 0 0) [[ 2 ]] 3 }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +91,15 @@ "0x00" ], "gasLimit" : [ - "0x0318f8", - "0x0186a0" + "203000", + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallContractToCreateContractOOG.json b/GeneralStateTests/stStaticCall/static_CallContractToCreateContractOOG.json index 881138427..e994acf53 100644 --- a/GeneralStateTests/stStaticCall/static_CallContractToCreateContractOOG.json +++ b/GeneralStateTests/stStaticCall/static_CallContractToCreateContractOOG.json @@ -2,121 +2,53 @@ "static_CallContractToCreateContractOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe6d3e2bfd117cbb4f3e5efb274c2225866fd57d479aec8087c968c01b107a13e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe6d3e2bfd117cbb4f3e5efb274c2225866fd57d479aec8087c968c01b107a13e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe6d3e2bfd117cbb4f3e5efb274c2225866fd57d479aec8087c968c01b107a13e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe6d3e2bfd117cbb4f3e5efb274c2225866fd57d479aec8087c968c01b107a13e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe6d3e2bfd117cbb4f3e5efb274c2225866fd57d479aec8087c968c01b107a13e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe6d3e2bfd117cbb4f3e5efb274c2225866fd57d479aec8087c968c01b107a13e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe6d3e2bfd117cbb4f3e5efb274c2225866fd57d479aec8087c968c01b107a13e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe6d3e2bfd117cbb4f3e5efb274c2225866fd57d479aec8087c968c01b107a13e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2c79134a97727093a4682fbc2e9204c3fb28e2e3903d9c4f841928fee064e9b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0xc84a0708c5f3ddc2f1dd5b9320bd8a3efffb56263427c8a10bb4622caac36f42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x00", - "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f060005560006000600060006000546000fa", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "0", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3) [[0]](CREATE 1 11 21) (STATICCALL 0 (SLOAD 0) 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +58,15 @@ "0x00" ], "gasLimit" : [ - "0x01312d00" + "20000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallContractToCreateContractOOGBonusGas.json b/GeneralStateTests/stStaticCall/static_CallContractToCreateContractOOGBonusGas.json index e12eb93a7..3a3e95208 100644 --- a/GeneralStateTests/stStaticCall/static_CallContractToCreateContractOOGBonusGas.json +++ b/GeneralStateTests/stStaticCall/static_CallContractToCreateContractOOGBonusGas.json @@ -2,121 +2,61 @@ "static_CallContractToCreateContractOOGBonusGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractOOGBonusGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1833caf5b1e23a775de29ded27015b6598b721d92a72ab1bdaa22b5491199434", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0x6c6e760c271196e6252fda373ba04015f987efac67b193d315c29a1fc84876bf", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1833caf5b1e23a775de29ded27015b6598b721d92a72ab1bdaa22b5491199434", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6c6e760c271196e6252fda373ba04015f987efac67b193d315c29a1fc84876bf", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1833caf5b1e23a775de29ded27015b6598b721d92a72ab1bdaa22b5491199434", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6c6e760c271196e6252fda373ba04015f987efac67b193d315c29a1fc84876bf", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1833caf5b1e23a775de29ded27015b6598b721d92a72ab1bdaa22b5491199434", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6c6e760c271196e6252fda373ba04015f987efac67b193d315c29a1fc84876bf", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0f69087f9bc865b8d937ded93ecbcbe2ada8f0cd6a589a46e5103ce60a47efe9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6c6e760c271196e6252fda373ba04015f987efac67b193d315c29a1fc84876bf", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x70", - "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f060005560006000600060006000546000fa600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "112", + "code" : "{ (MSTORE 0 0x600c60005566602060406000f060205260076039f3) [[0]](CREATE 1 11 21) [[ 1 ]] (STATICCALL 0 (SLOAD 0) 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -126,15 +66,15 @@ "0x00" ], "gasLimit" : [ - "0x01312d00", - "0x013880" + "20000000", + "80000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalled.json b/GeneralStateTests/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalled.json index 506b28b48..e3967d1d8 100644 --- a/GeneralStateTests/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalled.json +++ b/GeneralStateTests/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalled.json @@ -2,81 +2,64 @@ "static_CallContractToCreateContractWhichWouldCreateContractIfCalled" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallContractToCreateContractWhichWouldCreateContractIfCalledFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4ed4b9a23923def65a28b6f44c715fdf9b1a3f502effa0d25aff3101febbc9aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6", + "0x01" : "0x00" + } + }, + "62c01474f089b07dae603491675dc5b5748f7049" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4ed4b9a23923def65a28b6f44c715fdf9b1a3f502effa0d25aff3101febbc9aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4ed4b9a23923def65a28b6f44c715fdf9b1a3f502effa0d25aff3101febbc9aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4ed4b9a23923def65a28b6f44c715fdf9b1a3f502effa0d25aff3101febbc9aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3a475fd5fd5f08047e26b671f03fa069825fd9e877c83b287c47a0a9837034be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x03e8", - "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f06000556000600060006000600054620249f0fa600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "//" : "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "balance" : "1000", + "code" : "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3) [[ 0 ]](CREATE 1 11 21) [[ 1 ]] (STATICCALL 150000 (SLOAD 0) 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +69,14 @@ "0x00" ], "gasLimit" : [ - "0x01312d00" + "20000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecover0.json b/GeneralStateTests/stStaticCall/static_CallEcrecover0.json index 1b6d01d8c..cadfabfa5 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecover0.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecover0.json @@ -2,81 +2,50 @@ "static_CallEcrecover0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd3d0c3e0d212e68f4aaa7a62f0bb7cbe61479e8e1e12371cff0d6f197cfb0d46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd3d0c3e0d212e68f4aaa7a62f0bb7cbe61479e8e1e12371cff0d6f197cfb0d46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd3d0c3e0d212e68f4aaa7a62f0bb7cbe61479e8e1e12371cff0d6f197cfb0d46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd3d0c3e0d212e68f4aaa7a62f0bb7cbe61479e8e1e12371cff0d6f197cfb0d46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc0766cd711cce47df53c541286ef89a59c3f52b7c7fdc2850cbe9f0d15ef1713", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960605260206080608060006001620493e0fa60025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecover0_0input.json b/GeneralStateTests/stStaticCall/static_CallEcrecover0_0input.json index db84ed2b0..a0926ab55 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecover0_0input.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecover0_0input.json @@ -2,401 +2,91 @@ "static_CallEcrecover0_0input" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_0inputFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : [ + 0, + 1, + 4, + 5, + 6, + 7 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x784e3abf6a1381aed9558fdefd5c9f2a1da92b2d160a834db7059457f5ae1442", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : 2, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x8209944e898f69a7bd10a23c839d341e935fd5ca", + "0x02" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x794950976edb121cd1626b45c4fc36f6e9c44d9e7078a0acfdcf6ef910bca734", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7d503624720a6974d9588a28eab7896b9bc14d484c56b4538ec812e7b322adb4", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf10664ff0a360ebb02a35201a66cfc657c05304409a40d397701ed92857980f0", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd629f52badfd7e7e68ec7e6b5dcd80e3cb3bcc43813356a8403c3b4ff654868e", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x364749f521a758206366bbff9951ebd16918d121b934dad81afbbe6ef0aa258b", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x75887223f82ad361cc605efc418c8c6102d0e7764cebe727326e07eaa9f508cd", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xde7533eb5b5755c5716216a5af1efb01956d31c58cf0320af5a3b7459e7b8a54", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa5e31ee199e2bcb29ec91bcdfa7f12fb60afdab24f6a603e85dcd255fa6e0878", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9de823ff33e4edd133a73db899d5a4741c247c8c2c9f10235f4c652b6b2abb49", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : 3, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x4300a157335cb7c9fc9423e011d7dd51090d093f", + "0x02" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6020608060806000600035620493e0fa60025560a060020a60805106600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (STATICCALL 300000 (CALLDATALOAD 0) 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -414,14 +104,14 @@ "0x0000000000000000000000000000000000000000000000000000000000000008" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecover0_Gas2999.json b/GeneralStateTests/stStaticCall/static_CallEcrecover0_Gas2999.json index 52df93154..2f6b593fe 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecover0_Gas2999.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecover0_Gas2999.json @@ -2,81 +2,48 @@ "static_CallEcrecover0_Gas2999" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_Gas2999Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb23471978477f13dc35c7527021fd0aeacc7960276dad90167ebdd32b9397b18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb23471978477f13dc35c7527021fd0aeacc7960276dad90167ebdd32b9397b18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb23471978477f13dc35c7527021fd0aeacc7960276dad90167ebdd32b9397b18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb23471978477f13dc35c7527021fd0aeacc7960276dad90167ebdd32b9397b18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6fa90f22647b5de361cbbf884ac9371af5217e477a73a87a6de5acd4eb7d55ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960605260206080608060006001610bb7fa60025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 2999 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecover0_NoGas.json b/GeneralStateTests/stStaticCall/static_CallEcrecover0_NoGas.json index 8a4c08c88..f0fd9ae25 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecover0_NoGas.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecover0_NoGas.json @@ -2,81 +2,46 @@ "static_CallEcrecover0_NoGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_NoGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd55da515effa2d9ec777f9e25e7e96730b25b52037f9b1b941c2405eecaccf68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "37063" } } - ], - "EIP158" : [ - { - "hash" : "0xd55da515effa2d9ec777f9e25e7e96730b25b52037f9b1b941c2405eecaccf68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd55da515effa2d9ec777f9e25e7e96730b25b52037f9b1b941c2405eecaccf68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd55da515effa2d9ec777f9e25e7e96730b25b52037f9b1b941c2405eecaccf68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa3d80dd4832c8359f2fac4635f36c90b2850deba982b96eccd67a76ab0976359", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060016000fa60025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 0 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +51,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecover0_completeReturnValue.json b/GeneralStateTests/stStaticCall/static_CallEcrecover0_completeReturnValue.json index b8f7e6324..dd7d1981d 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecover0_completeReturnValue.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecover0_completeReturnValue.json @@ -2,81 +2,49 @@ "static_CallEcrecover0_completeReturnValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_completeReturnValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7ef407e23e9b2d0af6706bad476d954944a694e6cd9b5d97fe11a0114705aee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7ef407e23e9b2d0af6706bad476d954944a694e6cd9b5d97fe11a0114705aee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7ef407e23e9b2d0af6706bad476d954944a694e6cd9b5d97fe11a0114705aee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7ef407e23e9b2d0af6706bad476d954944a694e6cd9b5d97fe11a0114705aee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbc559a36c4aadc916353ea77a592eb8543ea5e5c7dbdb503a3d5905bd23e07d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549606052602060806080600060016132c8fa600255608051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 13000 1 0 128 128 32) [[ 0 ]] (MLOAD 128) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecover0_gas3000.json b/GeneralStateTests/stStaticCall/static_CallEcrecover0_gas3000.json index df57840d7..758c8442b 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecover0_gas3000.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecover0_gas3000.json @@ -2,81 +2,50 @@ "static_CallEcrecover0_gas3000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_gas3000Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x74c17117e3a62f421dab40b801e2f47b39ebb858c3019e26c686e1d3bbacbea0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x74c17117e3a62f421dab40b801e2f47b39ebb858c3019e26c686e1d3bbacbea0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x74c17117e3a62f421dab40b801e2f47b39ebb858c3019e26c686e1d3bbacbea0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x74c17117e3a62f421dab40b801e2f47b39ebb858c3019e26c686e1d3bbacbea0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9cfc00bb65264d168cd7f2d5a3e365c9990fb3c02759217096ed0c3c98395ccb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960605260206080608060006001610bb8fa60025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 3000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecover0_overlappingInputOutput.json b/GeneralStateTests/stStaticCall/static_CallEcrecover0_overlappingInputOutput.json index 13bd5c64b..83b0f82aa 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecover0_overlappingInputOutput.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecover0_overlappingInputOutput.json @@ -2,81 +2,50 @@ "static_CallEcrecover0_overlappingInputOutput" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover0_overlappingInputOutputFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4b0269553ddbb2fba201b6f7d9260956a9553f46db71647f9955ac257dff23a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4b0269553ddbb2fba201b6f7d9260956a9553f46db71647f9955ac257dff23a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4b0269553ddbb2fba201b6f7d9260956a9553f46db71647f9955ac257dff23a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4b0269553ddbb2fba201b6f7d9260956a9553f46db71647f9955ac257dff23a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5d5bf7358392768035de3ebfec5f5f4fd5ff3c43f23b06b6717c5869ec6eb39d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960605260206040608060006001620493e0fa60025560a060020a604051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 64 32) [[ 0 ]] (MOD (MLOAD 64) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecover1.json b/GeneralStateTests/stStaticCall/static_CallEcrecover1.json index 8d7e11668..8521500cd 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecover1.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecover1.json @@ -2,81 +2,48 @@ "static_CallEcrecover1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe7403c3f365e18a1f58fe766d90a32ab499e29b3997f368f050693b491a7d8fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe7403c3f365e18a1f58fe766d90a32ab499e29b3997f368f050693b491a7d8fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe7403c3f365e18a1f58fe766d90a32ab499e29b3997f368f050693b491a7d8fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe7403c3f365e18a1f58fe766d90a32ab499e29b3997f368f050693b491a7d8fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe9fcb7c8aeb3a2eca513fd41fa5948e750bd53e52d12acd328545570f24c1621", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c60005260016020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960605260206080608060006001620186a0fa60025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 1) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 100000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecover2.json b/GeneralStateTests/stStaticCall/static_CallEcrecover2.json index 61245a34d..27c52e132 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecover2.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecover2.json @@ -2,81 +2,48 @@ "static_CallEcrecover2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7467f46cbe95422bec05b8baf48bc85ff59ca9b5a852d41db9747f13cc2ce5d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7467f46cbe95422bec05b8baf48bc85ff59ca9b5a852d41db9747f13cc2ce5d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7467f46cbe95422bec05b8baf48bc85ff59ca9b5a852d41db9747f13cc2ce5d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7467f46cbe95422bec05b8baf48bc85ff59ca9b5a852d41db9747f13cc2ce5d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9cc5d9fe55255b87ef719275720c571563f288a3b4687af9774e848d64a26278", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6021527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960415260206061606160006001620186a0fa60025560a060020a606151066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 33 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 65 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 100000 1 0 97 97 32) [[ 0 ]] (MOD (MLOAD 97) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecover3.json b/GeneralStateTests/stStaticCall/static_CallEcrecover3.json index dc4119b63..227a11388 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecover3.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecover3.json @@ -2,81 +2,49 @@ "static_CallEcrecover3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb1eb37db02f3e7d25cf8b136924188aaf271ba3a007d51f72c972a0c1eac3ac7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe4319f4b631c6d0fcfc84045dbcb676865fe5e13", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb1eb37db02f3e7d25cf8b136924188aaf271ba3a007d51f72c972a0c1eac3ac7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb1eb37db02f3e7d25cf8b136924188aaf271ba3a007d51f72c972a0c1eac3ac7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb1eb37db02f3e7d25cf8b136924188aaf271ba3a007d51f72c972a0c1eac3ac7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1685532268a67f09a17e141fa589007ffa95e0f50c36eee15aeb704b338ad638", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9600052601b6020527f6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a6040527f37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d460605260206080608060006001620186a0fa60025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9) (MSTORE 32 27) (MSTORE 64 0x6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a) (MSTORE 96 0x37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4) [[ 2 ]] (STATICCALL 100000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecover80.json b/GeneralStateTests/stStaticCall/static_CallEcrecover80.json index 533d35817..04d824c8e 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecover80.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecover80.json @@ -2,81 +2,50 @@ "static_CallEcrecover80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecover80Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x44a1b610eec16ce7ca34fa2bb4c01f130e614c433a05b0881516faed1b8e9571", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x44a1b610eec16ce7ca34fa2bb4c01f130e614c433a05b0881516faed1b8e9571", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x44a1b610eec16ce7ca34fa2bb4c01f130e614c433a05b0881516faed1b8e9571", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x44a1b610eec16ce7ca34fa2bb4c01f130e614c433a05b0881516faed1b8e9571", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc9596250ac5dedb939b53d53c94c12f9a18c934411bc1200a50d3a2f9a992aaf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7ec547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527eb1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527eb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960605260206080608060006001620493e0fa60025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecoverCheckLength.json b/GeneralStateTests/stStaticCall/static_CallEcrecoverCheckLength.json index 6218fa3b0..7d262ef89 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecoverCheckLength.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecoverCheckLength.json @@ -2,81 +2,50 @@ "static_CallEcrecoverCheckLength" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc4a9112f901b7345614d1a6c57ffc7537f8968d68a77bfcd9920594dab2496e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0xa0", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc4a9112f901b7345614d1a6c57ffc7537f8968d68a77bfcd9920594dab2496e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc4a9112f901b7345614d1a6c57ffc7537f8968d68a77bfcd9920594dab2496e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc4a9112f901b7345614d1a6c57ffc7537f8968d68a77bfcd9920594dab2496e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x73cadf7d1d0827e0171a688c6719a6a59375ca75e576a20639aa7940288a0562", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f11223344556677889900112233445566778899001122334455667788990011226080527f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960605260206080608060006001620493e0fa60025560805160005559600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecoverCheckLengthWrongV.json b/GeneralStateTests/stStaticCall/static_CallEcrecoverCheckLengthWrongV.json index 38d7fc6ea..f8f52d981 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecoverCheckLengthWrongV.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecoverCheckLengthWrongV.json @@ -2,81 +2,50 @@ "static_CallEcrecoverCheckLengthWrongV" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverCheckLengthWrongVFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd9492fcbae9f5da4bd07c2866a3f0b2925f72319d15786ce957f7aafc60b06eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x1122334455667788990011223344556677889900112233445566778899001122", + "0x01" : "0xa0", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd9492fcbae9f5da4bd07c2866a3f0b2925f72319d15786ce957f7aafc60b06eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd9492fcbae9f5da4bd07c2866a3f0b2925f72319d15786ce957f7aafc60b06eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd9492fcbae9f5da4bd07c2866a3f0b2925f72319d15786ce957f7aafc60b06eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x87ab171207323f141ccf06a0a693079d22efa8c115e236bab3966c27e539af94", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f11223344556677889900112233445566778899001122334455667788990011226080527f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601d6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960605260206080608060006001620493e0fa60025560805160005559600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 128 0x1122334455667788990011223344556677889900112233445566778899001122) (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 29) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MLOAD 128) [[ 1 ]] (MSIZE) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecoverH_prefixed0.json b/GeneralStateTests/stStaticCall/static_CallEcrecoverH_prefixed0.json index da9790187..0c3764512 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecoverH_prefixed0.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecoverH_prefixed0.json @@ -2,81 +2,50 @@ "static_CallEcrecoverH_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverH_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x51aa88b7ca76289d0112ae25f821b14742592e7b8af9e5fffc34259cd9e9aecf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa0b29af6a56d6cfef6415cb195ccbe540e006d0a", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x51aa88b7ca76289d0112ae25f821b14742592e7b8af9e5fffc34259cd9e9aecf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x51aa88b7ca76289d0112ae25f821b14742592e7b8af9e5fffc34259cd9e9aecf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x51aa88b7ca76289d0112ae25f821b14742592e7b8af9e5fffc34259cd9e9aecf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x082d7580151247cee75756efdd6fa50d8a849aac0cfebc129b09d3266832c641", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7ec547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960605260206080608060006001620493e0fa60025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecoverR_prefixed0.json b/GeneralStateTests/stStaticCall/static_CallEcrecoverR_prefixed0.json index 768cc6cd6..c743e0979 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecoverR_prefixed0.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecoverR_prefixed0.json @@ -2,81 +2,50 @@ "static_CallEcrecoverR_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverR_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xad2775bf3d515f319e463edf23d7a32584f9a2a313be644247d249b31cb0e688", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xad2775bf3d515f319e463edf23d7a32584f9a2a313be644247d249b31cb0e688", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xad2775bf3d515f319e463edf23d7a32584f9a2a313be644247d249b31cb0e688", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xad2775bf3d515f319e463edf23d7a32584f9a2a313be644247d249b31cb0e688", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3493319c47a153a206c9ee150d17d8cdfbc8c18f8d3e0c3c947f8c2e3279e884", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527eb1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960605260206080608060006001620493e0fa60025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x00b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecoverS_prefixed0.json b/GeneralStateTests/stStaticCall/static_CallEcrecoverS_prefixed0.json index 015418541..e3d31c72d 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecoverS_prefixed0.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecoverS_prefixed0.json @@ -2,81 +2,50 @@ "static_CallEcrecoverS_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverS_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3879d91fd473a97fca256ab5fb364bf508072fab0ce0400de47122f08a513c28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xb4950a7fad428434b11c357fa6d4b4bcd3096a5d", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x3879d91fd473a97fca256ab5fb364bf508072fab0ce0400de47122f08a513c28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3879d91fd473a97fca256ab5fb364bf508072fab0ce0400de47122f08a513c28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3879d91fd473a97fca256ab5fb364bf508072fab0ce0400de47122f08a513c28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb1cc5901800a268c027f54d1b870bceef81d12e4cadae0a1eaf4a23184e123ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527eb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960605260206080608060006001620493e0fa60025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0x00b940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallEcrecoverV_prefixed0.json b/GeneralStateTests/stStaticCall/static_CallEcrecoverV_prefixed0.json index a04e7a6e2..aca7c44b1 100644 --- a/GeneralStateTests/stStaticCall/static_CallEcrecoverV_prefixed0.json +++ b/GeneralStateTests/stStaticCall/static_CallEcrecoverV_prefixed0.json @@ -2,81 +2,50 @@ "static_CallEcrecoverV_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallEcrecoverV_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd3d0c3e0d212e68f4aaa7a62f0bb7cbe61479e8e1e12371cff0d6f197cfb0d46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd3d0c3e0d212e68f4aaa7a62f0bb7cbe61479e8e1e12371cff0d6f197cfb0d46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd3d0c3e0d212e68f4aaa7a62f0bb7cbe61479e8e1e12371cff0d6f197cfb0d46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd3d0c3e0d212e68f4aaa7a62f0bb7cbe61479e8e1e12371cff0d6f197cfb0d46", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc0766cd711cce47df53c541286ef89a59c3f52b7c7fdc2850cbe9f0d15ef1713", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c454960605260206080608060006001620493e0fa60025560a060020a608051066000556000543214600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 0x001c) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (STATICCALL 300000 1 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x37ba90" + "3652240" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallGoesOOGOnSecondLevel.json b/GeneralStateTests/stStaticCall/static_CallGoesOOGOnSecondLevel.json index ccf0598c4..37b7d3124 100644 --- a/GeneralStateTests/stStaticCall/static_CallGoesOOGOnSecondLevel.json +++ b/GeneralStateTests/stStaticCall/static_CallGoesOOGOnSecondLevel.json @@ -2,95 +2,69 @@ "static_CallGoesOOGOnSecondLevel" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevelFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc8c5e72520501c7c79d4743428d8a56185862a68ef0effe80e329a3acce1c323", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000110" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000111" : { + "storage" : { + } + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc8c5e72520501c7c79d4743428d8a56185862a68ef0effe80e329a3acce1c323", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc8c5e72520501c7c79d4743428d8a56185862a68ef0effe80e329a3acce1c323", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc8c5e72520501c7c79d4743428d8a56185862a68ef0effe80e329a3acce1c323", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc8c5e72520501c7c79d4743428d8a56185862a68ef0effe80e329a3acce1c323", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000110" : { - "balance" : "0x00", - "code" : "0x5a6008526000600060006000731000000000000000000000000000000000000111620927c0fa600952", - "nonce" : "0x00", + "1000000000000000000000000000000000000110" : { + "balance" : "0", + "code" : "{ (MSTORE 8 (GAS)) (MSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000111 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000111" : { - "balance" : "0x00", - "code" : "0x600060006000f050600060006000f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000111" : { + "balance" : "0", + "code" : "{ (CREATE 0 0 0) (CREATE 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000731000000000000000000000000000000000000110620927c0fa6009555a600a55", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SSTORE 9 (STATICCALL 600000 0x1000000000000000000000000000000000000110 0 0 0 0)) [[ 10 ]] (GAS) } ", + "nonce" : "0", "storage" : { } } @@ -100,14 +74,14 @@ "" ], "gasLimit" : [ - "0x035b60" + "220000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallGoesOOGOnSecondLevel2.json b/GeneralStateTests/stStaticCall/static_CallGoesOOGOnSecondLevel2.json index cceb07937..1f9578c18 100644 --- a/GeneralStateTests/stStaticCall/static_CallGoesOOGOnSecondLevel2.json +++ b/GeneralStateTests/stStaticCall/static_CallGoesOOGOnSecondLevel2.json @@ -2,142 +2,70 @@ "static_CallGoesOOGOnSecondLevel2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallGoesOOGOnSecondLevel2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xce2efed7e8fcca50548d61fa5c1ee71d8243b2065c2339414ba4dc2af3df9246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce2efed7e8fcca50548d61fa5c1ee71d8243b2065c2339414ba4dc2af3df9246", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xce2efed7e8fcca50548d61fa5c1ee71d8243b2065c2339414ba4dc2af3df9246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce2efed7e8fcca50548d61fa5c1ee71d8243b2065c2339414ba4dc2af3df9246", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xce2efed7e8fcca50548d61fa5c1ee71d8243b2065c2339414ba4dc2af3df9246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce2efed7e8fcca50548d61fa5c1ee71d8243b2065c2339414ba4dc2af3df9246", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xce2efed7e8fcca50548d61fa5c1ee71d8243b2065c2339414ba4dc2af3df9246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xce2efed7e8fcca50548d61fa5c1ee71d8243b2065c2339414ba4dc2af3df9246", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xce2efed7e8fcca50548d61fa5c1ee71d8243b2065c2339414ba4dc2af3df9246", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xce2efed7e8fcca50548d61fa5c1ee71d8243b2065c2339414ba4dc2af3df9246", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000113" : { - "balance" : "0x00", - "code" : "0x5a6008526000600060006000600035620927c0fa600952", - "nonce" : "0x00", + "1000000000000000000000000000000000000113" : { + "balance" : "0", + "code" : "{ (MSTORE 8 (GAS)) (MSTORE 9 (STATICCALL 600000 (CALLDATALOAD 0) 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000114" : { - "balance" : "0x00", - "code" : "0x6001600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000114" : { + "balance" : "0", + "code" : "{ (SSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000114" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000114" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000356000526000600060206000731000000000000000000000000000000000000113620927c0fa6000555a600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 600000 0x1000000000000000000000000000000000000113 0 32 0 0) [[ 1 ]] (GAS) } ", + "nonce" : "0", "storage" : { } } @@ -148,14 +76,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000114" ], "gasLimit" : [ - "0x027100" + "160000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallIdentitiy_1.json b/GeneralStateTests/stStaticCall/static_CallIdentitiy_1.json index 56345c4bd..8751ed3f9 100644 --- a/GeneralStateTests/stStaticCall/static_CallIdentitiy_1.json +++ b/GeneralStateTests/stStaticCall/static_CallIdentitiy_1.json @@ -2,81 +2,49 @@ "static_CallIdentitiy_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentitiy_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1b309cfbb8f1c485c76cf0521e98ed893e6f59b0f058fed1ccc7d62b26877c8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1b309cfbb8f1c485c76cf0521e98ed893e6f59b0f058fed1ccc7d62b26877c8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1b309cfbb8f1c485c76cf0521e98ed893e6f59b0f058fed1ccc7d62b26877c8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1b309cfbb8f1c485c76cf0521e98ed893e6f59b0f058fed1ccc7d62b26877c8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x563561c079e52958143982b134dc2394b40365344cc662c606fc029e3fe03aef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x602060006000600060046101f4fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (STATICCALL 500 4 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallIdentity_1_nonzeroValue.json b/GeneralStateTests/stStaticCall/static_CallIdentity_1_nonzeroValue.json index c2c9194ae..fc3253da3 100644 --- a/GeneralStateTests/stStaticCall/static_CallIdentity_1_nonzeroValue.json +++ b/GeneralStateTests/stStaticCall/static_CallIdentity_1_nonzeroValue.json @@ -2,81 +2,52 @@ "static_CallIdentity_1_nonzeroValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_1_nonzeroValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdc7c1a80c53ad8ce60499122eaeacf8981d19145b7d17ac65feec14b3aea5bf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000004" : { + "balance" : "19" + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdc7c1a80c53ad8ce60499122eaeacf8981d19145b7d17ac65feec14b3aea5bf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc7c1a80c53ad8ce60499122eaeacf8981d19145b7d17ac65feec14b3aea5bf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc7c1a80c53ad8ce60499122eaeacf8981d19145b7d17ac65feec14b3aea5bf4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1acc91cf37d1f793279b255ade1a18876a2ea1405507f6c41a92ec3454d9b8b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0bebc200", - "code" : "0x6020600060006000600462030d40fa60025560006000600060006013600461c350f150600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "200000000", + "code" : "{ [[ 2 ]] (STATICCALL 200000 4 0 0 0 32) (CALL 50000 4 0x13 0 0 0 0) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +57,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallIdentity_2.json b/GeneralStateTests/stStaticCall/static_CallIdentity_2.json index 89f3969c8..97c6ce167 100644 --- a/GeneralStateTests/stStaticCall/static_CallIdentity_2.json +++ b/GeneralStateTests/stStaticCall/static_CallIdentity_2.json @@ -2,81 +2,49 @@ "static_CallIdentity_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x738c718ae5c02cbbae1885055503cf2cc3eb105c91ba4881fee772c7c1946403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x000000000000000000000000000000000000000000000000000000f34578907f", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x738c718ae5c02cbbae1885055503cf2cc3eb105c91ba4881fee772c7c1946403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x738c718ae5c02cbbae1885055503cf2cc3eb105c91ba4881fee772c7c1946403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x738c718ae5c02cbbae1885055503cf2cc3eb105c91ba4881fee772c7c1946403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5e349a2a63c9b5d787d135c31196e9d4d372d53014c5b61d70f15b677f2de457", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f600052602060006025600060046101f4fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 4 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallIdentity_3.json b/GeneralStateTests/stStaticCall/static_CallIdentity_3.json index 843d0f451..c2caad7df 100644 --- a/GeneralStateTests/stStaticCall/static_CallIdentity_3.json +++ b/GeneralStateTests/stStaticCall/static_CallIdentity_3.json @@ -2,81 +2,49 @@ "static_CallIdentity_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x738c718ae5c02cbbae1885055503cf2cc3eb105c91ba4881fee772c7c1946403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x000000000000000000000000000000000000000000000000000000f34578907f", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x738c718ae5c02cbbae1885055503cf2cc3eb105c91ba4881fee772c7c1946403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x738c718ae5c02cbbae1885055503cf2cc3eb105c91ba4881fee772c7c1946403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x738c718ae5c02cbbae1885055503cf2cc3eb105c91ba4881fee772c7c1946403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5e349a2a63c9b5d787d135c31196e9d4d372d53014c5b61d70f15b677f2de457", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f600052602060006025600060046101f4fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 4 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallIdentity_4.json b/GeneralStateTests/stStaticCall/static_CallIdentity_4.json index 2246adae5..9c422bc49 100644 --- a/GeneralStateTests/stStaticCall/static_CallIdentity_4.json +++ b/GeneralStateTests/stStaticCall/static_CallIdentity_4.json @@ -2,81 +2,49 @@ "static_CallIdentity_4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc02afa598221dfcc67b57d94392f1bdec77d6c6c97a31a688dbd77712258d49c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc02afa598221dfcc67b57d94392f1bdec77d6c6c97a31a688dbd77712258d49c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc02afa598221dfcc67b57d94392f1bdec77d6c6c97a31a688dbd77712258d49c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc02afa598221dfcc67b57d94392f1bdec77d6c6c97a31a688dbd77712258d49c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6f61a288aaa6cf0f91f5db2a208b2191bbcbbc6fae8f5a68a523f16db481e8f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052602060006020600060046064fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 100 4 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallIdentity_4_gas17.json b/GeneralStateTests/stStaticCall/static_CallIdentity_4_gas17.json index e8d7d9311..31617f965 100644 --- a/GeneralStateTests/stStaticCall/static_CallIdentity_4_gas17.json +++ b/GeneralStateTests/stStaticCall/static_CallIdentity_4_gas17.json @@ -2,81 +2,49 @@ "static_CallIdentity_4_gas17" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas17Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x985db4a8400c02f02b535eaba85ed7cf930e13d5828d4de3a88826fcc15899a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x985db4a8400c02f02b535eaba85ed7cf930e13d5828d4de3a88826fcc15899a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x985db4a8400c02f02b535eaba85ed7cf930e13d5828d4de3a88826fcc15899a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x985db4a8400c02f02b535eaba85ed7cf930e13d5828d4de3a88826fcc15899a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x702d6ea9e171e585329073d6b660b83ac1b6e5b82bd09966240057715f726dd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052602060006020600060046011fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 17 4 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallIdentity_4_gas18.json b/GeneralStateTests/stStaticCall/static_CallIdentity_4_gas18.json index fde3b46b0..280b4c81d 100644 --- a/GeneralStateTests/stStaticCall/static_CallIdentity_4_gas18.json +++ b/GeneralStateTests/stStaticCall/static_CallIdentity_4_gas18.json @@ -2,81 +2,49 @@ "static_CallIdentity_4_gas18" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_4_gas18Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdbfe7801bc973efa3820bbf4c87c85eea0e91a433d125011c696a0185c4847ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdbfe7801bc973efa3820bbf4c87c85eea0e91a433d125011c696a0185c4847ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdbfe7801bc973efa3820bbf4c87c85eea0e91a433d125011c696a0185c4847ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdbfe7801bc973efa3820bbf4c87c85eea0e91a433d125011c696a0185c4847ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd10cacc819efd8713aa49c1c326f9cbcdfc0ca044e4dbc66517c79d38bc88b21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052602060006020600060046012fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 18 4 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallIdentity_5.json b/GeneralStateTests/stStaticCall/static_CallIdentity_5.json index 8a70279ed..7278fe9eb 100644 --- a/GeneralStateTests/stStaticCall/static_CallIdentity_5.json +++ b/GeneralStateTests/stStaticCall/static_CallIdentity_5.json @@ -2,81 +2,48 @@ "static_CallIdentity_5" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallIdentity_5Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xac3de1b731147cf42d87c183d1ff094d9e70b182a80bc9287dc3a7661870f550", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0xac3de1b731147cf42d87c183d1ff094d9e70b182a80bc9287dc3a7661870f550", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xac3de1b731147cf42d87c183d1ff094d9e70b182a80bc9287dc3a7661870f550", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xac3de1b731147cf42d87c183d1ff094d9e70b182a80bc9287dc3a7661870f550", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7f5a835d204101b5635403c300e600e901e10f0328cc0473e5320167ef83232e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000620f424060006004610258fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 600 4 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallLoseGasOOG.json b/GeneralStateTests/stStaticCall/static_CallLoseGasOOG.json index 42bd731cd..eab435a2a 100644 --- a/GeneralStateTests/stStaticCall/static_CallLoseGasOOG.json +++ b/GeneralStateTests/stStaticCall/static_CallLoseGasOOG.json @@ -2,88 +2,56 @@ "static_CallLoseGasOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallLoseGasOOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4f985561c68b486a8fefad080ea5383a17cb5660282b71ec765b68651cf32aa6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01", + "0x02" : "0x03e9" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4f985561c68b486a8fefad080ea5383a17cb5660282b71ec765b68651cf32aa6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4f985561c68b486a8fefad080ea5383a17cb5660282b71ec765b68651cf32aa6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4f985561c68b486a8fefad080ea5383a17cb5660282b71ec765b68651cf32aa6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe8031a5e694e8b45a6abc93652b190e8d32492fa310593ddb7e2d7819f51fe9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0400", - "code" : "0x600160005401600055600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b620186a060005402600101fa6001556103e860005402600101600255", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1024", + "code" : "{ [[ 0 ]] (ADD @@0 1) [[ 1 ]] (STATICCALL (ADD 1(MUL @@0 100000)) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[ 2 ]] (ADD 1(MUL @@0 1000)) }", + "nonce" : "0", "storage" : { } } @@ -95,12 +63,12 @@ "gasLimit" : [ "0x7fffffffffffffff" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRecursiveBomb0.json b/GeneralStateTests/stStaticCall/static_CallRecursiveBomb0.json index 52df10b30..00bd619ea 100644 --- a/GeneralStateTests/stStaticCall/static_CallRecursiveBomb0.json +++ b/GeneralStateTests/stStaticCall/static_CallRecursiveBomb0.json @@ -2,88 +2,59 @@ "static_CallRecursiveBomb0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9bacbf7461a436c8216e296ee488edd0fb155bbed9b1d136de5793a4217c480f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x025406f836" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x9bacbf7461a436c8216e296ee488edd0fb155bbed9b1d136de5793a4217c480f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9bacbf7461a436c8216e296ee488edd0fb155bbed9b1d136de5793a4217c480f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9bacbf7461a436c8216e296ee488edd0fb155bbed9b1d136de5793a4217c480f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa90d701bed6b2ea0a80f1c099e32aa34ea1797cfe076a56d1615196b1812c7c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x77359400", - "code" : "0x600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b56305f5e100fa6000555a600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000", + "code" : "{ [[ 0 ]] (STATICCALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160005101600052600060006000600030612af85a03fa", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (+ (MLOAD 0) 1)) (STATICCALL (- (GAS) 11000) (ADDRESS) 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +64,14 @@ "" ], "gasLimit" : [ - "0x02540be400" + "10000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepth.json b/GeneralStateTests/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepth.json index 5ff37258c..64a10b0b9 100644 --- a/GeneralStateTests/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepth.json +++ b/GeneralStateTests/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepth.json @@ -2,88 +2,55 @@ "static_CallRecursiveBomb0_OOG_atMaxCallDepth" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x174876e800", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf5db24c4f329602358342ef3a44c8d5362d1b030afa84d4ebf67cdab7b6caa8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x01" : "0xb8cf2d1b" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf5db24c4f329602358342ef3a44c8d5362d1b030afa84d4ebf67cdab7b6caa8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6014f82d8ead096eec81adeaae7e06f2457ef1ee19ab2ccf5e2cb5b5abdc75ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6014f82d8ead096eec81adeaae7e06f2457ef1ee19ab2ccf5e2cb5b5abdc75ec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x53d4e57c4d2c5a4e0f058f6552aee4ed8ea5751bc772eb6583e60266ba214514", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x600160005401600052690fffffffffffffffffff610402600051040260025260006000690fffffffffffffffffff61040260005104026000306104005a03fa", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 (+ (SLOAD 0) 1)) (MSTORE 2 (MUL (DIV (MLOAD 0) 0x0402) 0xfffffffffffffffffff)) (STATICCALL (- (GAS) 1024) (ADDRESS) 0 (MUL (DIV (MLOAD 0) 0x0402) 0xfffffffffffffffffff) 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0x195e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6000600060006000600073095e7baea6a6c7c4c2dfeb977efac326af552d875af2505a600155", - "nonce" : "0x00", + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (CALLCODE (GAS) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 0) [[ 1 ]] (GAS) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x174876e800" + "100000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x195e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "195e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRecursiveBomb1.json b/GeneralStateTests/stStaticCall/static_CallRecursiveBomb1.json index 3e7753e34..9a4dd5bf7 100644 --- a/GeneralStateTests/stStaticCall/static_CallRecursiveBomb1.json +++ b/GeneralStateTests/stStaticCall/static_CallRecursiveBomb1.json @@ -2,88 +2,56 @@ "static_CallRecursiveBomb1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcb1753e7f3422605434c589a87fa72354382ea86b78fac25a6484bc06bfae257", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x09befb" + } } } - ], - "EIP158" : [ - { - "hash" : "0xcb1753e7f3422605434c589a87fa72354382ea86b78fac25a6484bc06bfae257", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf664fa42d701c03617eba34bbd670cb7ef1e40313cedbbd60883c364c449ca2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf664fa42d701c03617eba34bbd670cb7ef1e40313cedbbd60883c364c449ca2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x94a613e74461a5e8afb7a9bf2b53617944ad2fdf55ba8f900a887e63aaf19f36", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x600160005101600052600060006000600030613a985a03fa", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 (+ (MLOAD 0) 1)) (STATICCALL (- (GAS) 15000) (ADDRESS) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x195e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6000600060006000600073095e7baea6a6c7c4c2dfeb977efac326af552d875af2505a600155", - "nonce" : "0x00", + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (CALLCODE (GAS) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x013aab14" + "20622100" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x195e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "195e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRecursiveBomb2.json b/GeneralStateTests/stStaticCall/static_CallRecursiveBomb2.json index b81b0970e..53b0a9054 100644 --- a/GeneralStateTests/stStaticCall/static_CallRecursiveBomb2.json +++ b/GeneralStateTests/stStaticCall/static_CallRecursiveBomb2.json @@ -2,88 +2,56 @@ "static_CallRecursiveBomb2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb823d538f7cc43f50bd100bace70c5b14b88d9f0214cb3386c5c043b682450b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0970da" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb823d538f7cc43f50bd100bace70c5b14b88d9f0214cb3386c5c043b682450b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8550841f06091aa91a26e1c8c45339966a7bbb57ad5f3f1a46e89c27ace3247f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8550841f06091aa91a26e1c8c45339966a7bbb57ad5f3f1a46e89c27ace3247f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4ab37c9ac92df780428afd2c345b9bc3cc3a7cba4a09257273329b73ff6486db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x600160005101600052600060006000600030613a985a03fa", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 (+ (MLOAD 0) 1)) (STATICCALL (- (GAS) 15000) (ADDRESS) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x195e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6000600060006000600073095e7baea6a6c7c4c2dfeb977efac326af552d875af26000555a600155", - "nonce" : "0x00", + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (CALLCODE (GAS) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x013aab13" + "20622099" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x195e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "195e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRecursiveBomb3.json b/GeneralStateTests/stStaticCall/static_CallRecursiveBomb3.json index 7bb37bcd3..dd46a10ca 100644 --- a/GeneralStateTests/stStaticCall/static_CallRecursiveBomb3.json +++ b/GeneralStateTests/stStaticCall/static_CallRecursiveBomb3.json @@ -2,88 +2,56 @@ "static_CallRecursiveBomb3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBomb3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x94a61490fdbf7fc6cb1a1887b27d1bbefccc657f6905d14948f5e89126fb6434", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x016b53" + } } } - ], - "EIP158" : [ - { - "hash" : "0x94a61490fdbf7fc6cb1a1887b27d1bbefccc657f6905d14948f5e89126fb6434", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6659660e4db73207ff37c4fa00d0cd2668e561c8e175cc84d32f9054ab01b244", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6659660e4db73207ff37c4fa00d0cd2668e561c8e175cc84d32f9054ab01b244", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3b7e6951c651e3eff3419eea5b43cc3779902b1024b671aa51e7bc2830301e8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x60016000540160005260006000600060003060e05a03fa", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 (+ (SLOAD 0) 1)) (STATICCALL (- (GAS) 224) (ADDRESS) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x195e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6000600060006000600073095e7baea6a6c7c4c2dfeb977efac326af552d87620186a05a03f26000555a600155", - "nonce" : "0x00", + "195e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (CALLCODE ( - (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x195e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "195e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRecursiveBombLog.json b/GeneralStateTests/stStaticCall/static_CallRecursiveBombLog.json index 2918eed76..a949b77a7 100644 --- a/GeneralStateTests/stStaticCall/static_CallRecursiveBombLog.json +++ b/GeneralStateTests/stStaticCall/static_CallRecursiveBombLog.json @@ -2,88 +2,56 @@ "static_CallRecursiveBombLog" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLogFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb80560ef8b9af7e51d2b933f3b9fd86be0757acb33ba62b1cf850dfeefb15310", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x09501aaf" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb80560ef8b9af7e51d2b933f3b9fd86be0757acb33ba62b1cf850dfeefb15310", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb80560ef8b9af7e51d2b933f3b9fd86be0757acb33ba62b1cf850dfeefb15310", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb80560ef8b9af7e51d2b933f3b9fd86be0757acb33ba62b1cf850dfeefb15310", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x04f97b8d36405d8211fbe3b5a2ad75abb5a0a143bd5dd4d9c68844a9c20996bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b5620186a05a03fa6000555a600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (STATICCALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000a06000600060006000306161a85a03fa", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) (STATICCALL (- (GAS) 25000) (ADDRESS) 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x02540be400" + "10000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRecursiveBombLog2.json b/GeneralStateTests/stStaticCall/static_CallRecursiveBombLog2.json index 305346f0b..8935be688 100644 --- a/GeneralStateTests/stStaticCall/static_CallRecursiveBombLog2.json +++ b/GeneralStateTests/stStaticCall/static_CallRecursiveBombLog2.json @@ -2,88 +2,59 @@ "static_CallRecursiveBombLog2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombLog2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xeb74a51583974d9ad3cc50eafa9168c843579e6dc72adae941f05322e92ae58b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x09501aaf" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xeb74a51583974d9ad3cc50eafa9168c843579e6dc72adae941f05322e92ae58b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xeb74a51583974d9ad3cc50eafa9168c843579e6dc72adae941f05322e92ae58b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xeb74a51583974d9ad3cc50eafa9168c843579e6dc72adae941f05322e92ae58b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xedd35d9f47f8c16676a664479f0028ccb352d1865ebcbde1a8a92fde6dd700b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b5620186a05a03fa6000555a600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (STATICCALL ( - (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x5a60005260206000a06000600060006000306161a85a03fa", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (GAS)) (LOG0 0 32) (STATICCALL (- (GAS) 25000) (ADDRESS) 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +64,14 @@ "" ], "gasLimit" : [ - "0x02540be400" + "10000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRecursiveBombPreCall.json b/GeneralStateTests/stStaticCall/static_CallRecursiveBombPreCall.json index cb877e251..b6e7e3efd 100644 --- a/GeneralStateTests/stStaticCall/static_CallRecursiveBombPreCall.json +++ b/GeneralStateTests/stStaticCall/static_CallRecursiveBombPreCall.json @@ -2,88 +2,59 @@ "static_CallRecursiveBombPreCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xecfcc33227d2e221a4c09f8b78d052775e9a590207ebdbc6e20deded0aa78348", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7ffffffffff3ba25" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xecfcc33227d2e221a4c09f8b78d052775e9a590207ebdbc6e20deded0aa78348", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xecfcc33227d2e221a4c09f8b78d052775e9a590207ebdbc6e20deded0aa78348", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xecfcc33227d2e221a4c09f8b78d052775e9a590207ebdbc6e20deded0aa78348", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xff16c6db910b7056e3353e0805a640ee51a37d7189c91eaa9d72e309f7834391", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0fffffffffffffffffffffffffffffff", - "code" : "0x600060006000600073bad304eb96065b2a98b57a48a06ae28d285a71b5620186a0fa50600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b56707fffffffffffffff46000555a600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0xfffffffffffffffffffffffffffffff", + "code" : "{ (STATICCALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) [[ 0 ]] (DELEGATECALL 0x7ffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160005101600052600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b562036b005a03fa", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (+ (MLOAD 0) 1)) (STATICCALL (- (GAS) 224000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -95,12 +66,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRecursiveBombPreCall2.json b/GeneralStateTests/stStaticCall/static_CallRecursiveBombPreCall2.json index 38d40ef3b..0266f3f09 100644 --- a/GeneralStateTests/stStaticCall/static_CallRecursiveBombPreCall2.json +++ b/GeneralStateTests/stStaticCall/static_CallRecursiveBombPreCall2.json @@ -2,88 +2,59 @@ "static_CallRecursiveBombPreCall2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRecursiveBombPreCall2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xeaccd590a93210b28c4f849d87290bc06357a6ab34cedd1d5cdc55bb0f6a7d6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7ffffffffff3be25" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xeaccd590a93210b28c4f849d87290bc06357a6ab34cedd1d5cdc55bb0f6a7d6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xeaccd590a93210b28c4f849d87290bc06357a6ab34cedd1d5cdc55bb0f6a7d6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xeaccd590a93210b28c4f849d87290bc06357a6ab34cedd1d5cdc55bb0f6a7d6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0904a81e43fb6c84b7bdd7d5bb8dd1a7c151830677033128852f58c789336c33", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0fffffffffffffffffffffffffffffff", - "code" : "0x600060006000600073bad304eb96065b2a98b57a48a06ae28d285a71b5620186a0fa50600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b56707fffffffffffffffa6000555a600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "0xfffffffffffffffffffffffffffffff", + "code" : "{ (STATICCALL 100000 0xbad304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) [[ 0 ]] (STATICCALL 0x7ffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016000510160005260006000600060003062036b005a03fa", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (+ (MLOAD 0) 1)) (STATICCALL (- (GAS) 224000) (ADDRESS) 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -95,12 +66,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRipemd160_1.json b/GeneralStateTests/stStaticCall/static_CallRipemd160_1.json index 61d295891..af9e48623 100644 --- a/GeneralStateTests/stStaticCall/static_CallRipemd160_1.json +++ b/GeneralStateTests/stStaticCall/static_CallRipemd160_1.json @@ -2,81 +2,49 @@ "static_CallRipemd160_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x749b9773e54b61f9c516cf66caf153328bc2d64c39e8169a18c6c533354ea049", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x9c1185a5c5e9fc54612808977ee8f548b2258d31", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x749b9773e54b61f9c516cf66caf153328bc2d64c39e8169a18c6c533354ea049", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x749b9773e54b61f9c516cf66caf153328bc2d64c39e8169a18c6c533354ea049", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x749b9773e54b61f9c516cf66caf153328bc2d64c39e8169a18c6c533354ea049", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x61043bcf9f5d70773f9c37e56980261244dcac94479adc2c4f4dede4c2f569cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x60206000600060006003610258fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (STATICCALL 600 3 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRipemd160_2.json b/GeneralStateTests/stStaticCall/static_CallRipemd160_2.json index d2c596b0a..8ae57e23c 100644 --- a/GeneralStateTests/stStaticCall/static_CallRipemd160_2.json +++ b/GeneralStateTests/stStaticCall/static_CallRipemd160_2.json @@ -2,81 +2,49 @@ "static_CallRipemd160_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x97c5529870e0164a19a3f66908838f2033ff02f7de7dd5cbe00fd28426c5395a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0xdbc100f916bfbc53535573d98cf0cbb3a5b36124", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x97c5529870e0164a19a3f66908838f2033ff02f7de7dd5cbe00fd28426c5395a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x97c5529870e0164a19a3f66908838f2033ff02f7de7dd5cbe00fd28426c5395a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x97c5529870e0164a19a3f66908838f2033ff02f7de7dd5cbe00fd28426c5395a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x064af302a6ed9d95e61e31905ab89dd1358be3b90c427fc3039c6e87ab155664", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f60055260206000602560006003611770fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (STATICCALL 6000 3 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRipemd160_3.json b/GeneralStateTests/stStaticCall/static_CallRipemd160_3.json index 307c39e8a..2b1d8c15b 100644 --- a/GeneralStateTests/stStaticCall/static_CallRipemd160_3.json +++ b/GeneralStateTests/stStaticCall/static_CallRipemd160_3.json @@ -2,81 +2,49 @@ "static_CallRipemd160_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8db263b83cee250e7b859185b57e73780ee870e1e6668403ef7a9a33a1e394e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x316750573f9be26bc17727b47cacedbd0ab3e6ca", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8db263b83cee250e7b859185b57e73780ee870e1e6668403ef7a9a33a1e394e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8db263b83cee250e7b859185b57e73780ee870e1e6668403ef7a9a33a1e394e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8db263b83cee250e7b859185b57e73780ee870e1e6668403ef7a9a33a1e394e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc10660a8c1fd11dd43a421f0b28382319a61609ec734447e96728e76988d144c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f60005260206000602560006003611770fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 6000 3 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRipemd160_3_postfixed0.json b/GeneralStateTests/stStaticCall/static_CallRipemd160_3_postfixed0.json index 27b4f0f79..1d5f0982c 100644 --- a/GeneralStateTests/stStaticCall/static_CallRipemd160_3_postfixed0.json +++ b/GeneralStateTests/stStaticCall/static_CallRipemd160_3_postfixed0.json @@ -2,81 +2,49 @@ "static_CallRipemd160_3_postfixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_postfixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7a72191dad5ef8e6939b958e7619ba428fadff96a761d2350cd4b6744af828f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x7730b4642169b0f16752696da8da830a4b429c9d", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7a72191dad5ef8e6939b958e7619ba428fadff96a761d2350cd4b6744af828f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7a72191dad5ef8e6939b958e7619ba428fadff96a761d2350cd4b6744af828f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7a72191dad5ef8e6939b958e7619ba428fadff96a761d2350cd4b6744af828f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x02c9a4aba02e13c0a6bab883a24becda89497b4527840ab0307bbae6fa9ad688", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x65f34578907f0060005260206000602560006003611770fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (STATICCALL 6000 3 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRipemd160_3_prefixed0.json b/GeneralStateTests/stStaticCall/static_CallRipemd160_3_prefixed0.json index 164fb6995..6a131f3a3 100644 --- a/GeneralStateTests/stStaticCall/static_CallRipemd160_3_prefixed0.json +++ b/GeneralStateTests/stStaticCall/static_CallRipemd160_3_prefixed0.json @@ -2,81 +2,49 @@ "static_CallRipemd160_3_prefixed0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_3_prefixed0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8db263b83cee250e7b859185b57e73780ee870e1e6668403ef7a9a33a1e394e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x316750573f9be26bc17727b47cacedbd0ab3e6ca", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8db263b83cee250e7b859185b57e73780ee870e1e6668403ef7a9a33a1e394e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8db263b83cee250e7b859185b57e73780ee870e1e6668403ef7a9a33a1e394e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8db263b83cee250e7b859185b57e73780ee870e1e6668403ef7a9a33a1e394e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc10660a8c1fd11dd43a421f0b28382319a61609ec734447e96728e76988d144c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f60005260206000602560006003611770fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (STATICCALL 6000 3 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRipemd160_4.json b/GeneralStateTests/stStaticCall/static_CallRipemd160_4.json index 3af397b3f..1c066bc9c 100644 --- a/GeneralStateTests/stStaticCall/static_CallRipemd160_4.json +++ b/GeneralStateTests/stStaticCall/static_CallRipemd160_4.json @@ -2,81 +2,49 @@ "static_CallRipemd160_4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8df919769aa65a3ccd28a9f3d16ed68cbe204001c55d885ee7745e43433915e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x1cf4e77f5966e13e109703cd8a0df7ceda7f3dc3", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8df919769aa65a3ccd28a9f3d16ed68cbe204001c55d885ee7745e43433915e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8df919769aa65a3ccd28a9f3d16ed68cbe204001c55d885ee7745e43433915e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8df919769aa65a3ccd28a9f3d16ed68cbe204001c55d885ee7745e43433915e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcf6d1f6fce19d7c1027d39c26bbf392f54befc4639ad617dd2435c0e0708589c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052602060006020600060036102d0fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 720 3 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRipemd160_4_gas719.json b/GeneralStateTests/stStaticCall/static_CallRipemd160_4_gas719.json index f08993dcd..ac6525083 100644 --- a/GeneralStateTests/stStaticCall/static_CallRipemd160_4_gas719.json +++ b/GeneralStateTests/stStaticCall/static_CallRipemd160_4_gas719.json @@ -2,81 +2,48 @@ "static_CallRipemd160_4_gas719" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_4_gas719Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x75d12a7277359c45095cc0a7ae07fa9a0e8760656c4ca540f386ec374ca64959", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0x75d12a7277359c45095cc0a7ae07fa9a0e8760656c4ca540f386ec374ca64959", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x75d12a7277359c45095cc0a7ae07fa9a0e8760656c4ca540f386ec374ca64959", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x75d12a7277359c45095cc0a7ae07fa9a0e8760656c4ca540f386ec374ca64959", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb91a68b7b9560001b7a165fab38c335d23c4314010f90176df37e7afeaabd65f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052602060006020600060036102cffa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 719 3 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallRipemd160_5.json b/GeneralStateTests/stStaticCall/static_CallRipemd160_5.json index 611b2ba17..b651a6a27 100644 --- a/GeneralStateTests/stStaticCall/static_CallRipemd160_5.json +++ b/GeneralStateTests/stStaticCall/static_CallRipemd160_5.json @@ -2,81 +2,48 @@ "static_CallRipemd160_5" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallRipemd160_5Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6ecd01d21238e49430a3a7a971a0047e2f44374c94f3c57211320b6da7ee516d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6ecd01d21238e49430a3a7a971a0047e2f44374c94f3c57211320b6da7ee516d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6ecd01d21238e49430a3a7a971a0047e2f44374c94f3c57211320b6da7ee516d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6ecd01d21238e49430a3a7a971a0047e2f44374c94f3c57211320b6da7ee516d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x650a2f45d2465fbfd0ca8fcdb8943851836ac25d86dad1ae58297661796a6de2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000620f424060006003611770fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 6000 3 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallSha256_1.json b/GeneralStateTests/stStaticCall/static_CallSha256_1.json index d492a846f..5d9864b29 100644 --- a/GeneralStateTests/stStaticCall/static_CallSha256_1.json +++ b/GeneralStateTests/stStaticCall/static_CallSha256_1.json @@ -2,81 +2,49 @@ "static_CallSha256_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x73089159c3629856ae536e337c183bce96d0ae202715756800fc980410b39c41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x73089159c3629856ae536e337c183bce96d0ae202715756800fc980410b39c41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x73089159c3629856ae536e337c183bce96d0ae202715756800fc980410b39c41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x73089159c3629856ae536e337c183bce96d0ae202715756800fc980410b39c41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6adeda2f75851354baa87ae2b9a321a42fddced0d81d104c4dc009c33cc3e7ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x602060006000600060026101f4fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 2 ]] (STATICCALL 500 2 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallSha256_1_nonzeroValue.json b/GeneralStateTests/stStaticCall/static_CallSha256_1_nonzeroValue.json index 96d4b7df4..50706f0f8 100644 --- a/GeneralStateTests/stStaticCall/static_CallSha256_1_nonzeroValue.json +++ b/GeneralStateTests/stStaticCall/static_CallSha256_1_nonzeroValue.json @@ -2,81 +2,52 @@ "static_CallSha256_1_nonzeroValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_1_nonzeroValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x450a0d2d8e692bf153bc83ea60178fed9552f7040a1ab4d3ec679e87df19f56a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000002" : { + "balance" : "19" + }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x450a0d2d8e692bf153bc83ea60178fed9552f7040a1ab4d3ec679e87df19f56a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x450a0d2d8e692bf153bc83ea60178fed9552f7040a1ab4d3ec679e87df19f56a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x450a0d2d8e692bf153bc83ea60178fed9552f7040a1ab4d3ec679e87df19f56a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdd1737f2c49dddd6c1c9ea4f4cd7af7140c87edcc404c88f24f8eeb843054016", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0bebc200", - "code" : "0x6020600060006000600262030d40fa6002556000516000556000600060006000601360025af1506000600060006000601360025af2", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "200000000", + "code" : "{ [[ 2 ]] (STATICCALL 200000 2 0 0 0 32) [[ 0 ]] (MLOAD 0) (CALL (GAS) 2 19 0 0 0 0) (CALLCODE (GAS) 2 19 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +57,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallSha256_2.json b/GeneralStateTests/stStaticCall/static_CallSha256_2.json index 7ef64d36f..1261a77b4 100644 --- a/GeneralStateTests/stStaticCall/static_CallSha256_2.json +++ b/GeneralStateTests/stStaticCall/static_CallSha256_2.json @@ -2,81 +2,49 @@ "static_CallSha256_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x74a6b4411777b997d1f4a9e31960200d3c2789d93eaf1d8f437eb6cd13cdd98a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xcb39b3bde22925b2f931111130c774761d8895e0e08437c9b396c1e97d10f34d", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x74a6b4411777b997d1f4a9e31960200d3c2789d93eaf1d8f437eb6cd13cdd98a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x74a6b4411777b997d1f4a9e31960200d3c2789d93eaf1d8f437eb6cd13cdd98a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x74a6b4411777b997d1f4a9e31960200d3c2789d93eaf1d8f437eb6cd13cdd98a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2661ee4e45fc332b260e6861603ae5b0215d9a2df10241af8d8aac48f9dfd21a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f600552602060006025600060026101f4fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (STATICCALL 500 2 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallSha256_3.json b/GeneralStateTests/stStaticCall/static_CallSha256_3.json index 53f71ca8c..18f5225c4 100644 --- a/GeneralStateTests/stStaticCall/static_CallSha256_3.json +++ b/GeneralStateTests/stStaticCall/static_CallSha256_3.json @@ -2,81 +2,49 @@ "static_CallSha256_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6406954cb1280961e4ddf35bf4203f9f151eb5ecaeb452e642fa7f85fb2ac4ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6406954cb1280961e4ddf35bf4203f9f151eb5ecaeb452e642fa7f85fb2ac4ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6406954cb1280961e4ddf35bf4203f9f151eb5ecaeb452e642fa7f85fb2ac4ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6406954cb1280961e4ddf35bf4203f9f151eb5ecaeb452e642fa7f85fb2ac4ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x65b7bb557f7fdebe414b94ea96f283f743f6045531f22bacf9f78b1d70ab2377", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f600052602060006025600060026101f4fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (STATICCALL 500 2 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallSha256_3_postfix0.json b/GeneralStateTests/stStaticCall/static_CallSha256_3_postfix0.json index 2d0914757..528959a2c 100644 --- a/GeneralStateTests/stStaticCall/static_CallSha256_3_postfix0.json +++ b/GeneralStateTests/stStaticCall/static_CallSha256_3_postfix0.json @@ -2,81 +2,49 @@ "static_CallSha256_3_postfix0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_postfix0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdfc055ad55c295259f7635d20ea798da19cb6666a2111fb1ef96786ddf4c3a92", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x3b745a1c00d035c334f358d007a430e4cf0ae63aa0556fb05529706de546464d", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdfc055ad55c295259f7635d20ea798da19cb6666a2111fb1ef96786ddf4c3a92", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdfc055ad55c295259f7635d20ea798da19cb6666a2111fb1ef96786ddf4c3a92", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdfc055ad55c295259f7635d20ea798da19cb6666a2111fb1ef96786ddf4c3a92", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd44b8590a033955773bdc42d0f63b61ffe995c5c15783daa5d6898fb0bf82585", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x65f34578907f00600052602060006025600060026101f4fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xf34578907f00) [[ 2 ]] (STATICCALL 500 2 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallSha256_3_prefix0.json b/GeneralStateTests/stStaticCall/static_CallSha256_3_prefix0.json index 5a78a563d..8ab4bbbdb 100644 --- a/GeneralStateTests/stStaticCall/static_CallSha256_3_prefix0.json +++ b/GeneralStateTests/stStaticCall/static_CallSha256_3_prefix0.json @@ -2,81 +2,49 @@ "static_CallSha256_3_prefix0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_3_prefix0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6406954cb1280961e4ddf35bf4203f9f151eb5ecaeb452e642fa7f85fb2ac4ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x7392925565d67be8e9620aacbcfaecd8cb6ec58d709d25da9eccf1d08a41ce35", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6406954cb1280961e4ddf35bf4203f9f151eb5ecaeb452e642fa7f85fb2ac4ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6406954cb1280961e4ddf35bf4203f9f151eb5ecaeb452e642fa7f85fb2ac4ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6406954cb1280961e4ddf35bf4203f9f151eb5ecaeb452e642fa7f85fb2ac4ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x65b7bb557f7fdebe414b94ea96f283f743f6045531f22bacf9f78b1d70ab2377", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x64f34578907f600052602060006025600060026101f4fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0x00f34578907f) [[ 2 ]] (STATICCALL 500 2 0 37 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallSha256_4.json b/GeneralStateTests/stStaticCall/static_CallSha256_4.json index d3f27f5eb..1349b9281 100644 --- a/GeneralStateTests/stStaticCall/static_CallSha256_4.json +++ b/GeneralStateTests/stStaticCall/static_CallSha256_4.json @@ -2,81 +2,49 @@ "static_CallSha256_4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x41192668654ff740f55eb6e7ae2989b41342372c4825ab5b414b269b98fd7da1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x41192668654ff740f55eb6e7ae2989b41342372c4825ab5b414b269b98fd7da1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x41192668654ff740f55eb6e7ae2989b41342372c4825ab5b414b269b98fd7da1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x41192668654ff740f55eb6e7ae2989b41342372c4825ab5b414b269b98fd7da1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcbb8d4b7b0b35a41acb5188ef5ab9c162502004054448635c550c3c3df82ca1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052602060006020600060026064fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 100 2 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallSha256_4_gas99.json b/GeneralStateTests/stStaticCall/static_CallSha256_4_gas99.json index 17d3f4831..128ae9cf0 100644 --- a/GeneralStateTests/stStaticCall/static_CallSha256_4_gas99.json +++ b/GeneralStateTests/stStaticCall/static_CallSha256_4_gas99.json @@ -2,81 +2,49 @@ "static_CallSha256_4_gas99" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_4_gas99Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1ffd42c805448a3fb1f19e6e1800afad4a092a148c20df052e838e440e1eae88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xaf9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1ffd42c805448a3fb1f19e6e1800afad4a092a148c20df052e838e440e1eae88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1ffd42c805448a3fb1f19e6e1800afad4a092a148c20df052e838e440e1eae88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1ffd42c805448a3fb1f19e6e1800afad4a092a148c20df052e838e440e1eae88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x47d48ecedefb604bf16d204edcaf17d954489eec247aa04585a2f92ae1fe18df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052602060006020600060026063fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 99 2 0 32 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0592a8" + "365224" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallSha256_5.json b/GeneralStateTests/stStaticCall/static_CallSha256_5.json index f9efcfbcf..9643fdc15 100644 --- a/GeneralStateTests/stStaticCall/static_CallSha256_5.json +++ b/GeneralStateTests/stStaticCall/static_CallSha256_5.json @@ -2,81 +2,48 @@ "static_CallSha256_5" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallSha256_5Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfb087b1d26dc6497edc9156cfdb09ad99a0a244fa74eceffbd07888beeba2718", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfb087b1d26dc6497edc9156cfdb09ad99a0a244fa74eceffbd07888beeba2718", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfb087b1d26dc6497edc9156cfdb09ad99a0a244fa74eceffbd07888beeba2718", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfb087b1d26dc6497edc9156cfdb09ad99a0a244fa74eceffbd07888beeba2718", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7264679270dcaf4c3f6f968ffbab40b933f9df9d1b730e743145f5ef7a8b9635", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000620f424060006002610258fa600255600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (STATICCALL 600 2 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallToNameRegistrator0.json b/GeneralStateTests/stStaticCall/static_CallToNameRegistrator0.json index 2a55a0746..b3f07fb27 100644 --- a/GeneralStateTests/stStaticCall/static_CallToNameRegistrator0.json +++ b/GeneralStateTests/stStaticCall/static_CallToNameRegistrator0.json @@ -2,88 +2,56 @@ "static_CallToNameRegistrator0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallToNameRegistrator0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2476fc941a8067d919974e5adf2bc832be56a8518cb1748b09c155fa85bc57b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2476fc941a8067d919974e5adf2bc832be56a8518cb1748b09c155fa85bc57b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2476fc941a8067d919974e5adf2bc832be56a8518cb1748b09c155fa85bc57b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2476fc941a8067d919974e5adf2bc832be56a8518cb1748b09c155fa85bc57b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1f97ffce3fd3ce2864cb616baa013f503b7886ade91270a822cbfc175eb7bfe1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa602052600060406040600073945304eb96065b2a98b57a48a06ae28d285a71b5620186a0fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 64 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CallToReturn1.json b/GeneralStateTests/stStaticCall/static_CallToReturn1.json index 59f418198..f79505168 100644 --- a/GeneralStateTests/stStaticCall/static_CallToReturn1.json +++ b/GeneralStateTests/stStaticCall/static_CallToReturn1.json @@ -2,88 +2,57 @@ "static_CallToReturn1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CallToReturn1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x889dc336a2b683bedbc77caf050d9a3130ebd5ad3079fe727f7c37a23be19f99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x889dc336a2b683bedbc77caf050d9a3130ebd5ad3079fe727f7c37a23be19f99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x889dc336a2b683bedbc77caf050d9a3130ebd5ad3079fe727f7c37a23be19f99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x889dc336a2b683bedbc77caf050d9a3130ebd5ad3079fe727f7c37a23be19f99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfa3c8d654c593748b5eceead0c1a372c86fddba0b91a3d917ef7d341994da939", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001601f6000600073945304eb96065b2a98b57a48a06ae28d285a71b56103e8fa600055600051600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 31 1) [[ 1 ]] @0 }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x602a601f536001601ff3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CalltoReturn2.json b/GeneralStateTests/stStaticCall/static_CalltoReturn2.json index f7fa6f2f4..6d606e7a5 100644 --- a/GeneralStateTests/stStaticCall/static_CalltoReturn2.json +++ b/GeneralStateTests/stStaticCall/static_CalltoReturn2.json @@ -2,88 +2,57 @@ "static_CalltoReturn2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CalltoReturn2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xeb6801354b6d02b19a0dc149e653822d7d4b2985beb2dc2918f3640d393f3bf7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x01", + "0x01" : "0x3700ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0xeb6801354b6d02b19a0dc149e653822d7d4b2985beb2dc2918f3640d393f3bf7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xeb6801354b6d02b19a0dc149e653822d7d4b2985beb2dc2918f3640d393f3bf7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xeb6801354b6d02b19a0dc149e653822d7d4b2985beb2dc2918f3640d393f3bf7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x990787d2b78570f15ec2a9cc8448936f67ce292103bf505dfdacf0ea6cb79487", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa602052600260006040600073945304eb96065b2a98b57a48a06ae28d285a71b5611388fa600055600051600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 5000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 2 ) [[ 1 ]] (MLOAD 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CheckCallCostOOG.json b/GeneralStateTests/stStaticCall/static_CheckCallCostOOG.json index 5daaa1159..95922471c 100644 --- a/GeneralStateTests/stStaticCall/static_CheckCallCostOOG.json +++ b/GeneralStateTests/stStaticCall/static_CheckCallCostOOG.json @@ -2,128 +2,74 @@ "static_CheckCallCostOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CheckCallCostOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcd73fcab3c89cf2f76f46d5d53599a268513c3e8db7e1e4fbd9f3ce7066aaa72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4115b71dc009d7cedcff1fd79f30fe643d5e87f10749698fb865d8ed2fb6076", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcd73fcab3c89cf2f76f46d5d53599a268513c3e8db7e1e4fbd9f3ce7066aaa72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4115b71dc009d7cedcff1fd79f30fe643d5e87f10749698fb865d8ed2fb6076", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcd73fcab3c89cf2f76f46d5d53599a268513c3e8db7e1e4fbd9f3ce7066aaa72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xc4115b71dc009d7cedcff1fd79f30fe643d5e87f10749698fb865d8ed2fb6076", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21700" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0xcd73fcab3c89cf2f76f46d5d53599a268513c3e8db7e1e4fbd9f3ce7066aaa72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4115b71dc009d7cedcff1fd79f30fe643d5e87f10749698fb865d8ed2fb6076", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcd73fcab3c89cf2f76f46d5d53599a268513c3e8db7e1e4fbd9f3ce7066aaa72", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xea0ba27d31ec6d0733e9ece3fc03ec693ae528a50681aee3b37f57dd923ee3d0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21733" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x60006000600060007320000000000000000000000000000000000000006064fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (STATICCALL 100 0x2000000000000000000000000000000000000000 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -133,15 +79,15 @@ "" ], "gasLimit" : [ - "0x54c4", - "0x5528" + "21700", + "21800" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CheckOpcodes.json b/GeneralStateTests/stStaticCall/static_CheckOpcodes.json index dfeb1886e..7efcf80dd 100644 --- a/GeneralStateTests/stStaticCall/static_CheckOpcodes.json +++ b/GeneralStateTests/stStaticCall/static_CheckOpcodes.json @@ -2,382 +2,72 @@ "static_CheckOpcodes" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodesFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd4ba63488362b427d1681871e5c0ce478a1c56038a14e6abf1eb08a1e7362ecd", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcd0bf5c8667410a60b0888ddb7da55cfe0099041c03ac5de6896a8e1c9be19f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x99cec9ee8168e34dca27e17bce9f493d006f43e254b636bf4934b06f2444d21f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xcd0bf5c8667410a60b0888ddb7da55cfe0099041c03ac5de6896a8e1c9be19f7", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x99cec9ee8168e34dca27e17bce9f493d006f43e254b636bf4934b06f2444d21f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5b2ad133e3294085c264936e2ba8bd91f8eeca0243ed5633a1efba582cd84a35", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0eb7478ae040cc90426dade6c3ee468d5c45e9b89274a8d5ffff5b978587575f", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0b94298a79e1a7e5de1aded75e212679582b6df8d68f679f06ec4f208583bfb6", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000600035620186a0fa600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373100000000000000000000000000000000000000014604b5760026001556051565b60016001525b30731000000000000000000000000000000000000001146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000000 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6000600060006000731000000000000000000000000000000000000003620186a0fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000003 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373100000000000000000000000000000000000000214604b5760026001556051565b60016001525b30731000000000000000000000000000000000000001146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000002 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -388,16 +78,16 @@ "0x0000000000000000000000001000000000000000000000000000000000000002" ], "gasLimit" : [ - "0xc350", - "0x051c98" + "50000", + "335000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x64" + "0", + "100" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CheckOpcodes2.json b/GeneralStateTests/stStaticCall/static_CheckOpcodes2.json index fbfa294ba..d727f1ead 100644 --- a/GeneralStateTests/stStaticCall/static_CheckOpcodes2.json +++ b/GeneralStateTests/stStaticCall/static_CheckOpcodes2.json @@ -2,911 +2,146 @@ "static_CheckOpcodes2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x067ec5be84441b294f6ada42a12ed9a1206170e030cd69326ed3b9f797c26626", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 + "expect" : [ + { + "indexes" : { + "data" : [ + 0, + 2, + 3, + 4 + ], + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0xb3e6f9aed7d3c82d539b1b763c6a7279ebb6d7bccdb11ee489eb81fff87c6eac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3a5fd102a0fb99e1880efd26ffbe13bb6fbd3ea1f533e9e7302fed6acdec276c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xb3e6f9aed7d3c82d539b1b763c6a7279ebb6d7bccdb11ee489eb81fff87c6eac", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x3a5fd102a0fb99e1880efd26ffbe13bb6fbd3ea1f533e9e7302fed6acdec276c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xee41c0771718dec5ed211ab41c936d5b4083c62266043058315f61e5d8e52ad2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xebd25cd1b32ebfbb0c2bcb1d07e9489624d0389ed7fd81e3ffd4709d9f29a6f6", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0579ec90031ca3d0c888bf328ff46b0d5964308031563c434fafdc977de8989c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xb3e6f9aed7d3c82d539b1b763c6a7279ebb6d7bccdb11ee489eb81fff87c6eac", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3a5fd102a0fb99e1880efd26ffbe13bb6fbd3ea1f533e9e7302fed6acdec276c", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xb3e6f9aed7d3c82d539b1b763c6a7279ebb6d7bccdb11ee489eb81fff87c6eac", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x3a5fd102a0fb99e1880efd26ffbe13bb6fbd3ea1f533e9e7302fed6acdec276c", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xa10aafdb5c076b4008129ac242d7fd7ce8643b33f3bb1b63f3e94e41d531632d", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x18698268bd772ea3667a903927371966f86beadc8fb8210745ded2c2b36516c7", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xa10aafdb5c076b4008129ac242d7fd7ce8643b33f3bb1b63f3e94e41d531632d", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x18698268bd772ea3667a903927371966f86beadc8fb8210745ded2c2b36516c7", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x04e31e5b78b1ff332d63016be2de743ee54b77a3f182ce67bc85a081dcdb3f0d", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfde1af4dadd2e46212071eac7d12b2534ba98a76d38d8ed86f38c799968d12a8", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x04e31e5b78b1ff332d63016be2de743ee54b77a3f182ce67bc85a081dcdb3f0d", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xfde1af4dadd2e46212071eac7d12b2534ba98a76d38d8ed86f38c799968d12a8", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 + }, + { + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000600035620186a0fa600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x6000600060006000600073a100000000000000000000000000000000000001620186a0f16000526000516001146038576002600155603e565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{ (MSTORE 0 (CALL 100000 0xa100000000000000000000000000000000000001 0 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x60006000526000600060006000600173a200000000000000000000000000000000000001620186a0f160005260016001526001600252", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{(MSTORE 0 0) (MSTORE 0 (CALL 100000 0xa200000000000000000000000000000000000001 1 0 0 0 0)) (MSTORE 1 1) (MSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0x3000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x6000600060006000600073a300000000000000000000000000000000000001620186a0f26000526000516001146038576002600155603e565b60016001525b", - "nonce" : "0x00", + "3000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{ (MSTORE 0 (CALLCODE 100000 0xa300000000000000000000000000000000000001 0 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "nonce" : "0", "storage" : { } }, - "0x4000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x6000600060006000600173a400000000000000000000000000000000000001620186a0f26000526000516001146038576002600155603e565b60016001525b", - "nonce" : "0x00", + "4000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{ (MSTORE 0 (CALLCODE 100000 0xa400000000000000000000000000000000000001 1 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "nonce" : "0", "storage" : { } }, - "0x5000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x600060006000600073a500000000000000000000000000000000000001620186a0f46000526000516001146036576002600155603c565b60016001525b", - "nonce" : "0x00", + "5000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{ (MSTORE 0 (DELEGATECALL 100000 0xa500000000000000000000000000000000000001 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "nonce" : "0", "storage" : { } }, - "0xa100000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373100000000000000000000000000000000000000114604b5760026001556051565b60016001525b3073a100000000000000000000000000000000000001146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "a100000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa100000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa200000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373200000000000000000000000000000000000000114604b5760026001556051565b60016001525b3073a200000000000000000000000000000000000001146074576002600155607a565b60016001525b34600114608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "a200000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x2000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa200000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 1 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa300000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373300000000000000000000000000000000000000114604b5760026001556051565b60016001525b30733000000000000000000000000000000000000001146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "a300000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x3000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x3000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa400000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373400000000000000000000000000000000000000114604b5760026001556051565b60016001525b30734000000000000000000000000000000000000001146074576002600155607a565b60016001525b34600114608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "a400000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x4000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x4000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 1 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa500000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373100000000000000000000000000000000000000014604b5760026001556051565b60016001525b30735000000000000000000000000000000000000001146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "a500000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000000 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x5000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -920,16 +155,16 @@ "0x0000000000000000000000005000000000000000000000000000000000000001" ], "gasLimit" : [ - "0xc350", - "0x051c98" + "50000", + "335000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x64" + "0", + "100" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CheckOpcodes3.json b/GeneralStateTests/stStaticCall/static_CheckOpcodes3.json index eb7fb4953..aa05d5d2e 100644 --- a/GeneralStateTests/stStaticCall/static_CheckOpcodes3.json +++ b/GeneralStateTests/stStaticCall/static_CheckOpcodes3.json @@ -2,918 +2,153 @@ "static_CheckOpcodes3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xda80d43ff3d93f2da9afe1aec9e6017b5243f00e42b5f9af1c60d249f049e636", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 + "expect" : [ + { + "indexes" : { + "data" : [ + 0, + 2, + 3, + 4 + ], + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x6ddfcb52786e2ed766f858567d24359f70aad4bdb165397801293c47da831db1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa2af7ae68e535858c283417b5d39c6707a5a9dae16a7348bdba77b09ba21f6e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x6ddfcb52786e2ed766f858567d24359f70aad4bdb165397801293c47da831db1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xa2af7ae68e535858c283417b5d39c6707a5a9dae16a7348bdba77b09ba21f6e5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x6e64dc2bda8358820ac7857d0287d54c492eb30e6e89ced9fb4736064b74ef87", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x04ba6fadce9ab1cfe52034f564cc8ea79d5a65cb341ea65ead0319f9c4dcde18", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x60c3ecd16ed3b39206e1784094270e8c8cb57224dcb4819e29db447c2be00248", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe0aa3632a809db7d3d3de69a051d49336d1da3e4df426d0bccb1135935ac843b", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x60c3ecd16ed3b39206e1784094270e8c8cb57224dcb4819e29db447c2be00248", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe0aa3632a809db7d3d3de69a051d49336d1da3e4df426d0bccb1135935ac843b", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x38b6ed7d6b63a4e9a9987fe7a2be87eb87f5a4bc172c4198d6cb442a097244c7", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x463fa0d3cf39e2f2f492d8468fa673b5b245b48dd8688d5987bb56de96bda4bc", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xce922c02fc046011fe425764c6ebc59ee4e1e6ed1bd8a29cab65a8b325f55535", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x25657af3417d0cfdcbdfcb6cfbda3be22cceb9615a5de13d635b3ce2afb60b90", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x758d8a723d5455b3a11e505985925483ae70e006f1b97a84766485cf4e2d5efb", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x25657af3417d0cfdcbdfcb6cfbda3be22cceb9615a5de13d635b3ce2afb60b90", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x758d8a723d5455b3a11e505985925483ae70e006f1b97a84766485cf4e2d5efb", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 + }, + { + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000600035620186a0fa600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x73a1000000000000000000000000000000000000016000526000600060206000600073b000000000000000000000000000000000000001620186a0f160005260005160011460505760026001556056565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{ (MSTORE 0 0xa100000000000000000000000000000000000001) (MSTORE 0 (CALL 100000 0xb000000000000000000000000000000000000001 0 0 32 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x73a1000000000000000000000000000000000000016000526000600060206000600173b000000000000000000000000000000000000001620186a0f160005260016001526001600252", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{(MSTORE 0 0xa100000000000000000000000000000000000001) (MSTORE 0 (CALL 100000 0xb000000000000000000000000000000000000001 1 0 32 0 0)) (MSTORE 1 1) (MSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0x3000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x73a3000000000000000000000000000000000000016020526000600060406020600073b000000000000000000000000000000000000001620186a0f260005260005160011460505760026001556056565b60016001525b", - "nonce" : "0x00", + "3000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{ (MSTORE 32 0xa300000000000000000000000000000000000001) (MSTORE 0 (CALLCODE 100000 0xb000000000000000000000000000000000000001 0 32 64 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "nonce" : "0", "storage" : { } }, - "0x4000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x73a4000000000000000000000000000000000000016000526000600060206000600173b000000000000000000000000000000000000001620186a0f260005260005160011460505760026001556056565b60016001525b", - "nonce" : "0x00", + "4000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{ (MSTORE 0 0xa400000000000000000000000000000000000001) (MSTORE 0 (CALLCODE 100000 0xb000000000000000000000000000000000000001 1 0 32 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "nonce" : "0", "storage" : { } }, - "0x5000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x73a500000000000000000000000000000000000001600052600060006020600073b000000000000000000000000000000000000001620186a0f4600052600051600114604e5760026001556054565b60016001525b", - "nonce" : "0x00", + "5000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{ (MSTORE 0 0xa500000000000000000000000000000000000001) (MSTORE 0 (DELEGATECALL 100000 0xb000000000000000000000000000000000000001 0 32 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "nonce" : "0", "storage" : { } }, - "0xa100000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373b00000000000000000000000000000000000000114604b5760026001556051565b60016001525b3073a100000000000000000000000000000000000001146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "a100000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xb000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa100000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa200000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373200000000000000000000000000000000000000114604b5760026001556051565b60016001525b3073a200000000000000000000000000000000000001146074576002600155607a565b60016001525b34600114608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "a200000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x2000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa200000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 1 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa300000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373300000000000000000000000000000000000000114604b5760026001556051565b60016001525b3073a300000000000000000000000000000000000001146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "a300000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x3000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa300000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa400000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373400000000000000000000000000000000000000114604b5760026001556051565b60016001525b3073a400000000000000000000000000000000000001146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "a400000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x4000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa400000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa500000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373500000000000000000000000000000000000000114604b5760026001556051565b60016001525b3073a500000000000000000000000000000000000001146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "a500000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x5000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa500000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6000600060006000600035620186a0fa6000526000516001146024576002600155602a565b60016001525b", - "nonce" : "0x00", + "b000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 0 (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 2)) }", + "nonce" : "0", "storage" : { } } @@ -927,16 +162,16 @@ "0x0000000000000000000000005000000000000000000000000000000000000001" ], "gasLimit" : [ - "0xc350", - "0x051c98" + "50000", + "335000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x64" + "0", + "100" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CheckOpcodes4.json b/GeneralStateTests/stStaticCall/static_CheckOpcodes4.json index 578c474b9..74ccb3311 100644 --- a/GeneralStateTests/stStaticCall/static_CheckOpcodes4.json +++ b/GeneralStateTests/stStaticCall/static_CheckOpcodes4.json @@ -2,215 +2,94 @@ "static_CheckOpcodes4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes4Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x34e26cce39fd7feded32b452f89afd3f4d61a0f291a0afa08c415042efc495f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34e26cce39fd7feded32b452f89afd3f4d61a0f291a0afa08c415042efc495f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xede69fda9c1c0dcf74adce8ec2d48751400109627a3108c774db431a3f180fd6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xede69fda9c1c0dcf74adce8ec2d48751400109627a3108c774db431a3f180fd6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x34e26cce39fd7feded32b452f89afd3f4d61a0f291a0afa08c415042efc495f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34e26cce39fd7feded32b452f89afd3f4d61a0f291a0afa08c415042efc495f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xede69fda9c1c0dcf74adce8ec2d48751400109627a3108c774db431a3f180fd6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xede69fda9c1c0dcf74adce8ec2d48751400109627a3108c774db431a3f180fd6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x34e26cce39fd7feded32b452f89afd3f4d61a0f291a0afa08c415042efc495f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34e26cce39fd7feded32b452f89afd3f4d61a0f291a0afa08c415042efc495f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : 0 }, - { - "hash" : "0xede69fda9c1c0dcf74adce8ec2d48751400109627a3108c774db431a3f180fd6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xede69fda9c1c0dcf74adce8ec2d48751400109627a3108c774db431a3f180fd6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0x34e26cce39fd7feded32b452f89afd3f4d61a0f291a0afa08c415042efc495f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34e26cce39fd7feded32b452f89afd3f4d61a0f291a0afa08c415042efc495f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xede69fda9c1c0dcf74adce8ec2d48751400109627a3108c774db431a3f180fd6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xede69fda9c1c0dcf74adce8ec2d48751400109627a3108c774db431a3f180fd6", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x06" : "0x1000000000000000000000000000000000000000" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x34e26cce39fd7feded32b452f89afd3f4d61a0f291a0afa08c415042efc495f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34e26cce39fd7feded32b452f89afd3f4d61a0f291a0afa08c415042efc495f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x5d7b74ba57578008e50ef1260ecf0b21b054b8f77a0d602f1fff7a3a19a4484d", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : 1 }, - { - "hash" : "0x43f9fb389d635b799ceeb4177488ea6a0642018e6b9d9fb0d59c19ce5de333dc", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x64", + "0x05" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x06" : "0x1000000000000000000000000000000000000000" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000731000000000000000000000000000000000000001620186a0fa6001556000600060006000731000000000000000000000000000000000000002620186a0fa60025533600355346004553260055530600655", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 100000 0x1000000000000000000000000000000000000001 0 0 0 0) [[2]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 0 0) [[3]] (CALLER) [[4]] (CALLVALUE) [[5]] (ORIGIN) [[6]] (ADDRESS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373100000000000000000000000000000000000000014604b5760026001556051565b60016001525b30731000000000000000000000000000000000000001146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000000 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373100000000000000000000000000000000000000014604b5760026001556051565b60016001525b30731000000000000000000000000000000000000002146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000000 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000002 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -220,16 +99,16 @@ "" ], "gasLimit" : [ - "0xc350", - "0x051c98" + "50000", + "335000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x64" + "0", + "100" ] } } diff --git a/GeneralStateTests/stStaticCall/static_CheckOpcodes5.json b/GeneralStateTests/stStaticCall/static_CheckOpcodes5.json index b1bfedbab..52b15fceb 100644 --- a/GeneralStateTests/stStaticCall/static_CheckOpcodes5.json +++ b/GeneralStateTests/stStaticCall/static_CheckOpcodes5.json @@ -2,911 +2,190 @@ "static_CheckOpcodes5" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_CheckOpcodes5Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x9c646b5060bcdbab2c436f7b21aac8cf5415e59914c2134d601801789302d55c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe4016f8d3afbae2a3d8731587a1340e91b655f9b724089b2e2eb9447e98baf3c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xeaf931cfd8d6e40d99fc388113a5c3ef478278ca988e726d0668e848b2d6b9d6", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x1475a42ef973065b77d9c0403359f4a0e8b5b985c86d55ae92c50d7aa6e8d661", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x9c646b5060bcdbab2c436f7b21aac8cf5415e59914c2134d601801789302d55c", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe4016f8d3afbae2a3d8731587a1340e91b655f9b724089b2e2eb9447e98baf3c", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xeaf931cfd8d6e40d99fc388113a5c3ef478278ca988e726d0668e848b2d6b9d6", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x1475a42ef973065b77d9c0403359f4a0e8b5b985c86d55ae92c50d7aa6e8d661", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe689654d1cb1a63efebcb90fae5f2678410109439cc1d31a9b3902bedea12a1d", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xdcbf4edbf4bc40f89fcd8c442ca043d655d7112db8a10fb2b929b414ddebca10", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 + "expect" : [ + { + "indexes" : { + "data" : [ + 0, + 1 + ], + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x9c646b5060bcdbab2c436f7b21aac8cf5415e59914c2134d601801789302d55c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe4016f8d3afbae2a3d8731587a1340e91b655f9b724089b2e2eb9447e98baf3c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xeaf931cfd8d6e40d99fc388113a5c3ef478278ca988e726d0668e848b2d6b9d6", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x1475a42ef973065b77d9c0403359f4a0e8b5b985c86d55ae92c50d7aa6e8d661", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x9c646b5060bcdbab2c436f7b21aac8cf5415e59914c2134d601801789302d55c", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe4016f8d3afbae2a3d8731587a1340e91b655f9b724089b2e2eb9447e98baf3c", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xeaf931cfd8d6e40d99fc388113a5c3ef478278ca988e726d0668e848b2d6b9d6", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x1475a42ef973065b77d9c0403359f4a0e8b5b985c86d55ae92c50d7aa6e8d661", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe689654d1cb1a63efebcb90fae5f2678410109439cc1d31a9b3902bedea12a1d", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xdcbf4edbf4bc40f89fcd8c442ca043d655d7112db8a10fb2b929b414ddebca10", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xdc8f401dad4c55f1660edb0b86809bc155ef984e16ff0f8c1c6cfe0ddcb03467", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x45f6ccc25e8baac0824dbab2da5ede361dbca3928b60c087c0edadc22e513f9b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x5c0e88a38b3286d9b0ce51cce68041d63313a08f1886762ab1eb4a45a3e94726", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe7457f40d2bc050b29bf1feae895245afff8014bb52cd62dfe63d34daf59dffe", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xdc8f401dad4c55f1660edb0b86809bc155ef984e16ff0f8c1c6cfe0ddcb03467", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x45f6ccc25e8baac0824dbab2da5ede361dbca3928b60c087c0edadc22e513f9b", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x5c0e88a38b3286d9b0ce51cce68041d63313a08f1886762ab1eb4a45a3e94726", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe7457f40d2bc050b29bf1feae895245afff8014bb52cd62dfe63d34daf59dffe", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x3ddace1a0110e18df547d7e0307c1edf5341f8a2672666f2b38c793e4d40391c", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x56c18bc2e96157d1c70358756cca5af6d7ceb4110607cceb09f7a17618d1f56a", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 + }, + { + "indexes" : { + "data" : [ + 2 + ], + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "3000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xdc8f401dad4c55f1660edb0b86809bc155ef984e16ff0f8c1c6cfe0ddcb03467", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x45f6ccc25e8baac0824dbab2da5ede361dbca3928b60c087c0edadc22e513f9b", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x5c0e88a38b3286d9b0ce51cce68041d63313a08f1886762ab1eb4a45a3e94726", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe7457f40d2bc050b29bf1feae895245afff8014bb52cd62dfe63d34daf59dffe", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xdc8f401dad4c55f1660edb0b86809bc155ef984e16ff0f8c1c6cfe0ddcb03467", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x45f6ccc25e8baac0824dbab2da5ede361dbca3928b60c087c0edadc22e513f9b", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x5c0e88a38b3286d9b0ce51cce68041d63313a08f1886762ab1eb4a45a3e94726", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe7457f40d2bc050b29bf1feae895245afff8014bb52cd62dfe63d34daf59dffe", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0e1b932422abe6197e7223bd1515f38fd261cbd652a805b6e3e3ef58b8c2673c", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc05bceac43e4c570b099df4100aadcd785ad23830f991e511b255b4ccec3c4ee", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 + }, + { + "indexes" : { + "data" : [ + 3 + ], + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "4000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xccbd3a61a4667d331890e83cff0bee1a6e52669f4e9b3ddd328b48a88e5bf1b1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x8b17df8bae7a96f970d507e1cf0b16564bf0997fd405cd2e49a873858f782a02", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x195a5dd18655d70f4e6ddd282336bf584f0351c2bbdb269d55dcf38fc2c81a18", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x85e606aa5b0780447c4f8f92a576d9b3537f5caa2cb2291d4de999e5bd50268b", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x9e9066e75177c2dfb83d416cc21eef9c8f9d6ce7ef9808415f542c34b4f273c5", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe666ccb6994ad4abd2ea0cfd35e78d04ee8a7c16d4ea4506820302559bbbb165", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x6cdcfe844ce215e579cc2af346dc6fc5dcf9fa1a19a86a9a904796dea69f8ce7", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xed8f184856421fbcb148f50845a1fa0ced4a30da2c9d362dd8a2f625e774e194", - "indexes" : { - "data" : 3, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c7af12fde81dae2a5a9d519baa8fabbaa2eee11e18c03c013440aa6e347f489", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xb8d91ca2d7fd7660756721f94ad0d3dc4f2bcb73b507b598bdfcd06168c62db9", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xbf7625ffbac8653e9edb903721b0b1b5e2cea9d60dce41281201e5fb1b3a8ad1", - "indexes" : { - "data" : 4, - "gas" : 1, - "value" : 1 + }, + { + "indexes" : { + "data" : [ + 4 + ], + "gas" : 1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "5000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600060006000600060006000356203d090f1600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] (CALL 250000 (CALLDATALOAD 0) 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x73b0000000000000000000000000000000000000026000526000600060206000600073a000000000000000000000000000000000000002620186a0f1", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 0 0xb000000000000000000000000000000000000002) (CALL 100000 0xa000000000000000000000000000000000000002 0 0 32 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x73b0000000000000000000000000000000000000026000526000600060206000600a73a000000000000000000000000000000000000002620186a0f1", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{ (MSTORE 0 0xb000000000000000000000000000000000000002) (CALL 100000 0xa000000000000000000000000000000000000002 10 0 32 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x3000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x73c3000000000000000000000000000000000000026000526000600060206000600073a000000000000000000000000000000000000002620186a0f2", - "nonce" : "0x00", + "3000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{ (MSTORE 0 0xc300000000000000000000000000000000000002) (CALLCODE 100000 0xa000000000000000000000000000000000000002 0 0 32 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x4000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x73c4000000000000000000000000000000000000026000526000600060206000600173a000000000000000000000000000000000000002620186a0f2", - "nonce" : "0x00", + "4000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{ (MSTORE 0 0xc400000000000000000000000000000000000002) (CALLCODE 100000 0xa000000000000000000000000000000000000002 1 0 32 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x5000000000000000000000000000000000000001" : { - "balance" : "0x0a", - "code" : "0x73c500000000000000000000000000000000000002600052600060006020600073a000000000000000000000000000000000000002620186a0f4", - "nonce" : "0x00", + "5000000000000000000000000000000000000001" : { + "balance" : "10", + "code" : "{ (MSTORE 0 0xc500000000000000000000000000000000000002) (DELEGATECALL 100000 0xa000000000000000000000000000000000000002 0 32 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600060006000600060003561c350fa600055", - "nonce" : "0x00", + "a000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (STATICCALL 50000 (CALLDATALOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373a00000000000000000000000000000000000000214604b5760026001556051565b60016001525b3073b000000000000000000000000000000000000002146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "b000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xa000000000000000000000000000000000000002 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xb000000000000000000000000000000000000002 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xc300000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373300000000000000000000000000000000000000114604b5760026001556051565b60016001525b3073c300000000000000000000000000000000000002146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "c300000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x3000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xc300000000000000000000000000000000000002 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xc400000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373400000000000000000000000000000000000000114604b5760026001556051565b60016001525b3073c400000000000000000000000000000000000002146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "c400000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x4000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xc400000000000000000000000000000000000002 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xc500000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373500000000000000000000000000000000000000114604b5760026001556051565b60016001525b3073c500000000000000000000000000000000000002146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "c500000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x5000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0xc500000000000000000000000000000000000002 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } } @@ -920,16 +199,16 @@ "0x0000000000000000000000005000000000000000000000000000000000000001" ], "gasLimit" : [ - "0xc350", - "0x051c98" + "50000", + "335000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x64" + "0", + "100" ] } } diff --git a/GeneralStateTests/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHas.json b/GeneralStateTests/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHas.json index d004680d5..24d46f213 100644 --- a/GeneralStateTests/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHas.json +++ b/GeneralStateTests/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHas.json @@ -2,182 +2,72 @@ "static_ExecuteCallThatAskForeGasThenTrabsactionHas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_ExecuteCallThatAskForeGasThenTrabsactionHasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : [ + 1, + 2 + ], + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x90533610682f7f1fe6a3397efe1a55ce6ae7cf9dafa07008ae49a6de3ab338eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba4807cce479d76f9f358c9d7308c9e7b3663ba3702d213de3593ab18697f344", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0186a0", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0186a0", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x3000000000000000000000000000000000000001" : { - "balance" : "0x0186a0", - "code" : "0x6001600155", - "nonce" : "0x00", + "3000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{ (SSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600035620927c0fa600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 600000 (CALLDATALOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -189,14 +79,14 @@ "0x0000000000000000000000003000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_InternalCallHittingGasLimit.json b/GeneralStateTests/stStaticCall/static_InternalCallHittingGasLimit.json index 5fbace354..7e5f27530 100644 --- a/GeneralStateTests/stStaticCall/static_InternalCallHittingGasLimit.json +++ b/GeneralStateTests/stStaticCall/static_InternalCallHittingGasLimit.json @@ -2,88 +2,53 @@ "static_InternalCallHittingGasLimit" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimitFiller.json" }, "env" : { - "currentCoinbase" : "0x2adf5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x55f0", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "22000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb26b5f58fec9d44f7980e9859d4a004456d0d05fc86878865e3d1349588cbca2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "978900" } } - ], - "EIP158" : [ - { - "hash" : "0xb26b5f58fec9d44f7980e9859d4a004456d0d05fc86878865e3d1349588cbca2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb26b5f58fec9d44f7980e9859d4a004456d0d05fc86878865e3d1349588cbca2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb26b5f58fec9d44f7980e9859d4a004456d0d05fc86878865e3d1349588cbca2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb26b5f58fec9d44f7980e9859d4a004456d0d05fc86878865e3d1349588cbca2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", - "code" : "0x600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b611388fa", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "{ (STATICCALL 5000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +58,14 @@ "" ], "gasLimit" : [ - "0x526c" + "21100" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_InternalCallHittingGasLimit2.json b/GeneralStateTests/stStaticCall/static_InternalCallHittingGasLimit2.json index e1720da90..1d786b6f7 100644 --- a/GeneralStateTests/stStaticCall/static_InternalCallHittingGasLimit2.json +++ b/GeneralStateTests/stStaticCall/static_InternalCallHittingGasLimit2.json @@ -2,88 +2,55 @@ "static_InternalCallHittingGasLimit2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_InternalCallHittingGasLimit2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adf5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xba96", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "47766", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x864a7b976668d9025f681b3270b906b7f9c360c2df8e6fabfdf2d0d01c5ea645", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x864a7b976668d9025f681b3270b906b7f9c360c2df8e6fabfdf2d0d01c5ea645", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x864a7b976668d9025f681b3270b906b7f9c360c2df8e6fabfdf2d0d01c5ea645", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x864a7b976668d9025f681b3270b906b7f9c360c2df8e6fabfdf2d0d01c5ea645", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x864a7b976668d9025f681b3270b906b7f9c360c2df8e6fabfdf2d0d01c5ea645", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b6161a8fa600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[ 1 ]] (STATICCALL 25000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0xba96" + "47766" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_InternlCallStoreClearsOOG.json b/GeneralStateTests/stStaticCall/static_InternlCallStoreClearsOOG.json index 77088c04e..2fde1d1ed 100644 --- a/GeneralStateTests/stStaticCall/static_InternlCallStoreClearsOOG.json +++ b/GeneralStateTests/stStaticCall/static_InternlCallStoreClearsOOG.json @@ -2,76 +2,62 @@ "static_InternlCallStoreClearsOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_InternlCallStoreClearsOOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb82cca58ebd153dfe1ff4dcfdaebe887fb254792fa4d7311778c0454774340e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "20", + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb82cca58ebd153dfe1ff4dcfdaebe887fb254792fa4d7311778c0454774340e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb82cca58ebd153dfe1ff4dcfdaebe887fb254792fa4d7311778c0454774340e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb82cca58ebd153dfe1ff4dcfdaebe887fb254792fa4d7311778c0454774340e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa2612c8ed14c9ebbaeeca9546f2c273abe8c71fb6d43c893bd1ac9e3f9c86370", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600055600060015560006002556000600355600060045560006005556000600655600060075560006008556000600955", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", "storage" : { - "0x00" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", "0x02" : "0x0c", "0x03" : "0x0c", @@ -83,17 +69,18 @@ "0x09" : "0x0c" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0a", - "code" : "0x60006000600060006000619c40fa600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "//" : "gas = 19 going OOG, gas = 20 fine", + "balance" : "10", + "code" : "{ [[ 1 ]] (STATICCALL 40000 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -103,14 +90,14 @@ "" ], "gasLimit" : [ - "0x027100" + "160000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_LoopCallsDepthThenRevert.json b/GeneralStateTests/stStaticCall/static_LoopCallsDepthThenRevert.json index d6db94d20..29a5c23d0 100644 --- a/GeneralStateTests/stStaticCall/static_LoopCallsDepthThenRevert.json +++ b/GeneralStateTests/stStaticCall/static_LoopCallsDepthThenRevert.json @@ -2,95 +2,63 @@ "static_LoopCallsDepthThenRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5fd4c444b2f9281082c710d2fd94a82ede14513b458c6de033021f06b252b063", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x88c8c6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5fd4c444b2f9281082c710d2fd94a82ede14513b458c6de033021f06b252b063", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x59ea02d8c54b83231ae4637378a000aa6674e585d67a12db3647532b7102f6d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x59ea02d8c54b83231ae4637378a000aa6674e585d67a12db3647532b7102f6d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5fd4c444b2f9281082c710d2fd94a82ede14513b458c6de033021f06b252b063", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x60006000600060006000731000000000000000000000000000000000000000620186a05a03f16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[ 0 ]] (CALL ( - (GAS) 100000) 0x1000000000000000000000000000000000000000 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600060006000600073b0000000000000000000000000000000000000005afa", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ (STATICCALL (GAS) 0xb000000000000000000000000000000000000000 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600060006000600073a0000000000000000000000000000000000000005afa", - "nonce" : "0x00", + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 0 0 0) }", + "nonce" : "", "storage" : { } } @@ -100,14 +68,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_LoopCallsDepthThenRevert2.json b/GeneralStateTests/stStaticCall/static_LoopCallsDepthThenRevert2.json index 3c0fce346..db44126cc 100644 --- a/GeneralStateTests/stStaticCall/static_LoopCallsDepthThenRevert2.json +++ b/GeneralStateTests/stStaticCall/static_LoopCallsDepthThenRevert2.json @@ -2,81 +2,46 @@ "static_LoopCallsDepthThenRevert2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe5e89f0ae2af162f9a67278af23a20dc65c455c8b5c5f1e0ba46c138165f84de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xe5e89f0ae2af162f9a67278af23a20dc65c455c8b5c5f1e0ba46c138165f84de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe5e89f0ae2af162f9a67278af23a20dc65c455c8b5c5f1e0ba46c138165f84de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe5e89f0ae2af162f9a67278af23a20dc65c455c8b5c5f1e0ba46c138165f84de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc5ea49092dd6839ec754c99d09a161dcd272d1fd69901f000fb6028c0d260656", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x0a", - "code" : "0x6103ff60003514603d57600160003501600052600060006020600073a0000000000000000000000000000000000000005afa5061041a600051106051575b66600060006002f0600052600760196003f0505b", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "10", + "code" : "{ (JUMPI 61 (EQ (CALLDATALOAD 0) 1023)) (MSTORE 0 (+ (CALLDATALOAD 0) 1)) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 32 0 0) (JUMPI 81 (LT (MLOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x13426172c74d822b878fe800000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000000000000000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -88,12 +53,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_LoopCallsDepthThenRevert3.json b/GeneralStateTests/stStaticCall/static_LoopCallsDepthThenRevert3.json index c8651a3d7..4dbea799f 100644 --- a/GeneralStateTests/stStaticCall/static_LoopCallsDepthThenRevert3.json +++ b/GeneralStateTests/stStaticCall/static_LoopCallsDepthThenRevert3.json @@ -2,81 +2,49 @@ "static_LoopCallsDepthThenRevert3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsDepthThenRevert3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x857411ccfd336365ffaee39d03f9a0db2780f72c9bdb79109f2e1ad6ba4a9c99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "7db299e0885c85039f56fa504a13dd8ce8a56aa7" : { + "shouldnotexist" : "1" + }, + "cd6807039caffddbd1c28a749ec91bef15f448e5" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x857411ccfd336365ffaee39d03f9a0db2780f72c9bdb79109f2e1ad6ba4a9c99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x857411ccfd336365ffaee39d03f9a0db2780f72c9bdb79109f2e1ad6ba4a9c99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x857411ccfd336365ffaee39d03f9a0db2780f72c9bdb79109f2e1ad6ba4a9c99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1bf4518519a3e297eccaf0c3f51c5d7f8887e09b36be22595bdaabf5806b9f1d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x0a", - "code" : "0x6103fe60003514603d57600160003501600052600060006020600073a0000000000000000000000000000000000000005afa5061041a600035106051575b66600060006002f0600052600760196003f0505b", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "10", + "code" : "{ (JUMPI 61 (EQ (CALLDATALOAD 0) 1022)) (MSTORE 0 (+ (CALLDATALOAD 0) 1)) (STATICCALL (GAS) 0xa000000000000000000000000000000000000000 0 32 0 0) (JUMPI 81 (LT (CALLDATALOAD 0) 1050)) (JUMPDEST) (MSTORE 0 0x600060006002f0) (CREATE 3 25 7) (JUMPDEST)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x13426172c74d822b878fe800000000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000000000000000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -88,12 +56,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_LoopCallsThenRevert.json b/GeneralStateTests/stStaticCall/static_LoopCallsThenRevert.json index c6cc28f2f..3e1e79a00 100644 --- a/GeneralStateTests/stStaticCall/static_LoopCallsThenRevert.json +++ b/GeneralStateTests/stStaticCall/static_LoopCallsThenRevert.json @@ -2,136 +2,63 @@ "static_LoopCallsThenRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_LoopCallsThenRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb0ad60c2c3c7495515e5e3469f4e4445e56734256a6e5a4f165c23c1b83a71e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4b7b5b5964f57c178c00608be3d6ae8456df2c719c46b64d1fe6febb57b20d3a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb0ad60c2c3c7495515e5e3469f4e4445e56734256a6e5a4f165c23c1b83a71e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4b7b5b5964f57c178c00608be3d6ae8456df2c719c46b64d1fe6febb57b20d3a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0732b1e42c0e34d12d683d8f10159a69e96dda70cbc0254bb070565ca8944f4a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x25efea7c074db57384542cb5eb05389e21d11bca7a23f070d3e289fa348b5c98", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0732b1e42c0e34d12d683d8f10159a69e96dda70cbc0254bb070565ca8944f4a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x25efea7c074db57384542cb5eb05389e21d11bca7a23f070d3e289fa348b5c98", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb0ad60c2c3c7495515e5e3469f4e4445e56734256a6e5a4f165c23c1b83a71e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0x4b7b5b5964f57c178c00608be3d6ae8456df2c719c46b64d1fe6febb57b20d3a", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x024d79" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6103526000526000600060206000600073a0000000000000000000000000000000000000006127105a03f16000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ (MSTORE 0 850) [[ 0 ]] (CALL (- (GAS) 10000) 0xa000000000000000000000000000000000000000 0 0 32 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x5b600160003503600052600060006000600073b00000000000000000000000000000000000000061c350fa50600051600057", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ (JUMPDEST) (MSTORE 0 (- (CALLDATALOAD 0) 1)) (STATICCALL 50000 0xb000000000000000000000000000000000000000 0 0 0 0) (JUMPI 0 (MLOAD 0))}", + "nonce" : "0", "storage" : { - "0x00" : "0x0352" + "0x00" : "850" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600051600101600052", - "nonce" : "0x00", + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ (MSTORE 0 (ADD 1 (MLOAD 0))) }", + "nonce" : "", "storage" : { } } @@ -141,15 +68,15 @@ "" ], "gasLimit" : [ - "0x989680", - "0x895440" + "10000000", + "9000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_PostToReturn1.json b/GeneralStateTests/stStaticCall/static_PostToReturn1.json index 87dc265a6..66113ce55 100644 --- a/GeneralStateTests/stStaticCall/static_PostToReturn1.json +++ b/GeneralStateTests/stStaticCall/static_PostToReturn1.json @@ -2,88 +2,56 @@ "static_PostToReturn1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_PostToReturn1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcffb8534aee4d5dfb417100188fdb0f889f4ebfac2570120d3f1d695afd5b462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0xcffb8534aee4d5dfb417100188fdb0f889f4ebfac2570120d3f1d695afd5b462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcffb8534aee4d5dfb417100188fdb0f889f4ebfac2570120d3f1d695afd5b462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcffb8534aee4d5dfb417100188fdb0f889f4ebfac2570120d3f1d695afd5b462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3e7057ae0f831fb6f03b52d3b8a274566526c2f29e01a28150f9ae0cae8b3344", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa602052600060006040600073945304eb96065b2a98b57a48a06ae28d285a71b5617530fa600155600051600255", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[1]](STATICCALL 30000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 0 ) [[2]] (MLOAD 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_RETURN_Bounds.json b/GeneralStateTests/stStaticCall/static_RETURN_Bounds.json index 8c5994e90..c981f7ad6 100644 --- a/GeneralStateTests/stStaticCall/static_RETURN_Bounds.json +++ b/GeneralStateTests/stStaticCall/static_RETURN_Bounds.json @@ -2,193 +2,172 @@ "static_RETURN_Bounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x43dea029d2a7357e2b87737684cfa8c3e8d400f9eeada7f25bb848966dae295e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x04" : "0x01", + "0x05" : "0x01", + "0x06" : "0x01", + "0x07" : "0x01", + "0x08" : "0x01", + "0x09" : "0x01", + "0x0a" : "0x01", + "0x0b" : "0x01", + "0x0c" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x43dea029d2a7357e2b87737684cfa8c3e8d400f9eeada7f25bb848966dae295e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x43dea029d2a7357e2b87737684cfa8c3e8d400f9eeada7f25bb848966dae295e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x43dea029d2a7357e2b87737684cfa8c3e8d400f9eeada7f25bb848966dae295e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd32a22907de3c3caf38d3a5e1c2e191e418895ca0c8408b404a59116d9a3abad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x60006000600060007310000000000000000000000000000000000000016707fffffffffffffffa60015560006000600060007310000000000000000000000000000000000000026707fffffffffffffffa60025560006000600060007310000000000000000000000000000000000000036707fffffffffffffffa60035560006000600060007310000000000000000000000000000000000000046707fffffffffffffffa60045560006000600060007310000000000000000000000000000000000000056707fffffffffffffffa60055560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa60065560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa60075560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa60085560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa60095560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa600a5560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa600b5560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa600c5560006000600060", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0) [[2]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000002 0 0 0 0) [[3]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000003 0 0 0 0) [[4]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000004 0 0 0 0) [[5]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000005 0 0 0 0) [[6]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[7]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[8]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[9]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[10]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[11]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[12]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[13]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[14]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[15]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[16]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60006000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (RETURN 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6000630ffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600063fffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000004" : { - "balance" : "0x00", - "code" : "0x600067fffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000004" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000005" : { - "balance" : "0x00", - "code" : "0x60006d0ffffffffffffffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000005" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000006" : { - "balance" : "0x00", - "code" : "0x60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000006" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000007" : { - "balance" : "0x00", - "code" : "0x630fffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000007" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000008" : { - "balance" : "0x00", - "code" : "0x63ffffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000008" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000009" : { - "balance" : "0x00", - "code" : "0x67ffffffffffffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000009" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000010" : { - "balance" : "0x00", - "code" : "0x6d0fffffffffffffffffffffffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000010" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000011" : { - "balance" : "0x00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000011" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000012" : { - "balance" : "0x00", - "code" : "0x630fffffff630ffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000012" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0xfffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000013" : { - "balance" : "0x00", - "code" : "0x63ffffffff63fffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000013" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0xffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000014" : { - "balance" : "0x00", - "code" : "0x67ffffffffffffffff67fffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000014" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0xffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000015" : { - "balance" : "0x00", - "code" : "0x6d0fffffffffffffffffffffffffff6d0ffffffffffffffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000015" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000016" : { - "balance" : "0x00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000016" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -200,12 +179,12 @@ "gasLimit" : [ "0x7fffffffffffffff" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_RETURN_BoundsOOG.json b/GeneralStateTests/stStaticCall/static_RETURN_BoundsOOG.json index c9a5cb251..96e91b38a 100644 --- a/GeneralStateTests/stStaticCall/static_RETURN_BoundsOOG.json +++ b/GeneralStateTests/stStaticCall/static_RETURN_BoundsOOG.json @@ -2,193 +2,160 @@ "static_RETURN_BoundsOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_RETURN_BoundsOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbb56dbb00d26bd94ce486da5568257d808ad511eec41aac2aa7049e190fb7e7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbb56dbb00d26bd94ce486da5568257d808ad511eec41aac2aa7049e190fb7e7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb56dbb00d26bd94ce486da5568257d808ad511eec41aac2aa7049e190fb7e7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbb56dbb00d26bd94ce486da5568257d808ad511eec41aac2aa7049e190fb7e7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbb56dbb00d26bd94ce486da5568257d808ad511eec41aac2aa7049e190fb7e7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x60006000600060007310000000000000000000000000000000000000016707fffffffffffffffa60015560006000600060007310000000000000000000000000000000000000026707fffffffffffffffa60025560006000600060007310000000000000000000000000000000000000036707fffffffffffffffa60035560006000600060007310000000000000000000000000000000000000046707fffffffffffffffa60045560006000600060007310000000000000000000000000000000000000056707fffffffffffffffa60055560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa60065560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa60075560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa60085560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa60095560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa600a5560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa600b5560006000600060007310000000000000000000000000000000000000066707fffffffffffffffa600c5560006000600060", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[1]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000001 0 0 0 0) [[2]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000002 0 0 0 0) [[3]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000003 0 0 0 0) [[4]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000004 0 0 0 0) [[5]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000005 0 0 0 0) [[6]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[7]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[8]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[9]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[10]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[11]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[12]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[13]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[14]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[15]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0) [[16]] (STATICCALL 0x7ffffffffffffff 0x1000000000000000000000000000000000000006 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60006000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (RETURN 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6000630ffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600063fffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000004" : { - "balance" : "0x00", - "code" : "0x600067fffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000004" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000005" : { - "balance" : "0x00", - "code" : "0x60006d0ffffffffffffffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000005" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000006" : { - "balance" : "0x00", - "code" : "0x60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000006" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000007" : { - "balance" : "0x00", - "code" : "0x630fffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000007" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000008" : { - "balance" : "0x00", - "code" : "0x63ffffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000008" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000009" : { - "balance" : "0x00", - "code" : "0x67ffffffffffffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000009" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000010" : { - "balance" : "0x00", - "code" : "0x6d0fffffffffffffffffffffffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000010" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000011" : { - "balance" : "0x00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000f3", - "nonce" : "0x00", + "1000000000000000000000000000000000000011" : { + "balance" : "0", + "code" : "{ (RETURN 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000012" : { - "balance" : "0x00", - "code" : "0x630fffffff630ffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000012" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffff 0xfffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000013" : { - "balance" : "0x00", - "code" : "0x63ffffffff63fffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000013" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffff 0xffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000014" : { - "balance" : "0x00", - "code" : "0x67ffffffffffffffff67fffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000014" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffff 0xffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000015" : { - "balance" : "0x00", - "code" : "0x6d0fffffffffffffffffffffffffff6d0ffffffffffffffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000015" : { + "balance" : "0", + "code" : "{ (RETURN 0xfffffffffffffffffffffffffff 0xfffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000016" : { - "balance" : "0x00", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3", - "nonce" : "0x00", + "1000000000000000000000000000000000000016" : { + "balance" : "0", + "code" : "{ (RETURN 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -198,14 +165,14 @@ "" ], "gasLimit" : [ - "0x0249f0" + "150000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_RawCallGasAsk.json b/GeneralStateTests/stStaticCall/static_RawCallGasAsk.json index b9de03b38..514a357c5 100644 --- a/GeneralStateTests/stStaticCall/static_RawCallGasAsk.json +++ b/GeneralStateTests/stStaticCall/static_RawCallGasAsk.json @@ -2,236 +2,134 @@ "static_RawCallGasAsk" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_RawCallGasAskFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x75f6a9df177ba6b148c256fa0063027ba7a7c8add6777053d68e9c0de7e2f9df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x75f6a9df177ba6b148c256fa0063027ba7a7c8add6777053d68e9c0de7e2f9df", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x75f6a9df177ba6b148c256fa0063027ba7a7c8add6777053d68e9c0de7e2f9df", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x75f6a9df177ba6b148c256fa0063027ba7a7c8add6777053d68e9c0de7e2f9df", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x072b3b" + } } } - ], - "EIP158" : [ - { - "hash" : "0x75f6a9df177ba6b148c256fa0063027ba7a7c8add6777053d68e9c0de7e2f9df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x75f6a9df177ba6b148c256fa0063027ba7a7c8add6777053d68e9c0de7e2f9df", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x75f6a9df177ba6b148c256fa0063027ba7a7c8add6777053d68e9c0de7e2f9df", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x75f6a9df177ba6b148c256fa0063027ba7a7c8add6777053d68e9c0de7e2f9df", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4f7ce23b8119233d194c84f73aa5f389c1c02b913c2c2b962c2a333005442614", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4f7ce23b8119233d194c84f73aa5f389c1c02b913c2c2b962c2a333005442614", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4f7ce23b8119233d194c84f73aa5f389c1c02b913c2c2b962c2a333005442614", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x4f7ce23b8119233d194c84f73aa5f389c1c02b913c2c2b962c2a333005442614", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "2000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x072b3b" + } } } - ], - "Homestead" : [ - { - "hash" : "0x4f7ce23b8119233d194c84f73aa5f389c1c02b913c2c2b962c2a333005442614", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4f7ce23b8119233d194c84f73aa5f389c1c02b913c2c2b962c2a333005442614", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4f7ce23b8119233d194c84f73aa5f389c1c02b913c2c2b962c2a333005442614", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 2, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x4f7ce23b8119233d194c84f73aa5f389c1c02b913c2c2b962c2a333005442614", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "3000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x0727d3" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x16494cb32aad6d0e23886406c044b4b7b63f5bcbe225b64c4506ba9debed297d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8316edda44592e4c0c24e69a6d83779511d7ef56c32ff5248755fc977076021c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7a301ff20116b7ac4c1064a5e1a54117316ef3bd8a0927db9f4282f63f8cf249", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 3, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa4607217b54124bd9e8dabecc54843222a5497383470c2fd8d2e64dede13553b", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "4000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x0727d3" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600052", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ (MSTORE 0 (GAS)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000000" : { - "balance" : "0xe8d4a51000", - "code" : "0x600060006000600060006000355af1", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000", + "code" : "{ (CALL (GAS) (CALLDATALOAD 0) 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600060006000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b622dc6c0fa505a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600060006000600073094f5374fce5edbc8e2a8697c15331677e6ebf0b617530fa505a600155", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x3000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x611f406000611f40600073094f5374fce5edbc8e2a8697c15331677e6ebf0b622dc6c0fa505a600155", - "nonce" : "0x00", + "3000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 3000000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 8000 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x4000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x611f406000611f40600073094f5374fce5edbc8e2a8697c15331677e6ebf0b617530fa505a600155", - "nonce" : "0x00", + "4000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 30000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 0 8000 0 8000) [[1]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -244,14 +142,14 @@ "0x0000000000000000000000004000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x07a120" + "500000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_Return50000_2.json b/GeneralStateTests/stStaticCall/static_Return50000_2.json index 18ce81b82..874613575 100644 --- a/GeneralStateTests/stStaticCall/static_Return50000_2.json +++ b/GeneralStateTests/stStaticCall/static_Return50000_2.json @@ -2,95 +2,69 @@ "static_Return50000_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_Return50000_2Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05429690", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "88250000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5ad31979dcd6c1653319398efe9368088d98de49ce56443963b7ba621d218cf9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "10bf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x00", + "storage" : { + "0x01" : "0x14f579" + } + }, + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0fffffffffffff", + "nonce" : "0x00", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5ad31979dcd6c1653319398efe9368088d98de49ce56443963b7ba621d218cf9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x160d9d29c283b06c57f777be4584e229597eb9f4303941d3d5e68ac3586a3f9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x160d9d29c283b06c57f777be4584e229597eb9f4303941d3d5e68ac3586a3f9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5ad31979dcd6c1653319398efe9368088d98de49ce56443963b7ba621d218cf9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x10bf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x6000600060006000600073bbbf5374fce5edbc8e2a8697c15331677e6ebf0b5af16000555a600155", - "nonce" : "0x00", + "10bf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ [[ 0 ]] (CALL (GAS) 0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x61c34f356000526001600051f3", - "nonce" : "0x00", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (MSTORE 0 (CALLDATALOAD 49999)) (RETURN (MLOAD 0) 1) }", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0fffffffffffff", - "code" : "0x5b61c3506080511015603d576000600061c350600073aaaf5374fce5edbc8e2a8697c15331677e6ebf0b61061cfa6000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0xfffffffffffff", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) [[ 0 ]] (STATICCALL 1564 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 0 50000 0 0) ) [[ 1 ]] @i }", + "nonce" : "0", "storage" : { } } @@ -100,14 +74,14 @@ "" ], "gasLimit" : [ - "0x05429690" + "88250000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x10bf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "10bf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_ReturnTest.json b/GeneralStateTests/stStaticCall/static_ReturnTest.json index 964cfb384..a29797e69 100644 --- a/GeneralStateTests/stStaticCall/static_ReturnTest.json +++ b/GeneralStateTests/stStaticCall/static_ReturnTest.json @@ -2,88 +2,55 @@ "static_ReturnTest" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTestFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1de67e15605fe857b6af95271596144b8977fa82355ac243b71dbb695b20ea82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x15" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1de67e15605fe857b6af95271596144b8977fa82355ac243b71dbb695b20ea82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1de67e15605fe857b6af95271596144b8977fa82355ac243b71dbb695b20ea82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1de67e15605fe857b6af95271596144b8977fa82355ac243b71dbb695b20ea82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1bf1cf36b2124a96efb8d31b1b47f721a804adec9b05a4b1ef4c2c6e00f3b59f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6001601f6001601e73b94f5374fce5edbc8e2a8697c15331677e6ebf0b6107d0fa506000516000556002601ef3", - "nonce" : "0x00", + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{(STATICCALL 2000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 30 1 31 1) [[0]](MLOAD 0) (RETURN 30 2)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", - "code" : "0x60156000526001601ff3", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(MSTORE 0 0x15) (RETURN 31 1)}", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x194f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "194f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_ReturnTest2.json b/GeneralStateTests/stStaticCall/static_ReturnTest2.json index 9785f6cb0..1c1e95206 100644 --- a/GeneralStateTests/stStaticCall/static_ReturnTest2.json +++ b/GeneralStateTests/stStaticCall/static_ReturnTest2.json @@ -2,88 +2,56 @@ "static_ReturnTest2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_ReturnTest2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x3b9aca00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0f75e6b172f2fca4fb94e775cb14c0998ed358b99a14aab391f3e2594bcc1234", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x15", + "0x01" : "0x3f" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0f75e6b172f2fca4fb94e775cb14c0998ed358b99a14aab391f3e2594bcc1234", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0f75e6b172f2fca4fb94e775cb14c0998ed358b99a14aab391f3e2594bcc1234", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0f75e6b172f2fca4fb94e775cb14c0998ed358b99a14aab391f3e2594bcc1234", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x63f59a3efead2804981734717ced8cd6bcf040cc83a28ba756032585e4a08576", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6015600052602060206020600073b94f5374fce5edbc8e2a8697c15331677e6ebf0b611b58fa5060005160005560205160015560406000f3", - "nonce" : "0x00", + "194f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{(MSTORE 0 0x15)(STATICCALL 7000 0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 32 32 32) [[0]](MLOAD 0) [[1]](MLOAD 32) (RETURN 0 64)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", - "code" : "0x60003560030260005260206000f3", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(MSTORE 0 (MUL 3 (CALLDATALOAD 0)))(RETURN 0 32)}", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x03d090" + "250000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x194f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "194f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_RevertDepth2.json b/GeneralStateTests/stStaticCall/static_RevertDepth2.json index 1a4e9e10c..c8d9dffb8 100644 --- a/GeneralStateTests/stStaticCall/static_RevertDepth2.json +++ b/GeneralStateTests/stStaticCall/static_RevertDepth2.json @@ -2,102 +2,92 @@ "static_RevertDepth2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_RevertDepth2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x27b3b2eac2dbfeed3d4a2c79f785636f46b6cc16395c9e7850ad0124edcb2981", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "c000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "d000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x27b3b2eac2dbfeed3d4a2c79f785636f46b6cc16395c9e7850ad0124edcb2981", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x27b3b2eac2dbfeed3d4a2c79f785636f46b6cc16395c9e7850ad0124edcb2981", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x27b3b2eac2dbfeed3d4a2c79f785636f46b6cc16395c9e7850ad0124edcb2981", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x27b3b2eac2dbfeed3d4a2c79f785636f46b6cc16395c9e7850ad0124edcb2981", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600054600101600055600060006000600073b000000000000000000000000000000000000000620249f0fa600155600060006000600073d000000000000000000000000000000000000000620249f0fa600255", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ [[0]] (ADD 1 (SLOAD 0)) [[1]] (STATICCALL 150000 0xb000000000000000000000000000000000000000 0 0 0 0) [[2]] (STATICCALL 150000 0xd000000000000000000000000000000000000000 0 0 0 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600060006000600073c00000000000000000000000000000000000000061c350fa506001600152", - "nonce" : "0x00", + "b000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ (STATICCALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0) (MSTORE 1 1) }", + "nonce" : "", "storage" : { } }, - "0xc000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "c000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xd000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x600060006000600073c00000000000000000000000000000000000000061c350fa505a600155", - "nonce" : "0x00", + "d000000000000000000000000000000000000000" : { + "balance" : "", + "code" : "{ (STATICCALL 50000 0xc000000000000000000000000000000000000000 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -107,14 +97,14 @@ "" ], "gasLimit" : [ - "0x029abd" + "170685" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_RevertOpcodeCalls.json b/GeneralStateTests/stStaticCall/static_RevertOpcodeCalls.json index 816b9239b..85d52caa5 100644 --- a/GeneralStateTests/stStaticCall/static_RevertOpcodeCalls.json +++ b/GeneralStateTests/stStaticCall/static_RevertOpcodeCalls.json @@ -2,128 +2,55 @@ "static_RevertOpcodeCalls" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_RevertOpcodeCallsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfb6d9aa12be05a1b97064c0917d00880c935b5049e900bed77efbfbda17b69e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4b1ba524f968c6d00ad4e1168e0925a4c14037cf4ab4472b7ef817ba0ec04a71", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xfb6d9aa12be05a1b97064c0917d00880c935b5049e900bed77efbfbda17b69e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4b1ba524f968c6d00ad4e1168e0925a4c14037cf4ab4472b7ef817ba0ec04a71", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfb6d9aa12be05a1b97064c0917d00880c935b5049e900bed77efbfbda17b69e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4b1ba524f968c6d00ad4e1168e0925a4c14037cf4ab4472b7ef817ba0ec04a71", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfb6d9aa12be05a1b97064c0917d00880c935b5049e900bed77efbfbda17b69e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4b1ba524f968c6d00ad4e1168e0925a4c14037cf4ab4472b7ef817ba0ec04a71", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa7c91c25306b2a92ae0371a38c784673fd2c10bd0ded6a428b3fbb4ed39fe7a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa7c91c25306b2a92ae0371a38c784673fd2c10bd0ded6a428b3fbb4ed39fe7a2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61c350fa6000556001600155", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[1]] 1}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x60016000fd", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (REVERT 0 1) }", + "nonce" : "0", "storage" : { } } @@ -133,15 +60,15 @@ "" ], "gasLimit" : [ - "0x0704e0", - "0x0157c0" + "460000", + "88000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "094f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_ZeroValue_CALL_OOGRevert.json b/GeneralStateTests/stStaticCall/static_ZeroValue_CALL_OOGRevert.json index 169a0115d..25ea092fd 100644 --- a/GeneralStateTests/stStaticCall/static_ZeroValue_CALL_OOGRevert.json +++ b/GeneralStateTests/stStaticCall/static_ZeroValue_CALL_OOGRevert.json @@ -2,81 +2,56 @@ "static_ZeroValue_CALL_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_CALL_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa734b9b37f727f05af41ada03ed8d58fe3ae9d3df72c91bba54ccee2a93cd1f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xa734b9b37f727f05af41ada03ed8d58fe3ae9d3df72c91bba54ccee2a93cd1f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa734b9b37f727f05af41ada03ed8d58fe3ae9d3df72c91bba54ccee2a93cd1f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa734b9b37f727f05af41ada03ed8d58fe3ae9d3df72c91bba54ccee2a93cd1f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa734b9b37f727f05af41ada03ed8d58fe3ae9d3df72c91bba54ccee2a93cd1f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60fa600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (STATICCALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +61,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_ZeroValue_SUICIDE_OOGRevert.json b/GeneralStateTests/stStaticCall/static_ZeroValue_SUICIDE_OOGRevert.json index 15b73c354..3e655f4fa 100644 --- a/GeneralStateTests/stStaticCall/static_ZeroValue_SUICIDE_OOGRevert.json +++ b/GeneralStateTests/stStaticCall/static_ZeroValue_SUICIDE_OOGRevert.json @@ -2,88 +2,61 @@ "static_ZeroValue_SUICIDE_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_ZeroValue_SUICIDE_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6194eebfb41678807de678a238c07a79cfe19bd51e65bf6e81a2e1a472ce4ec5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x6194eebfb41678807de678a238c07a79cfe19bd51e65bf6e81a2e1a472ce4ec5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6194eebfb41678807de678a238c07a79cfe19bd51e65bf6e81a2e1a472ce4ec5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6194eebfb41678807de678a238c07a79cfe19bd51e65bf6e81a2e1a472ce4ec5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6194eebfb41678807de678a238c07a79cfe19bd51e65bf6e81a2e1a472ce4ec5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b619c40fa50600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (STATICCALL 40000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]](GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +66,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callBasic.json b/GeneralStateTests/stStaticCall/static_callBasic.json index 8fb44d2f2..6d34a94e4 100644 --- a/GeneralStateTests/stStaticCall/static_callBasic.json +++ b/GeneralStateTests/stStaticCall/static_callBasic.json @@ -2,244 +2,139 @@ "static_callBasic" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callBasicFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : [ + 0, + 1 + ], + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x0d523a" + } } } - ], - "Homestead" : [ - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : [ + 2 + ], + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x878b80add1abb7af8d96df83bce06145d9fb66fa717d2cc1287f1b6c79bd2e9e", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0dff20" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x9e7aa1a7c5c8d833eddc371a7f345164c71f351cdec57f88694a43e9808cb266", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9e7aa1a7c5c8d833eddc371a7f345164c71f351cdec57f88694a43e9808cb266", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa36b307bf39fda51ee5d0e625576b54edffce138c72af2ac59ad89933af2f486", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : [ + 3 + ], + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x9de54a362f7300bda55c9888c94c4b822c3db8a1a4913698622a63fbd629ec56", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0e8125" + } + }, + "3000000000000000000000000000000000000003" : { + "balance" : "23" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600035620186a0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x17", - "code" : "0x6001600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "23", + "code" : " { [[ 1 ]] 1 } ", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x17", - "code" : "0x6000600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "23", + "code" : " { [[ 1 ]] 0 } ", + "nonce" : "0", "storage" : { + "0x01" : "0x00" } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x17", - "code" : "0x60006000600060006000732000000000000000000000000000000000000003619c40f1506001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "23", + "code" : " { (CALL 40000 0x2000000000000000000000000000000000000003 0 0 0 0 0) (MSTORE 1 1) } ", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000004" : { - "balance" : "0x17", - "code" : "0x60006000600060006001733000000000000000000000000000000000000003619c40f2506001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000004" : { + "balance" : "23", + "code" : " { (CALLCODE 40000 0x3000000000000000000000000000000000000003 1 0 0 0 0) (MSTORE 1 1) } ", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000003" : { - "balance" : "0x17", - "code" : "0x600a6001a06001600152", - "nonce" : "0x00", + "2000000000000000000000000000000000000003" : { + "balance" : "23", + "code" : " { (LOG0 1 10) (MSTORE 1 1) } ", + "nonce" : "0", "storage" : { } }, - "0x3000000000000000000000000000000000000003" : { - "balance" : "0x17", - "code" : "0x6001600152", - "nonce" : "0x00", + "3000000000000000000000000000000000000003" : { + "balance" : "23", + "code" : " { (MSTORE 1 1) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -252,14 +147,14 @@ "0x0000000000000000000000001000000000000000000000000000000000000004" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callChangeRevert.json b/GeneralStateTests/stStaticCall/static_callChangeRevert.json index adc7f8329..973cb5212 100644 --- a/GeneralStateTests/stStaticCall/static_callChangeRevert.json +++ b/GeneralStateTests/stStaticCall/static_callChangeRevert.json @@ -2,196 +2,132 @@ "static_callChangeRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callChangeRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9862bd7f7e41739567c0fcf373a643e02199a8f8221784b8015d796d5cfa80b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9862bd7f7e41739567c0fcf373a643e02199a8f8221784b8015d796d5cfa80b0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9862bd7f7e41739567c0fcf373a643e02199a8f8221784b8015d796d5cfa80b0", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9862bd7f7e41739567c0fcf373a643e02199a8f8221784b8015d796d5cfa80b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9862bd7f7e41739567c0fcf373a643e02199a8f8221784b8015d796d5cfa80b0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9862bd7f7e41739567c0fcf373a643e02199a8f8221784b8015d796d5cfa80b0", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa1a814154ba9bf8d4c027fe43f5216dae1123bd2f70e94296b71adf31884bf27", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa1a814154ba9bf8d4c027fe43f5216dae1123bd2f70e94296b71adf31884bf27", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1a814154ba9bf8d4c027fe43f5216dae1123bd2f70e94296b71adf31884bf27", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02" } } - ], - "Homestead" : [ - { - "hash" : "0xa1a814154ba9bf8d4c027fe43f5216dae1123bd2f70e94296b71adf31884bf27", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1a814154ba9bf8d4c027fe43f5216dae1123bd2f70e94296b71adf31884bf27", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa1a814154ba9bf8d4c027fe43f5216dae1123bd2f70e94296b71adf31884bf27", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "balance" : "0x00" + }, + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xedf534c3449840273633f020f057b42f6c24bffece5c4d8fd22acd6d3906c703", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9862bd7f7e41739567c0fcf373a643e02199a8f8221784b8015d796d5cfa80b0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 2, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa38f4ab3a7fd701ac24ddf0c98be0a785709205e54754414d389a5560e686727", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "balance" : "0x02" + }, + "3000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006001731000000000000000000000000000000000000001620186a0f16000556000600060006000731000000000000000000000000000000000000001620186a0fa60015560006000600060006001731000000000000000000000000000000000000001620186a0f1600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 100000 0x1000000000000000000000000000000000000001 1 0 0 0 0) [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000001 0 0 0 0) [[ 2 ]] (CALL 100000 0x1000000000000000000000000000000000000001 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6001600152600154600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "", + "code" : "{ (MSTORE 1 1) (SSTORE 1 (SLOAD 1)) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006001731000000000000000000000000000000000000001620186a0f16000556000600060006000731000000000000000000000000000000000000001620186a0fa60015560006000600060006001731000000000000000000000000000000000000001620186a0f16002555b61c3506080511015608b576001608051016080526073565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 100000 0x1000000000000000000000000000000000000001 1 0 0 0 0) [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000001 0 0 0 0) [[ 2 ]] (CALL 100000 0x1000000000000000000000000000000000000001 1 0 0 0 0) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x3000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006001731000000000000000000000000000000000000002620186a0f16000556000600060006000731000000000000000000000000000000000000002620186a0fa60015560006000600060006001731000000000000000000000000000000000000002620186a0f1600255", - "nonce" : "0x00", + "3000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 100000 0x1000000000000000000000000000000000000002 1 0 0 0 0) [[ 1 ]] (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 0 0) [[ 2 ]] (CALL 100000 0x1000000000000000000000000000000000000002 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600060003562055730f1", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (CALL 350000 (CALLDATALOAD 0) 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -203,14 +139,14 @@ "0x0000000000000000000000003000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callCreate.json b/GeneralStateTests/stStaticCall/static_callCreate.json index 9e0d6c5da..6bae04ec2 100644 --- a/GeneralStateTests/stStaticCall/static_callCreate.json +++ b/GeneralStateTests/stStaticCall/static_callCreate.json @@ -2,229 +2,99 @@ "static_callCreate" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callCreateFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : [ + 0, + 2, + 3 + ], + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x458708119c90c61ffa99d27a92b8c1b9936d3f86c1cf410ca36b494f677bc3b4", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x4913a843fbbb28522841c365fda4cc864fe0289326d4b3818fa411e69a48056a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x572451704b993036d72ba5e2fbce35551573d5750623101e23c06c501ab45ce0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9b5302ee01f42b5282b0a0f4daf587e3e19797b71c1838524e0abb9daca74a79", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : [ + 1 + ], + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x9b5302ee01f42b5282b0a0f4daf587e3e19797b71c1838524e0abb9daca74a79", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600035620493e0fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 300000 (CALLDATALOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006000731000000000000000000000000000000000000002620249f0f1", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (CALL 150000 0x1000000000000000000000000000000000000002 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160016000f0", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (CREATE 0 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000731000000000000000000000000000000000000002620249f0f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "1000000000000000000", + "code" : "{ (DELEGATECALL 150000 0x1000000000000000000000000000000000000002 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000004" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000731000000000000000000000000000000000000002620249f0fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000004" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 150000 0x1000000000000000000000000000000000000002 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -237,14 +107,14 @@ "0x0000000000000000000000001000000000000000000000000000000000000004" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callCreate2.json b/GeneralStateTests/stStaticCall/static_callCreate2.json index ba0437fe6..2fbb4ee6b 100644 --- a/GeneralStateTests/stStaticCall/static_callCreate2.json +++ b/GeneralStateTests/stStaticCall/static_callCreate2.json @@ -2,182 +2,111 @@ "static_callCreate2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callCreate2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x10b8cf99d89c7993a5c2162c68114522ddc549018f0512e9e96a1cee6c1d3ed6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5fab2061f493c9343bbee1e7edc78914311aa34878145bc249c4e996bf7faf54", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5fab2061f493c9343bbee1e7edc78914311aa34878145bc249c4e996bf7faf54", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x10b8cf99d89c7993a5c2162c68114522ddc549018f0512e9e96a1cee6c1d3ed6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5fab2061f493c9343bbee1e7edc78914311aa34878145bc249c4e996bf7faf54", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5fab2061f493c9343bbee1e7edc78914311aa34878145bc249c4e996bf7faf54", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd059e3df4c5983e3eb2aefe4e21ddec38cfb7e50985722e901cb284cfafdc821", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x4f054fdf16893de1522c1f59ec9a4fd439ae5d7589f782a97b1b42d7d9624efb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4f054fdf16893de1522c1f59ec9a4fd439ae5d7589f782a97b1b42d7d9624efb", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x13136008b64ff592819b2fa6d43f2835c452020e", + "0x01" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xd059e3df4c5983e3eb2aefe4e21ddec38cfb7e50985722e901cb284cfafdc821", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4f054fdf16893de1522c1f59ec9a4fd439ae5d7589f782a97b1b42d7d9624efb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x4f054fdf16893de1522c1f59ec9a4fd439ae5d7589f782a97b1b42d7d9624efb", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x5dddfce53ee040d9eb21afbc0ae1bb4dbb0ba643", + "0x01" : "0x00" + } + }, + "5dddfce53ee040d9eb21afbc0ae1bb4dbb0ba643" : { + "code" : "0x6001600155", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x3a8606384958c04ab62190291bd59e34e7027ba675e7030167d6414465d3ff0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9edc7af189337cc08709e50b3b1ebc8a57a6edb67681602c3aae95837708fae8", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 2, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x5fab2061f493c9343bbee1e7edc78914311aa34878145bc249c4e996bf7faf54", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006001f06000556000600060006000600054620493e0fa600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CREATE 1 0 0) [[ 1 ]] (STATICCALL 300000 (SLOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6d6460016001556000526005601bf3600052600e60126001f06000556000600060006000600054620493e0fa600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x6460016001556000526005601bf3 ) [[ 0 ]] (CREATE 1 18 14) [[ 1 ]] (STATICCALL 300000 (SLOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6d6460016001556000526005601bf3600052600e60126001f06000556000600060006000600054620493e0fa6001555b61c3506080511015604757600160805101608052602f565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x6460016001556000526005601bf3 ) [[ 0 ]] (CREATE 1 18 14) [[ 1 ]] (STATICCALL 300000 (SLOAD 0) 0 0 0 0) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006000600035620927c0f1", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (CALL 600000 (CALLDATALOAD 0) 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -189,14 +118,14 @@ "0x0000000000000000000000001000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callCreate3.json b/GeneralStateTests/stStaticCall/static_callCreate3.json index 2d0f9fe8d..7d885c338 100644 --- a/GeneralStateTests/stStaticCall/static_callCreate3.json +++ b/GeneralStateTests/stStaticCall/static_callCreate3.json @@ -2,88 +2,57 @@ "static_callCreate3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callCreate3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6667373379d90d12444e57a2f1d8ebd76e77f5b0f4728528af7db63656f73abf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x13136008b64ff592819b2fa6d43f2835c452020e", + "0x01" : "0x01", + "0x02" : "0x07a52c" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6667373379d90d12444e57a2f1d8ebd76e77f5b0f4728528af7db63656f73abf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb4a6205f5e3b59953b554d0e9f501f1cd0869cb1d0a7fb2d2f30047b4ae617f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbb4a6205f5e3b59953b554d0e9f501f1cd0869cb1d0a7fb2d2f30047b4ae617f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa2655cccdd6db292d3ca596efcec973c768c33a68f99e6edda1fe2c6f024dc94", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x766d600060006000600030620186a0fa600052600e6012f3600052601760096001f06000556000600060006000600054617530fa6001555a600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x6d600060006000600030620186a0fa600052600e6012f3) [[ 0 ]] (CREATE 1 9 23) [[ 1 ]] (STATICCALL 30000 (SLOAD 0) 0 0 0 0) [[ 2 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006000600035620927c0f1", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (CALL 600000 (CALLDATALOAD 0) 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "0x0000000000000000000000001000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callOutput1.json b/GeneralStateTests/stStaticCall/static_callOutput1.json index 32fd7e951..c28c2393c 100644 --- a/GeneralStateTests/stStaticCall/static_callOutput1.json +++ b/GeneralStateTests/stStaticCall/static_callOutput1.json @@ -2,88 +2,55 @@ "static_callOutput1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callOutput1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdcda2f2506d8ab12525df357269e67542e003479bb625dc3daf0372a799c39a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf57cc3cc70e027eeaae84a16969e046b31dac683e63ff8fc008489564833fadf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdcda2f2506d8ab12525df357269e67542e003479bb625dc3daf0372a799c39a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdcda2f2506d8ab12525df357269e67542e003479bb625dc3daf0372a799c39a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcca6c7bacf50f319336fdbcf913372f7e77d4d6aea7affe3d6d7227efb6fe15a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350fa50600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0) [[ 0 ]] (MLOAD 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callOutput2.json b/GeneralStateTests/stStaticCall/static_callOutput2.json index 5a1e4f72d..001c97cee 100644 --- a/GeneralStateTests/stStaticCall/static_callOutput2.json +++ b/GeneralStateTests/stStaticCall/static_callOutput2.json @@ -2,88 +2,55 @@ "static_callOutput2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callOutput2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x74fb1943ccac07624e78e0095e705ae443a4b63808612ffcda05ff65c7641017", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4b8ba8a78ccb66a9cdc5121a3c9583cfead49dda36d95742c7d3c834bb98bcbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x74fb1943ccac07624e78e0095e705ae443a4b63808612ffcda05ff65c7641017", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x74fb1943ccac07624e78e0095e705ae443a4b63808612ffcda05ff65c7641017", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x98397672a9ff65d8aac09897a5b84ec04723504cfe7f46e23b5a84683c0c8d3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600060006020600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350fa50600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 32 0 0) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callOutput3.json b/GeneralStateTests/stStaticCall/static_callOutput3.json index b4f2f8772..f506ab962 100644 --- a/GeneralStateTests/stStaticCall/static_callOutput3.json +++ b/GeneralStateTests/stStaticCall/static_callOutput3.json @@ -2,88 +2,55 @@ "static_callOutput3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x94b2e25ea06e61afec651fc72c881f748d12df0a85a0b59e90cd045c95b39098", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5bb10fa4353d6532f637333c2ab5f0c534049c8e72715b11b6194a170cfe826e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x94b2e25ea06e61afec651fc72c881f748d12df0a85a0b59e90cd045c95b39098", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x94b2e25ea06e61afec651fc72c881f748d12df0a85a0b59e90cd045c95b39098", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7351d755bcda41e65209ea35b96115142fc1dd817a2a84b3bdb3ea309b20ede8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052602060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350fa50600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callOutput3Fail.json b/GeneralStateTests/stStaticCall/static_callOutput3Fail.json index fca865950..8cb27d560 100644 --- a/GeneralStateTests/stStaticCall/static_callOutput3Fail.json +++ b/GeneralStateTests/stStaticCall/static_callOutput3Fail.json @@ -2,88 +2,55 @@ "static_callOutput3Fail" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3FailFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x66a39518ae7bcd6103fe0a7afb975949ad2f9385c4ff9ac51f9787c9c40ab736", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7678f54fad56cc9150c2be153fad75b3a4aa7fe8e65d00154a8376cb55a037a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x66a39518ae7bcd6103fe0a7afb975949ad2f9385c4ff9ac51f9787c9c40ab736", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x66a39518ae7bcd6103fe0a7afb975949ad2f9385c4ff9ac51f9787c9c40ab736", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7c04be3b67c508c3748e758fc3311369f6e60db8a7e0063977643e234a269aea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052602060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350fa50600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 32) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x016001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callOutput3partial.json b/GeneralStateTests/stStaticCall/static_callOutput3partial.json index 5fb6e2102..980bcc2e2 100644 --- a/GeneralStateTests/stStaticCall/static_callOutput3partial.json +++ b/GeneralStateTests/stStaticCall/static_callOutput3partial.json @@ -2,88 +2,55 @@ "static_callOutput3partial" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x43e4e92dfaf950b23a61a44e194fffa52bd9ee18821d8c735d915a117021f4ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x64d7853e9540e2e989967df6097d95ddfdb1e1350d948667a4e663f98292fcfc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x43e4e92dfaf950b23a61a44e194fffa52bd9ee18821d8c735d915a117021f4ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x43e4e92dfaf950b23a61a44e194fffa52bd9ee18821d8c735d915a117021f4ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2bd4fde32fa0decdf81d844f06c8c7ee39638c5ebaa30cb08cc80e7eaf95a1b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600a60006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350fa50600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callOutput3partialFail.json b/GeneralStateTests/stStaticCall/static_callOutput3partialFail.json index 2a4a9ce8e..6c4c8c189 100644 --- a/GeneralStateTests/stStaticCall/static_callOutput3partialFail.json +++ b/GeneralStateTests/stStaticCall/static_callOutput3partialFail.json @@ -2,88 +2,55 @@ "static_callOutput3partialFail" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callOutput3partialFailFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x363c99ea485be79f75665c2e2163fec499d65c1144b405209d88c989f451d3ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa24047f1310c69b4bd35bf0ef83d84cfa1998109834c3f85eb57c5b2d05b321f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x363c99ea485be79f75665c2e2163fec499d65c1144b405209d88c989f451d3ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x363c99ea485be79f75665c2e2163fec499d65c1144b405209d88c989f451d3ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5146b697f8ab39ea6fdc15ed2d8e55dabd0797e21c8f277c1d1c2e239c620edf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7f5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6600052600a60006000600073aaae7baea6a6c7c4c2dfeb977efac326af552d8761c350fa50600051600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6) (STATICCALL 50000 0xaaae7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 10) [[ 0 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "aaae7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x016001600101600055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callToCallCodeOpCodeCheck.json b/GeneralStateTests/stStaticCall/static_callToCallCodeOpCodeCheck.json index 574b880d4..998ed8e13 100644 --- a/GeneralStateTests/stStaticCall/static_callToCallCodeOpCodeCheck.json +++ b/GeneralStateTests/stStaticCall/static_callToCallCodeOpCodeCheck.json @@ -2,95 +2,62 @@ "static_callToCallCodeOpCodeCheck" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callToCallCodeOpCodeCheckFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbe52a420010514c20a0755b3a4848f702ca9dc6622dcd487f173e53b5362079e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbe52a420010514c20a0755b3a4848f702ca9dc6622dcd487f173e53b5362079e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbe52a420010514c20a0755b3a4848f702ca9dc6622dcd487f173e53b5362079e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbe52a420010514c20a0755b3a4848f702ca9dc6622dcd487f173e53b5362079e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9ee4a79f211e99a66a190f1ee07b9d8e55f8268da4e4d3bd8d1432f8044b40e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600035620186a0fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006000731000000000000000000000000000000000000002620186a0f26000526000516001146038576001600155603e565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 1) ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373100000000000000000000000000000000000000114604b5760026001556051565b60016001525b30731000000000000000000000000000000000000001146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +67,14 @@ "0x0000000000000000000000001000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callToCallOpCodeCheck.json b/GeneralStateTests/stStaticCall/static_callToCallOpCodeCheck.json index a3854a2c5..841369550 100644 --- a/GeneralStateTests/stStaticCall/static_callToCallOpCodeCheck.json +++ b/GeneralStateTests/stStaticCall/static_callToCallOpCodeCheck.json @@ -2,95 +2,62 @@ "static_callToCallOpCodeCheck" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callToCallOpCodeCheckFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x48144ffd7a138f29a04d4982125f32049c1955c0689656d410f4c5c42ff1e9a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x48144ffd7a138f29a04d4982125f32049c1955c0689656d410f4c5c42ff1e9a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x48144ffd7a138f29a04d4982125f32049c1955c0689656d410f4c5c42ff1e9a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x48144ffd7a138f29a04d4982125f32049c1955c0689656d410f4c5c42ff1e9a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa1263f951927904a54d7e668e89eb03b4cb2b173275f3db7bd77982aec9c4057", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600035620186a0fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006000731000000000000000000000000000000000000002620186a0f16000526000516001146038576001600155603e565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALL 100000 0x1000000000000000000000000000000000000002 0 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 1) ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373100000000000000000000000000000000000000114604b5760026001556051565b60016001525b30731000000000000000000000000000000000000002146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000002 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +67,14 @@ "0x0000000000000000000000001000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callToDelCallOpCodeCheck.json b/GeneralStateTests/stStaticCall/static_callToDelCallOpCodeCheck.json index ee6c75d9d..c9bec3461 100644 --- a/GeneralStateTests/stStaticCall/static_callToDelCallOpCodeCheck.json +++ b/GeneralStateTests/stStaticCall/static_callToDelCallOpCodeCheck.json @@ -2,95 +2,62 @@ "static_callToDelCallOpCodeCheck" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callToDelCallOpCodeCheckFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4a05e190ca9b2aa6ea6bb26553943e38bc7d0fc5720214d0cede65006c02c5b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4a05e190ca9b2aa6ea6bb26553943e38bc7d0fc5720214d0cede65006c02c5b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4a05e190ca9b2aa6ea6bb26553943e38bc7d0fc5720214d0cede65006c02c5b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4a05e190ca9b2aa6ea6bb26553943e38bc7d0fc5720214d0cede65006c02c5b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf27b07631e1e35993285fd56e6e21dc79b16c4aa0710c20334773f1b9a4dc624", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600035620186a0fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000731000000000000000000000000000000000000002620186a0f46000526000516001146036576001600155603c565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 1) ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373100000000000000000000000000000000000000014604b5760026001556051565b60016001525b30731000000000000000000000000000000000000001146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000000 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +67,14 @@ "0x0000000000000000000000001000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callToStaticOpCodeCheck.json b/GeneralStateTests/stStaticCall/static_callToStaticOpCodeCheck.json index a87bcca6c..4ad81a3a3 100644 --- a/GeneralStateTests/stStaticCall/static_callToStaticOpCodeCheck.json +++ b/GeneralStateTests/stStaticCall/static_callToStaticOpCodeCheck.json @@ -2,95 +2,62 @@ "static_callToStaticOpCodeCheck" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callToStaticOpCodeCheckFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf4fae6c9153d7bc9db07d90c1481e2d04fee420a1f5ce32eeeed2480907f7b1c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf4fae6c9153d7bc9db07d90c1481e2d04fee420a1f5ce32eeeed2480907f7b1c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf4fae6c9153d7bc9db07d90c1481e2d04fee420a1f5ce32eeeed2480907f7b1c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf4fae6c9153d7bc9db07d90c1481e2d04fee420a1f5ce32eeeed2480907f7b1c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x84398cb8003abdfdfe57ab2377b14dbd83e4f7633e04f72784e45a387d5998c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000600035620186a0fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 100000 (CALLDATALOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000731000000000000000000000000000000000000002620186a0fa6000526000516001146036576001600155603c565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 0 0 0)) (if (= 1 (MLOAD 0)) (MSTORE 1 1) (SSTORE 1 1) ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x3273a94f5374fce5edbc8e2a8697c15331677e6ebf0b1460225760026001556028565b60016001525b3373100000000000000000000000000000000000000114604b5760026001556051565b60016001525b30731000000000000000000000000000000000000002146074576002600155607a565b60016001525b34600014608a5760026001556090565b60016001525b", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (if (= 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b (ORIGIN)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000001 (CALLER)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0x1000000000000000000000000000000000000002 (ADDRESS)) (MSTORE 1 1) (SSTORE 1 2) ) (if (= 0 (CALLVALUE)) (MSTORE 1 1) (SSTORE 1 2) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +67,14 @@ "0x0000000000000000000000001000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callWithHighValue.json b/GeneralStateTests/stStaticCall/static_callWithHighValue.json index a2731a2b5..eedf5dec9 100644 --- a/GeneralStateTests/stStaticCall/static_callWithHighValue.json +++ b/GeneralStateTests/stStaticCall/static_callWithHighValue.json @@ -2,88 +2,56 @@ "static_callWithHighValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8f6045c603354ac947928942738084e0abca2b07d45b7a0b43cd805fb4d6846b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d23ad" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8f6045c603354ac947928942738084e0abca2b07d45b7a0b43cd805fb4d6846b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8f6045c603354ac947928942738084e0abca2b07d45b7a0b43cd805fb4d6846b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8f6045c603354ac947928942738084e0abca2b07d45b7a0b43cd805fb4d6846b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x43f0bce54ba1b951c95f5c63d0583047a777f150fb4bf9c4b3b45227d5c34a4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600260006040600073945304eb96065b2a98b57a48a06ae28d285a71b561c350fa6000555a600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 50000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 2 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callWithHighValueAndGasOOG.json b/GeneralStateTests/stStaticCall/static_callWithHighValueAndGasOOG.json index c2a949a12..44a4de3f6 100644 --- a/GeneralStateTests/stStaticCall/static_callWithHighValueAndGasOOG.json +++ b/GeneralStateTests/stStaticCall/static_callWithHighValueAndGasOOG.json @@ -2,88 +2,56 @@ "static_callWithHighValueAndGasOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndGasOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x84929503ecc3a6ca10a1363609e30a3dbe5c30dba222949c206e4e5e795b7583", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x3700ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } } } - ], - "EIP158" : [ - { - "hash" : "0x84929503ecc3a6ca10a1363609e30a3dbe5c30dba222949c206e4e5e795b7583", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x84929503ecc3a6ca10a1363609e30a3dbe5c30dba222949c206e4e5e795b7583", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x84929503ecc3a6ca10a1363609e30a3dbe5c30dba222949c206e4e5e795b7583", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2dc5f18cf4be4b9d74d62fa5cd928596a3ee658b4cc84fa2462f1017d5a2a846", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa602052600260006040600073945304eb96065b2a98b57a48a06ae28d285a71b56bfffffffffffffffffffffffffa600055600051600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (STATICCALL 0xffffffffffffffffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 2 ) [[ 1 ]] (MLOAD 0)}", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callWithHighValueAndOOGatTxLevel.json b/GeneralStateTests/stStaticCall/static_callWithHighValueAndOOGatTxLevel.json index a7641e5e9..ae8f04fc5 100644 --- a/GeneralStateTests/stStaticCall/static_callWithHighValueAndOOGatTxLevel.json +++ b/GeneralStateTests/stStaticCall/static_callWithHighValueAndOOGatTxLevel.json @@ -2,88 +2,58 @@ "static_callWithHighValueAndOOGatTxLevel" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueAndOOGatTxLevelFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc632274ed416f6b4e1c235e385b68b35b4a5de30439b29022b44ae82ef5739b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "46751" } } - ], - "EIP158" : [ - { - "hash" : "0xc632274ed416f6b4e1c235e385b68b35b4a5de30439b29022b44ae82ef5739b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc632274ed416f6b4e1c235e385b68b35b4a5de30439b29022b44ae82ef5739b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc632274ed416f6b4e1c235e385b68b35b4a5de30439b29022b44ae82ef5739b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0e1e66ad160afa3d483690630b23d6322d2e5593a300637fffa265251977df82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", - "code" : "0x600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b5622dc6c1fa600055600051600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "100000", + "code" : "{ [[ 0 ]] (STATICCALL 3000001 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0 ) [[ 1 ]] (MLOAD 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +63,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callWithHighValueOOGinCall.json b/GeneralStateTests/stStaticCall/static_callWithHighValueOOGinCall.json index 321a73766..5f7f748e0 100644 --- a/GeneralStateTests/stStaticCall/static_callWithHighValueOOGinCall.json +++ b/GeneralStateTests/stStaticCall/static_callWithHighValueOOGinCall.json @@ -2,88 +2,55 @@ "static_callWithHighValueOOGinCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callWithHighValueOOGinCallFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x866830f0ed3b6a92449b793e9dbbcb46a989e0a0213fa3ac379ac2e7ba5c89e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x866830f0ed3b6a92449b793e9dbbcb46a989e0a0213fa3ac379ac2e7ba5c89e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x866830f0ed3b6a92449b793e9dbbcb46a989e0a0213fa3ac379ac2e7ba5c89e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x866830f0ed3b6a92449b793e9dbbcb46a989e0a0213fa3ac379ac2e7ba5c89e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf46d27e071984a9d34e79b8eff431c47ea75a4016ef8aff6b4895fe7fe2374ce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0186a0", - "code" : "0x6001600060006000600073945304eb96065b2a98b57a48a06ae28d285a71b5600afa01600055600051600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "100000", + "code" : "{ [[ 0 ]] (ADD (STATICCALL 10 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 0 0 0 ) 1) [[ 1 ]] (MLOAD 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_call_OOG_additionalGasCosts1.json b/GeneralStateTests/stStaticCall/static_call_OOG_additionalGasCosts1.json index d68a9b767..525e9b4bb 100644 --- a/GeneralStateTests/stStaticCall/static_call_OOG_additionalGasCosts1.json +++ b/GeneralStateTests/stStaticCall/static_call_OOG_additionalGasCosts1.json @@ -2,81 +2,46 @@ "static_call_OOG_additionalGasCosts1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0a39a026a13e02b20833e7367fec666478b287a88cfdb85c18453705f8d23452", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "30000" } } - ], - "EIP158" : [ - { - "hash" : "0x0a39a026a13e02b20833e7367fec666478b287a88cfdb85c18453705f8d23452", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0a39a026a13e02b20833e7367fec666478b287a88cfdb85c18453705f8d23452", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0a39a026a13e02b20833e7367fec666478b287a88cfdb85c18453705f8d23452", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0a39a026a13e02b20833e7367fec666478b287a88cfdb85c18453705f8d23452", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001611770fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 6000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +51,14 @@ "" ], "gasLimit" : [ - "0x7530" + "30000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_call_OOG_additionalGasCosts2.json b/GeneralStateTests/stStaticCall/static_call_OOG_additionalGasCosts2.json index 92f14509c..657cddfb7 100644 --- a/GeneralStateTests/stStaticCall/static_call_OOG_additionalGasCosts2.json +++ b/GeneralStateTests/stStaticCall/static_call_OOG_additionalGasCosts2.json @@ -2,88 +2,60 @@ "static_call_OOG_additionalGasCosts2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_call_OOG_additionalGasCosts2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf240ca301e6fa6308b5c40ba6a0a2be9fd078fa1dd1b3d6c9570a7c0934239eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x7530" } } - ], - "EIP158" : [ - { - "hash" : "0xf240ca301e6fa6308b5c40ba6a0a2be9fd078fa1dd1b3d6c9570a7c0934239eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf240ca301e6fa6308b5c40ba6a0a2be9fd078fa1dd1b3d6c9570a7c0934239eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf240ca301e6fa6308b5c40ba6a0a2be9fd078fa1dd1b3d6c9570a7c0934239eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf240ca301e6fa6308b5c40ba6a0a2be9fd078fa1dd1b3d6c9570a7c0934239eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001611770fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 6000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +65,14 @@ "" ], "gasLimit" : [ - "0x7530" + "30000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_call_value_inherit.json b/GeneralStateTests/stStaticCall/static_call_value_inherit.json index ae99f8c84..e9d3160e4 100644 --- a/GeneralStateTests/stStaticCall/static_call_value_inherit.json +++ b/GeneralStateTests/stStaticCall/static_call_value_inherit.json @@ -2,89 +2,57 @@ "static_call_value_inherit" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_call_value_inheritFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc5d9e23a003e568560c82fdfd24f2bf6d127c46de7f72c54d9f778d62fa74fbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0" : "0x1", + "0x1" : "0x0" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc5d9e23a003e568560c82fdfd24f2bf6d127c46de7f72c54d9f778d62fa74fbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc5d9e23a003e568560c82fdfd24f2bf6d127c46de7f72c54d9f778d62fa74fbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc5d9e23a003e568560c82fdfd24f2bf6d127c46de7f72c54d9f778d62fa74fbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x89ea1ffb32a55407e6ad55d9ec39a8a27edb0397a3c3a40ac2b84072cdea6f78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x602060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61c350fa600055600051600155", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 32) [[1]] (MLOAD 0) }", + "nonce" : "0", "storage" : { - "0x01" : "0x01" + "0x1" : "1" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x3460005260206000f3", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (MSTORE 0 (CALLVALUE)) (RETURN 0 32) }", + "nonce" : "0", "storage" : { } } @@ -94,14 +62,14 @@ "" ], "gasLimit" : [ - "0x0704e0" + "460000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "094f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_call_value_inherit_from_call.json b/GeneralStateTests/stStaticCall/static_call_value_inherit_from_call.json index d901fa133..9beca7a04 100644 --- a/GeneralStateTests/stStaticCall/static_call_value_inherit_from_call.json +++ b/GeneralStateTests/stStaticCall/static_call_value_inherit_from_call.json @@ -2,96 +2,64 @@ "static_call_value_inherit_from_call" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_call_value_inherit_from_callFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x68a0e8cef995f94a37114ca57ad3b172c6de346f3cb333a806ebb7a0cd2b6005", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0" : "0x1", + "0x1" : "0x0" + } } } - ], - "EIP158" : [ - { - "hash" : "0x68a0e8cef995f94a37114ca57ad3b172c6de346f3cb333a806ebb7a0cd2b6005", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7fe3f4754897e3ffa189561ff6d94e43c6dc2fbaffa299037c73740099d9100f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7fe3f4754897e3ffa189561ff6d94e43c6dc2fbaffa299037c73740099d9100f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa029c69b1ece1e1d9b91446b4029a16f25e89aca3c78e66a39d16cf8ee71ad66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x602060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61c350fa600055600051600155", - "nonce" : "0x00", + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[0]] (STATICCALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 32) [[1]] (MLOAD 0) }", + "nonce" : "0", "storage" : { - "0x01" : "0x01" + "0x1" : "1" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc8b90f8d999d9d9988209481999a9889098a89a0" : { - "balance" : "0x00", - "code" : "0x6000600060006000600a73094f5374fce5edbc8e2a8697c15331677e6ebf0b620186a0f1", - "nonce" : "0x00", + "c8b90f8d999d9d9988209481999a9889098a89a0" : { + "balance" : "0", + "code" : "{ (CALL 100000 0x094f5374fce5edbc8e2a8697c15331677e6ebf0b 10 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01", - "code" : "0x3460005260206000f3", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (MSTORE 0 (CALLVALUE)) (RETURN 0 32) }", + "nonce" : "0", "storage" : { } } @@ -101,14 +69,14 @@ "" ], "gasLimit" : [ - "0x0704e0" + "460000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xc8b90f8d999d9d9988209481999a9889098a89a0", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c8b90f8d999d9d9988209481999a9889098a89a0", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcall_00.json b/GeneralStateTests/stStaticCall/static_callcall_00.json index e1f6ac18c..277069709 100644 --- a/GeneralStateTests/stStaticCall/static_callcall_00.json +++ b/GeneralStateTests/stStaticCall/static_callcall_00.json @@ -2,163 +2,143 @@ "static_callcall_00" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa56f03e8f4202c99bd39219b63a6b4b7998005401bb2d9d6a06b3b9a7b289dfc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa56f03e8f4202c99bd39219b63a6b4b7998005401bb2d9d6a06b3b9a7b289dfc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa56f03e8f4202c99bd39219b63a6b4b7998005401bb2d9d6a06b3b9a7b289dfc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa56f03e8f4202c99bd39219b63a6b4b7998005401bb2d9d6a06b3b9a7b289dfc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8bcc5b5581f6ee23ddbbd5a93f1f4588826db595e695e98eabe8444f4a339b3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x8bcc5b5581f6ee23ddbbd5a93f1f4588826db595e695e98eabe8444f4a339b3a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x28fea6" + } } } - ], - "Homestead" : [ - { - "hash" : "0x8bcc5b5581f6ee23ddbbd5a93f1f4588826db595e695e98eabe8444f4a339b3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8bcc5b5581f6ee23ddbbd5a93f1f4588826db595e695e98eabe8444f4a339b3a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd6f289168402ca1dfbb871fe608ed3096126165304d525f91c7c8d18148e9eca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x77399cc4286fe72df69cceb346f61cc2e15ef10efb4ea597735bc149ccd9908d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "2000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00", + "0xe6" : "0x00", + "0xe8" : "0x00", + "0xec" : "0x00", + "0xee" : "0x00", + "0xf0" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2ccedd" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000026203d090fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025533600455346007553060e6553260e8553660ec553860ee553a60f055", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 230 (ADDRESS)) (SSTORE 232 (ORIGIN)) (SSTORE 236 (CALLDATASIZE)) (SSTORE 238 (CODESIZE)) (SSTORE 240 (GASPRICE))}", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073200000000000000000000000000000000000000162055730fa600055", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007320000000000000000000000000000000000000026203d090fa", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 250000 0x2000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6001600052336020523460405230606052326080523660a0523860c0523a60e052", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 0 1) (MSTORE 32 (CALLER)) (MSTORE 64 (CALLVALUE)) (MSTORE 96 (ADDRESS)) (MSTORE 128 (ORIGIN)) (MSTORE 160 (CALLDATASIZE)) (MSTORE 192 (CODESIZE)) (MSTORE 224 (GASPRICE))}", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -169,14 +149,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcall_00_OOGE.json b/GeneralStateTests/stStaticCall/static_callcall_00_OOGE.json index 18c043538..c71fa37f5 100644 --- a/GeneralStateTests/stStaticCall/static_callcall_00_OOGE.json +++ b/GeneralStateTests/stStaticCall/static_callcall_00_OOGE.json @@ -2,163 +2,145 @@ "static_callcall_00_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xadf82e6d41108122b66a95932bb0897772c3e2674625830012fc3401a7d33a06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xadf82e6d41108122b66a95932bb0897772c3e2674625830012fc3401a7d33a06", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xadf82e6d41108122b66a95932bb0897772c3e2674625830012fc3401a7d33a06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xadf82e6d41108122b66a95932bb0897772c3e2674625830012fc3401a7d33a06", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xadf82e6d41108122b66a95932bb0897772c3e2674625830012fc3401a7d33a06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xadf82e6d41108122b66a95932bb0897772c3e2674625830012fc3401a7d33a06", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015a0e" + } } } - ], - "Homestead" : [ - { - "hash" : "0xadf82e6d41108122b66a95932bb0897772c3e2674625830012fc3401a7d33a06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xadf82e6d41108122b66a95932bb0897772c3e2674625830012fc3401a7d33a06", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf1a37027d9a02feb0d3656e3be65843a243640769eb15407306b5432373cb0de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x64f889d7d71c70266fcfa9146f0a850556ca1e93b01d5ce6e3f2b24b8621128a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015a0e" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016002526040600060406000731000000000000000000000000000000000000002614e34fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 2 1) (STATICCALL 20020 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000732000000000000000000000000000000000000001620249f0fa600055", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016002526040600060406000732000000000000000000000000000000000000002614e34fa506001602052", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 2 1) (STATICCALL 20020 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) )}", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -169,14 +151,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcall_00_OOGE_1.json b/GeneralStateTests/stStaticCall/static_callcall_00_OOGE_1.json index 6cb85c8a1..671ebfd0c 100644 --- a/GeneralStateTests/stStaticCall/static_callcall_00_OOGE_1.json +++ b/GeneralStateTests/stStaticCall/static_callcall_00_OOGE_1.json @@ -2,163 +2,131 @@ "static_callcall_00_OOGE_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x583ce657ea168b99f3821753ea1e1ba4244a2dc96f3a142105e845c60ebc7650", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x583ce657ea168b99f3821753ea1e1ba4244a2dc96f3a142105e845c60ebc7650", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x583ce657ea168b99f3821753ea1e1ba4244a2dc96f3a142105e845c60ebc7650", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x583ce657ea168b99f3821753ea1e1ba4244a2dc96f3a142105e845c60ebc7650", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x583ce657ea168b99f3821753ea1e1ba4244a2dc96f3a142105e845c60ebc7650", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x583ce657ea168b99f3821753ea1e1ba4244a2dc96f3a142105e845c60ebc7650", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x05" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x034e64" + } } } - ], - "Homestead" : [ - { - "hash" : "0x583ce657ea168b99f3821753ea1e1ba4244a2dc96f3a142105e845c60ebc7650", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x583ce657ea168b99f3821753ea1e1ba4244a2dc96f3a142105e845c60ebc7650", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xafba521c7aa8b1f1c0666422eae13c531f805c64b378486df33bc5d7e2a0219a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x6b0ccc961d5fd86789f4d793e52c0d201392db30060390b8139aaf624f7456b7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "2000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x05" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x034e64" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016002526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 2 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025534600555", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 5 (CALLVALUE)) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000732000000000000000000000000000000000000001620249f0fa600055", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016002526040600060406000732000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 2 1) (STATICCALL 100000 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -169,14 +137,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x05cca2" + "380066" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcall_00_OOGE_2.json b/GeneralStateTests/stStaticCall/static_callcall_00_OOGE_2.json index c7088eac3..d7a3d5879 100644 --- a/GeneralStateTests/stStaticCall/static_callcall_00_OOGE_2.json +++ b/GeneralStateTests/stStaticCall/static_callcall_00_OOGE_2.json @@ -2,163 +2,102 @@ "static_callcall_00_OOGE_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_OOGE_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdf8c2e3b01aa4e523579122fd06555eca734937a5f45f7a2c428996d30ce4235", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdf8c2e3b01aa4e523579122fd06555eca734937a5f45f7a2c428996d30ce4235", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdf8c2e3b01aa4e523579122fd06555eca734937a5f45f7a2c428996d30ce4235", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdf8c2e3b01aa4e523579122fd06555eca734937a5f45f7a2c428996d30ce4235", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdf8c2e3b01aa4e523579122fd06555eca734937a5f45f7a2c428996d30ce4235", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdf8c2e3b01aa4e523579122fd06555eca734937a5f45f7a2c428996d30ce4235", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdf8c2e3b01aa4e523579122fd06555eca734937a5f45f7a2c428996d30ce4235", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdf8c2e3b01aa4e523579122fd06555eca734937a5f45f7a2c428996d30ce4235", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdf8c2e3b01aa4e523579122fd06555eca734937a5f45f7a2c428996d30ce4235", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xdf8c2e3b01aa4e523579122fd06555eca734937a5f45f7a2c428996d30ce4235", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x05" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016002526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 2 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160025534600555", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (SSTORE 5 (CALLVALUE)) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000732000000000000000000000000000000000000001620249f0fa600055", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016002526040600060406000732000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 2 1) (STATICCALL 100000 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -169,14 +108,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x024a32" + "150066" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcall_00_SuicideEnd.json b/GeneralStateTests/stStaticCall/static_callcall_00_SuicideEnd.json index dc7eac975..3069a9318 100644 --- a/GeneralStateTests/stStaticCall/static_callcall_00_SuicideEnd.json +++ b/GeneralStateTests/stStaticCall/static_callcall_00_SuicideEnd.json @@ -2,95 +2,69 @@ "static_callcall_00_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcall_00_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7148f4c9a4da248151f24ada15e9c6a9c0b09fb2f92ed9ee6908edebd81454c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7148f4c9a4da248151f24ada15e9c6a9c0b09fb2f92ed9ee6908edebd81454c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7148f4c9a4da248151f24ada15e9c6a9c0b09fb2f92ed9ee6908edebd81454c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7148f4c9a4da248151f24ada15e9c6a9c0b09fb2f92ed9ee6908edebd81454c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7335c77db0b249f557e0346c7f7e732c58d8895334cbb8727dbede8ae5c8bff7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6001602052604060006040600073100000000000000000000000000000000000000261c350fa50731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 32 1) (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +74,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcall_000.json b/GeneralStateTests/stStaticCall/static_callcallcall_000.json index a03feecbb..540cffa1d 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcall_000.json +++ b/GeneralStateTests/stStaticCall/static_callcallcall_000.json @@ -2,177 +2,173 @@ "static_callcallcall_000" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2366cc1425f25a94027ba85103786087aada2ba103c56840dfd16238c88c9423", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2366cc1425f25a94027ba85103786087aada2ba103c56840dfd16238c88c9423", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2366cc1425f25a94027ba85103786087aada2ba103c56840dfd16238c88c9423", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2366cc1425f25a94027ba85103786087aada2ba103c56840dfd16238c88c9423", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x29731d5bd892c9c659d856da2810960cecc7b37afacbe1700c43ed5ec0e786cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x29731d5bd892c9c659d856da2810960cecc7b37afacbe1700c43ed5ec0e786cf", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x28fbaa" + } } } - ], - "Homestead" : [ - { - "hash" : "0x29731d5bd892c9c659d856da2810960cecc7b37afacbe1700c43ed5ec0e786cf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x29731d5bd892c9c659d856da2810960cecc7b37afacbe1700c43ed5ec0e786cf", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x869d1e38e0df70852bb9b7d1bce10247bf70998a291c86fb0763e1e744c23e34", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x9c6e09a5bcec1aff2eae576af0a35a2955adc8fce906e914744fb14c07b5021d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "2000000000000000000000000000000000000001" : { + "storage" : { + } + }, + "2000000000000000000000000000000000000002" : { + "storage" : { + } + }, + "2000000000000000000000000000000000000003" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2ccc2b" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620493e0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160035260406000604060007310000000000000000000000000000000000000036203d090fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE))}", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073200000000000000000000000000000000000000162055730fa600055", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016003526040600060406000732000000000000000000000000000000000000002620493e0fa506001602052", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 300000 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160035260406000604060007320000000000000000000000000000000000000036203d090fa506001602052", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 250000 0x2000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -183,14 +179,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGE.json b/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGE.json index 0430a62f0..64dc52186 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGE.json +++ b/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGE.json @@ -2,177 +2,149 @@ "static_callcallcall_000_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa3530bdf22c8772863e71533e619318c8f387e76916082cc18a520299467654f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa3530bdf22c8772863e71533e619318c8f387e76916082cc18a520299467654f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa3530bdf22c8772863e71533e619318c8f387e76916082cc18a520299467654f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa3530bdf22c8772863e71533e619318c8f387e76916082cc18a520299467654f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa3530bdf22c8772863e71533e619318c8f387e76916082cc18a520299467654f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa3530bdf22c8772863e71533e619318c8f387e76916082cc18a520299467654f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015726" + } } } - ], - "Homestead" : [ - { - "hash" : "0xa3530bdf22c8772863e71533e619318c8f387e76916082cc18a520299467654f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa3530bdf22c8772863e71533e619318c8f387e76916082cc18a520299467654f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd8fe67263fd0cc3b2a1e6693d3aa4122d37cbafba291234b5a6ff6aec6b5cbeb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xb73ede6594f5493b7497123a7456ab8748407c03fb24fb7f8d1e7b725e26e993", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015726" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa600055", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000732000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x2000000000000000000000000000000000000002 0 64 0 64 )(MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000732000000000000000000000000000000000000003614e34fa506001602052", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x2000000000000000000000000000000000000003 0 64 0 64 )(MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -183,14 +155,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGMAfter.json b/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGMAfter.json index 47062794d..8c17f33b0 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGMAfter.json +++ b/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGMAfter.json @@ -2,102 +2,91 @@ "static_callcallcall_000_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4240c591732bb7ed797065bf0028004a169a98e1293410af92929568626f491f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x6f" : "0x014c81" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4240c591732bb7ed797065bf0028004a169a98e1293410af92929568626f491f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4240c591732bb7ed797065bf0028004a169a98e1293410af92929568626f491f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4240c591732bb7ed797065bf0028004a169a98e1293410af92929568626f491f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb241a39f96e796d108bb0808ab0d49d8ed3ad5514e0a808cfc95c92bf96810f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6fa6000555a606f55", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 111 ]] (GAS)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002619c90fa506001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +96,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGMAfter2.json b/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGMAfter2.json index 9c6643970..82d9b374a 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGMAfter2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGMAfter2.json @@ -2,102 +2,91 @@ "static_callcallcall_000_OOGMAfter2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMAfter2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xaf98968a4687e41eaa772578166ec5978438340ad3ab158e6b82b0b6201a9367", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x6f" : "0x015cb7" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xaf98968a4687e41eaa772578166ec5978438340ad3ab158e6b82b0b6201a9367", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaf98968a4687e41eaa772578166ec5978438340ad3ab158e6b82b0b6201a9367", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaf98968a4687e41eaa772578166ec5978438340ad3ab158e6b82b0b6201a9367", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9ed47cfe74b12b48b6a6990fadfdc54914aa7e8de0fb203550d1487cec729f82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161dac0fa6000555a606f55", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 56000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 111 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6001600352604060006040600073100000000000000000000000000000000000000261afc8fa505b61c3506080511015603f576001608051016080526027565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 45000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +96,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGMBefore.json b/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGMBefore.json index e704a98b7..c5413677e 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGMBefore.json +++ b/GeneralStateTests/stStaticCall/static_callcallcall_000_OOGMBefore.json @@ -2,102 +2,90 @@ "static_callcallcall_000_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2cc0620f5eac6c033ec1433c0fac283edf9255c862ed5943ad55424cae28cf50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015d7b", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2cc0620f5eac6c033ec1433c0fac283edf9255c862ed5943ad55424cae28cf50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2cc0620f5eac6c033ec1433c0fac283edf9255c862ed5943ad55424cae28cf50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2cc0620f5eac6c033ec1433c0fac283edf9255c862ed5943ad55424cae28cf50", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe84edc686e05c13c364bd2742cc23c9f0e2e667403a56a29de8e9da54a758fce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +95,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcall_000_SuicideEnd.json b/GeneralStateTests/stStaticCall/static_callcallcall_000_SuicideEnd.json index 4748ce659..2bcd713c3 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcall_000_SuicideEnd.json +++ b/GeneralStateTests/stStaticCall/static_callcallcall_000_SuicideEnd.json @@ -2,102 +2,73 @@ "static_callcallcall_000_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x926dea784e772825bf7a1881c82ab2b4780f12ba57234839f3d9e1f0c89b8240", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a37" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000" } } - ], - "EIP158" : [ - { - "hash" : "0x926dea784e772825bf7a1881c82ab2b4780f12ba57234839f3d9e1f0c89b8240", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x926dea784e772825bf7a1881c82ab2b4780f12ba57234839f3d9e1f0c89b8240", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x926dea784e772825bf7a1881c82ab2b4780f12ba57234839f3d9e1f0c89b8240", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5312ba91585f159d984e36cceb3a019652a7516a3a8e78a64e11488305a10caa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600352604060006040600073100000000000000000000000000000000000000361c350fa50731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +78,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcall_000_SuicideMiddle.json b/GeneralStateTests/stStaticCall/static_callcallcall_000_SuicideMiddle.json index 7ea3e3a39..eabbe487f 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcall_000_SuicideMiddle.json +++ b/GeneralStateTests/stStaticCall/static_callcallcall_000_SuicideMiddle.json @@ -2,102 +2,77 @@ "static_callcallcall_000_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_000_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbb35ca677e4ff8b6aa1ff1ada4b98c1938f01c170bbc081e151cbd23bae75727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a37" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbb35ca677e4ff8b6aa1ff1ada4b98c1938f01c170bbc081e151cbd23bae75727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb35ca677e4ff8b6aa1ff1ada4b98c1938f01c170bbc081e151cbd23bae75727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbb35ca677e4ff8b6aa1ff1ada4b98c1938f01c170bbc081e151cbd23bae75727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2bc88ae82918fe1e2a1fa1c091ecabbbd33f679050a924a6a6d130e8203c3857", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +82,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcall_ABCB_RECURSIVE.json b/GeneralStateTests/stStaticCall/static_callcallcall_ABCB_RECURSIVE.json index bcfec583a..833358673 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stStaticCall/static_callcallcall_ABCB_RECURSIVE.json @@ -2,95 +2,78 @@ "static_callcallcall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x36a4b476a03b3ed0952af53f0284afc3ac9e3a7737db2b3f1a5f9594c9a9cb88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "139959" } } - ], - "EIP158" : [ - { - "hash" : "0x36a4b476a03b3ed0952af53f0284afc3ac9e3a7737db2b3f1a5f9594c9a9cb88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x36a4b476a03b3ed0952af53f0284afc3ac9e3a7737db2b3f1a5f9594c9a9cb88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x36a4b476a03b3ed0952af53f0284afc3ac9e3a7737db2b3f1a5f9594c9a9cb88", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1681a7d9af60c72fcb6a0aa0daea9e63929ccce3348654a5fcdb85234b75fad4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001600152604060006040600073100000000000000000000000000000000000000163017d7840fa506001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620f4240fa506001600452", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 4 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x600160055260406000604060007310000000000000000000000000000000000000016207a120fa506001600652", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 5 1) (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 6 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +83,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001.json index 7bff43a0c..03e2dcd12 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001.json @@ -2,177 +2,151 @@ "static_callcallcallcode_001" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9a7dbe753d2ce75d005292229e73c1a929e864563760e7316747148d7109d0eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9a7dbe753d2ce75d005292229e73c1a929e864563760e7316747148d7109d0eb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9a7dbe753d2ce75d005292229e73c1a929e864563760e7316747148d7109d0eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9a7dbe753d2ce75d005292229e73c1a929e864563760e7316747148d7109d0eb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf9f8939922358633f7cf0ddc94ba066f6596ab0c6b9a134a2b553645e4230367", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xf9f8939922358633f7cf0ddc94ba066f6596ab0c6b9a134a2b553645e4230367", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x28fba1" + } } } - ], - "Homestead" : [ - { - "hash" : "0xf9f8939922358633f7cf0ddc94ba066f6596ab0c6b9a134a2b553645e4230367", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf9f8939922358633f7cf0ddc94ba066f6596ab0c6b9a134a2b553645e4230367", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2111fd91ff1fa787bb7c11fdce5ab28fa34d7c795d48a20bc08a4d7a9b890472", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x25c4c1852e1d42e8739fec6ce21fa50b8aa7b09509c19f4d1012d6f81383aa97", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2ccc2b" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730fa6000556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620493e0fa506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160035260406000604060007310000000000000000000000000000000000000036203d090f4506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x600160035533600455346007553061014a553261014c55366101505538610152553a61015455", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (SSTORE 4 (CALLER)) (SSTORE 7 (CALLVALUE)) (SSTORE 330 (ADDRESS)) (SSTORE 332 (ORIGIN)) (SSTORE 336 (CALLDATASIZE)) (SSTORE 338 (CODESIZE)) (SSTORE 340 (GASPRICE)) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073200000000000000000000000000000000000000162055730fa600055", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016003526040600060406000732000000000000000000000000000000000000002620493e0fa506001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 300000 0x2000000000000000000000000000000000000002 0 64 0 64 )(MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160035260406000604060007320000000000000000000000000000000000000036203d090f4506001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 250000 0x2000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -183,14 +157,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_2.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_2.json index 85a323826..b705ac823 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_2.json @@ -2,177 +2,149 @@ "static_callcallcallcode_001_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x97799f7a5177b653c25550364a342bc10c570e9a736539248d6d163f6b991230", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x97799f7a5177b653c25550364a342bc10c570e9a736539248d6d163f6b991230", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x97799f7a5177b653c25550364a342bc10c570e9a736539248d6d163f6b991230", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x97799f7a5177b653c25550364a342bc10c570e9a736539248d6d163f6b991230", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x332fd63f02a7f7415132635f9f614f7a3a816738c2dfa4525b609cd607a87b3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x332fd63f02a7f7415132635f9f614f7a3a816738c2dfa4525b609cd607a87b3d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x283b4b" + } } } - ], - "Homestead" : [ - { - "hash" : "0x332fd63f02a7f7415132635f9f614f7a3a816738c2dfa4525b609cd607a87b3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x332fd63f02a7f7415132635f9f614f7a3a816738c2dfa4525b609cd607a87b3d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb07cec95a0495a4f2810c43812055985d7230bf8fc67d10496a860bb65baf1f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xfbc632522d0711451a77628031c7d8d5d8f7af19b6406eae571e13f56372b929", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x014a" : "0x00", + "0x014c" : "0x00", + "0x0150" : "0x00", + "0x0152" : "0x00", + "0x0154" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00", + "0x04" : "0x00", + "0x07" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2ccc31" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620493e0fa506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060037310000000000000000000000000000000000000036203d090f2600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 2 ]] (CALLCODE 250000 0x1000000000000000000000000000000000000003 3 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6311223344600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 0x11223344) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073200000000000000000000000000000000000000162055730fa600055", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000732000000000000000000000000000000000000002620493e0fa506001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 300000 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001600452604060006040600060007320000000000000000000000000000000000000036203d090f2506001600652", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 4 1) (CALLCODE 250000 0x2000000000000000000000000000000000000003 0 0 64 0 64 ) (MSTORE 6 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -183,14 +155,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGE.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGE.json index 391a44f03..5d83055af 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGE.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGE.json @@ -2,102 +2,94 @@ "static_callcallcallcode_001_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7bad62c431176a980943cbf2b89474c29a4c6a67f713a73ecdbb755e25c62aa1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7bad62c431176a980943cbf2b89474c29a4c6a67f713a73ecdbb755e25c62aa1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7bad62c431176a980943cbf2b89474c29a4c6a67f713a73ecdbb755e25c62aa1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7bad62c431176a980943cbf2b89474c29a4c6a67f713a73ecdbb755e25c62aa1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x07e9b887a4b100353858904d7c2ccbd145e3ca4bfe34536b914e450499a86e04", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34f4506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) )}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +99,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGE_2.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGE_2.json index 26920c5f7..494c4d481 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGE_2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGE_2.json @@ -2,177 +2,105 @@ "static_callcallcallcode_001_OOGE_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGE_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0d309fbde7bbd1b313b77cf726decc45d23db3493fb3edb465472666e2d75cfb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0d309fbde7bbd1b313b77cf726decc45d23db3493fb3edb465472666e2d75cfb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x0d309fbde7bbd1b313b77cf726decc45d23db3493fb3edb465472666e2d75cfb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0d309fbde7bbd1b313b77cf726decc45d23db3493fb3edb465472666e2d75cfb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0d309fbde7bbd1b313b77cf726decc45d23db3493fb3edb465472666e2d75cfb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0d309fbde7bbd1b313b77cf726decc45d23db3493fb3edb465472666e2d75cfb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0d309fbde7bbd1b313b77cf726decc45d23db3493fb3edb465472666e2d75cfb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0d309fbde7bbd1b313b77cf726decc45d23db3493fb3edb465472666e2d75cfb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x34940f80a25b12138b462eba1629a2801ec1868cfd5c6298fa7773ed899d4352", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x53b2e90449f26d9938aa38b1c7bbcd3c9dba9c33e1c50b1110263309172ee401", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01574b" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x60016003556001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000732000000000000000000000000000000000000001620249f0fa600055", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x2000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000732000000000000000000000000000000000000002620186a0fa", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 100000 0x2000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000732000000000000000000000000000000000000003614e34f2", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x2000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600060006000346000355af16000555a600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{ [[ 0 ]] (CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -183,14 +111,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter.json index ae9a12a23..9b51972ef 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter.json @@ -2,149 +2,105 @@ "static_callcallcallcode_001_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdc2ce909e1717191fbd281dfc4eabfe9a80691a91adce90abd08c104bebd4d3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdc2ce909e1717191fbd281dfc4eabfe9a80691a91adce90abd08c104bebd4d3d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdc2ce909e1717191fbd281dfc4eabfe9a80691a91adce90abd08c104bebd4d3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdc2ce909e1717191fbd281dfc4eabfe9a80691a91adce90abd08c104bebd4d3d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc2ce909e1717191fbd281dfc4eabfe9a80691a91adce90abd08c104bebd4d3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdc2ce909e1717191fbd281dfc4eabfe9a80691a91adce90abd08c104bebd4d3d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc2ce909e1717191fbd281dfc4eabfe9a80691a91adce90abd08c104bebd4d3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdc2ce909e1717191fbd281dfc4eabfe9a80691a91adce90abd08c104bebd4d3d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x674f946803713aef66e4586b62e973028f98fb66cc1520096bddcea0c4eb3599", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x674f946803713aef66e4586b62e973028f98fb66cc1520096bddcea0c4eb3599", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003561eaf6fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002619c95fa506001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34f4506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002619c95fa505b61c3506080511015603f576001608051016080526027565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +111,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter2.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter2.json index 4f35d0bfa..f152b54be 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter2.json @@ -2,149 +2,97 @@ "static_callcallcallcode_001_OOGMAfter2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf4d6dc015a845d2d14e0787617217e447ee740f4bba1254d4cd9202169834dc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xf4d6dc015a845d2d14e0787617217e447ee740f4bba1254d4cd9202169834dc2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003561eaf6fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90fa506001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90fa505b61c3506080511015603a576001608051016080526022565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +103,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter_2.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter_2.json index c4cd70164..0bec07982 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter_2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter_2.json @@ -2,149 +2,105 @@ "static_callcallcallcode_001_OOGMAfter_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x126073c2113620386bafa76775e3852cc6ce2dd5737457fc5c340d948619a439", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x126073c2113620386bafa76775e3852cc6ce2dd5737457fc5c340d948619a439", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x126073c2113620386bafa76775e3852cc6ce2dd5737457fc5c340d948619a439", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x126073c2113620386bafa76775e3852cc6ce2dd5737457fc5c340d948619a439", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x126073c2113620386bafa76775e3852cc6ce2dd5737457fc5c340d948619a439", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x126073c2113620386bafa76775e3852cc6ce2dd5737457fc5c340d948619a439", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x126073c2113620386bafa76775e3852cc6ce2dd5737457fc5c340d948619a439", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x126073c2113620386bafa76775e3852cc6ce2dd5737457fc5c340d948619a439", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9f627989d639a3707837a025a270b8fd5c26c3fcb05720551868ca83b8479daa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x9f627989d639a3707837a025a270b8fd5c26c3fcb05720551868ca83b8479daa", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003561eaf6fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c95fa506001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c95fa505b61c3506080511015603a576001608051016080526022565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40085 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +111,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter_3.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter_3.json index a51b60041..2693eb086 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter_3.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMAfter_3.json @@ -2,149 +2,97 @@ "static_callcallcallcode_001_OOGMAfter_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMAfter_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe363e4573510e78a1bd5b55a66d45d8143f57df76c03da8784da17a91905f002", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf4d6dc015a845d2d14e0787617217e447ee740f4bba1254d4cd9202169834dc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xf4d6dc015a845d2d14e0787617217e447ee740f4bba1254d4cd9202169834dc2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003561eaf6fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90fa506001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90fa505b61c3506080511015603a576001608051016080526022565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) )}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +103,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMBefore.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMBefore.json index b6b2c22ee..bbf97e9de 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMBefore.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMBefore.json @@ -2,149 +2,103 @@ "static_callcallcallcode_001_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xae77ac71b36f040e02e42c4cf7289b9ffd28ce45700a7bdc291c356300a3a5c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xae77ac71b36f040e02e42c4cf7289b9ffd28ce45700a7bdc291c356300a3a5c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xae77ac71b36f040e02e42c4cf7289b9ffd28ce45700a7bdc291c356300a3a5c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xae77ac71b36f040e02e42c4cf7289b9ffd28ce45700a7bdc291c356300a3a5c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xae77ac71b36f040e02e42c4cf7289b9ffd28ce45700a7bdc291c356300a3a5c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xae77ac71b36f040e02e42c4cf7289b9ffd28ce45700a7bdc291c356300a3a5c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xae77ac71b36f040e02e42c4cf7289b9ffd28ce45700a7bdc291c356300a3a5c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xae77ac71b36f040e02e42c4cf7289b9ffd28ce45700a7bdc291c356300a3a5c7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb6cd20e5f1cc773105b5be2729e9500a3d51f1c3fa33922acdaebcabea8e2374", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xb6cd20e5f1cc773105b5be2729e9500a3d51f1c3fa33922acdaebcabea8e2374", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c58", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060206000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 32 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000600035619c90fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b6040600060406000731000000000000000000000000000000000000003614e34f4506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016001556040600060406000731000000000000000000000000000000000000003614e34f4506001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 1 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +109,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMBefore2.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMBefore2.json index da2b5478e..73640ec26 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMBefore2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_OOGMBefore2.json @@ -2,149 +2,97 @@ "static_callcallcallcode_001_OOGMBefore2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_OOGMBefore2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe0cc2d9cd94f3662e51a2000224a7991ab14dc1e4b94aeeda1862753361f1956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe0cc2d9cd94f3662e51a2000224a7991ab14dc1e4b94aeeda1862753361f1956", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe0cc2d9cd94f3662e51a2000224a7991ab14dc1e4b94aeeda1862753361f1956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe0cc2d9cd94f3662e51a2000224a7991ab14dc1e4b94aeeda1862753361f1956", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe0cc2d9cd94f3662e51a2000224a7991ab14dc1e4b94aeeda1862753361f1956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe0cc2d9cd94f3662e51a2000224a7991ab14dc1e4b94aeeda1862753361f1956", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe0cc2d9cd94f3662e51a2000224a7991ab14dc1e4b94aeeda1862753361f1956", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe0cc2d9cd94f3662e51a2000224a7991ab14dc1e4b94aeeda1862753361f1956", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2a0be2c682295ada1e084123ab1880ff8211f9982f258d01ee15348c0e8a0b59", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x2a0be2c682295ada1e084123ab1880ff8211f9982f258d01ee15348c0e8a0b59", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c55", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060206000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 32 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6000356000526040600060406000600035619c90fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160015560406000604060006000731000000000000000000000000000000000000003614e34f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 1 1) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b60406000604060006000731000000000000000000000000000000000000003614e34f2", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +103,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideEnd.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideEnd.json index 02c6142bf..111134817 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideEnd.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideEnd.json @@ -2,102 +2,92 @@ "static_callcallcallcode_001_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3a83d03a5d6e798e46ce043350668f4173d8d98e28ca7bd49fb2bab0712a03d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x3a83d03a5d6e798e46ce043350668f4173d8d98e28ca7bd49fb2bab0712a03d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3a83d03a5d6e798e46ce043350668f4173d8d98e28ca7bd49fb2bab0712a03d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3a83d03a5d6e798e46ce043350668f4173d8d98e28ca7bd49fb2bab0712a03d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbbcbb746125c2d1783de56d6b6ad27fe8a5b70b8c939a3ed073deccdeb88a688", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350f450731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +97,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideEnd2.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideEnd2.json index 2f279f473..4647d73e8 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideEnd2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideEnd2.json @@ -2,102 +2,79 @@ "static_callcallcallcode_001_SuicideEnd2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideEnd2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4858fd53150c3bc6ba65c82782803c563e5b06f56f446250992aaafc3d4aa4e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000" + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4858fd53150c3bc6ba65c82782803c563e5b06f56f446250992aaafc3d4aa4e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4858fd53150c3bc6ba65c82782803c563e5b06f56f446250992aaafc3d4aa4e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4858fd53150c3bc6ba65c82782803c563e5b06f56f446250992aaafc3d4aa4e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x88d11775248bb20a87f1a5d91fda1c9eaa8b83139fe64f91c02ba266db8592f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f250731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +84,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideMiddle.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideMiddle.json index 97dcbb616..1e5e82f2b 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideMiddle.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideMiddle.json @@ -2,102 +2,91 @@ "static_callcallcallcode_001_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbb35ca677e4ff8b6aa1ff1ada4b98c1938f01c170bbc081e151cbd23bae75727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a37" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbb35ca677e4ff8b6aa1ff1ada4b98c1938f01c170bbc081e151cbd23bae75727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb35ca677e4ff8b6aa1ff1ada4b98c1938f01c170bbc081e151cbd23bae75727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbb35ca677e4ff8b6aa1ff1ada4b98c1938f01c170bbc081e151cbd23bae75727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2bc88ae82918fe1e2a1fa1c091ecabbbd33f679050a924a6a6d130e8203c3857", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +96,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideMiddle2.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideMiddle2.json index 0377ec1a1..922f302b9 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideMiddle2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_001_SuicideMiddle2.json @@ -2,102 +2,78 @@ "static_callcallcallcode_001_SuicideMiddle2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_001_SuicideMiddle2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbb35ca677e4ff8b6aa1ff1ada4b98c1938f01c170bbc081e151cbd23bae75727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a37" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbb35ca677e4ff8b6aa1ff1ada4b98c1938f01c170bbc081e151cbd23bae75727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb35ca677e4ff8b6aa1ff1ada4b98c1938f01c170bbc081e151cbd23bae75727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbb35ca677e4ff8b6aa1ff1ada4b98c1938f01c170bbc081e151cbd23bae75727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2bc88ae82918fe1e2a1fa1c091ecabbbd33f679050a924a6a6d130e8203c3857", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +83,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE.json index b10bdc0d9..c084124c4 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE.json @@ -2,95 +2,78 @@ "static_callcallcallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x66d8615df303bbf2ad618ad7c9fd606a6e2b6e17c32d929d3ad53722f7ed8ed1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "139959" } } - ], - "EIP158" : [ - { - "hash" : "0x66d8615df303bbf2ad618ad7c9fd606a6e2b6e17c32d929d3ad53722f7ed8ed1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x66d8615df303bbf2ad618ad7c9fd606a6e2b6e17c32d929d3ad53722f7ed8ed1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x66d8615df303bbf2ad618ad7c9fd606a6e2b6e17c32d929d3ad53722f7ed8ed1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8f7ccd06cd76b57d3bf346cc59f553a1bf5b0a03e254cf9db4ebe2f7235daa2d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001600152604060006040600073100000000000000000000000000000000000000163017d7840fa506001601f52", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 31 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016001526040600060406000731000000000000000000000000000000000000002620f4240fa506001601f52", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 31 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x600160015260406000604060007310000000000000000000000000000000000000016207a120f4506001601552", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 1 1) (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 21 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +83,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2.json b/GeneralStateTests/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2.json index e431a5d98..0a65d91a7 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2.json @@ -2,95 +2,78 @@ "static_callcallcallcode_ABCB_RECURSIVE2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcallcode_ABCB_RECURSIVE2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf5f8a4f289c379e7292b4c19226669c764f0d4d168aa38f3d729c38f30972d7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "140109" } } - ], - "EIP158" : [ - { - "hash" : "0xf5f8a4f289c379e7292b4c19226669c764f0d4d168aa38f3d729c38f30972d7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf5f8a4f289c379e7292b4c19226669c764f0d4d168aa38f3d729c38f30972d7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf5f8a4f289c379e7292b4c19226669c764f0d4d168aa38f3d729c38f30972d7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3761603f85c680252812d11eec371eb9d1df16995dca1b8675d8832979a6554e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001600152604060006040600073100000000000000000000000000000000000000163017d7840fa506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016001526040600060406000731000000000000000000000000000000000000002620f4240fa506001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600152604060006040600060007310000000000000000000000000000000000000016207a120f2506001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 1 1) (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) (MSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +83,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcode_01_2.json b/GeneralStateTests/stStaticCall/static_callcallcode_01_2.json index 0fa957a82..e59fd8f10 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcode_01_2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcode_01_2.json @@ -2,163 +2,109 @@ "static_callcallcode_01_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x594ebd435584f249cbd5b895c7760711ad029a6758eb785640f6160979b89737", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x594ebd435584f249cbd5b895c7760711ad029a6758eb785640f6160979b89737", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x594ebd435584f249cbd5b895c7760711ad029a6758eb785640f6160979b89737", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x594ebd435584f249cbd5b895c7760711ad029a6758eb785640f6160979b89737", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0cb8bc57ed5b190c0b9fe8b5562a351bdbb04064744b8757b7083d33b264c0bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x0cb8bc57ed5b190c0b9fe8b5562a351bdbb04064744b8757b7083d33b264c0bb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d031d" + } } } - ], - "Homestead" : [ - { - "hash" : "0x0cb8bc57ed5b190c0b9fe8b5562a351bdbb04064744b8757b7083d33b264c0bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0cb8bc57ed5b190c0b9fe8b5562a351bdbb04064744b8757b7083d33b264c0bb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0784a9e6d88b864d09e6f783f739742232c5c3998cfa5ef76744a58002e224a8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x66c43e7cfde8bd572acc81b2c58660a73051a7ad6f52e2cc0a7b93d3dc0f1a24", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1d3d" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006020600073100000000000000000000000000000000000000162055730fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 32 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006020600060027310000000000000000000000000000000000000026203d090f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 250000 0x1000000000000000000000000000000000000002 2 0 32 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6311223344600052", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 0 0x11223344) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006020600073200000000000000000000000000000000000000162055730fa", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 350000 0x2000000000000000000000000000000000000001 0 32 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600035600052604060006020600060007320000000000000000000000000000000000000026203d090f2", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (CALLCODE 250000 0x2000000000000000000000000000000000000002 0 0 32 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6311223344600052", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 0 0x11223344) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600060006000355af26000555a600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -169,14 +115,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcode_01_OOGE_2.json b/GeneralStateTests/stStaticCall/static_callcallcode_01_OOGE_2.json index 39d916e44..fc96dc740 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcode_01_OOGE_2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcode_01_OOGE_2.json @@ -2,142 +2,70 @@ "static_callcallcode_01_OOGE_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_OOGE_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1407b9c03da3345804a18797652af629fa1243352796cf9b13f9a043df6da8d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1407b9c03da3345804a18797652af629fa1243352796cf9b13f9a043df6da8d7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1407b9c03da3345804a18797652af629fa1243352796cf9b13f9a043df6da8d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1407b9c03da3345804a18797652af629fa1243352796cf9b13f9a043df6da8d7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1407b9c03da3345804a18797652af629fa1243352796cf9b13f9a043df6da8d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1407b9c03da3345804a18797652af629fa1243352796cf9b13f9a043df6da8d7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1407b9c03da3345804a18797652af629fa1243352796cf9b13f9a043df6da8d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1407b9c03da3345804a18797652af629fa1243352796cf9b13f9a043df6da8d7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3d82e124a977488711e9709bb12b0c4347d710b85218f65b8f237dfb29152257", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x3d82e124a977488711e9709bb12b0c4347d710b85218f65b8f237dfb29152257", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01aac5" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060206000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 32 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000600035614e34f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 (CALLDATALOAD 0) 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1) ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -148,14 +76,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcode_01_SuicideEnd.json b/GeneralStateTests/stStaticCall/static_callcallcode_01_SuicideEnd.json index 864062709..23eeb35cb 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcode_01_SuicideEnd.json +++ b/GeneralStateTests/stStaticCall/static_callcallcode_01_SuicideEnd.json @@ -2,95 +2,79 @@ "static_callcallcode_01_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4e76e41cc3995aa5f5f6e1c8c10063eee9a7209857fdcf8107975b4839b8ee68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x2b1467" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000" + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x02" : "0x00", + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4e76e41cc3995aa5f5f6e1c8c10063eee9a7209857fdcf8107975b4839b8ee68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4e76e41cc3995aa5f5f6e1c8c10063eee9a7209857fdcf8107975b4839b8ee68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4e76e41cc3995aa5f5f6e1c8c10063eee9a7209857fdcf8107975b4839b8ee68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfe435b870026aed7290a642ea587e86bfaecd163cac83874c60c20e3d25dd7d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000261c350f450731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +84,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcode_01_SuicideEnd2.json b/GeneralStateTests/stStaticCall/static_callcallcode_01_SuicideEnd2.json index 1516de7de..c5b92142b 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcode_01_SuicideEnd2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcode_01_SuicideEnd2.json @@ -2,95 +2,70 @@ "static_callcallcode_01_SuicideEnd2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcode_01_SuicideEnd2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe3175d64e4c57c37e20048da023ef77fbeb46329c5225c9b3c405137b9f332cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x2b1467" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe3175d64e4c57c37e20048da023ef77fbeb46329c5225c9b3c405137b9f332cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe3175d64e4c57c37e20048da023ef77fbeb46329c5225c9b3c405137b9f332cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe3175d64e4c57c37e20048da023ef77fbeb46329c5225c9b3c405137b9f332cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x413f0bad7754114b8bb7a697b7a9bae8f71c70e1e11cd662a20e7701b9754561", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f250731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 50000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010.json index 629461cc4..ccb599ab7 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010.json @@ -2,102 +2,70 @@ "static_callcallcodecall_010" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0d5191cb21dc297831b31b8181cecf57e2f6b194a7970ce673d65bc71290f8cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1de0" + } } } - ], - "EIP158" : [ - { - "hash" : "0x0d5191cb21dc297831b31b8181cecf57e2f6b194a7970ce673d65bc71290f8cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0d5191cb21dc297831b31b8181cecf57e2f6b194a7970ce673d65bc71290f8cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0d5191cb21dc297831b31b8181cecf57e2f6b194a7970ce673d65bc71290f8cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2975f889a2aaf4fa003a30643719fb300590003629a77e6ede028226cd6d4a9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620493e0f4506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160035260406000604060007310000000000000000000000000000000000000036203d090fa506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_2.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_2.json index c550c0ec3..9aade6ade 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_2.json @@ -2,149 +2,95 @@ "static_callcallcodecall_010_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x61808db9a063b2f26d8a295db3cf2695c994db27c9f7ca5fc10e001bc0046849", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x61808db9a063b2f26d8a295db3cf2695c994db27c9f7ca5fc10e001bc0046849", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x61808db9a063b2f26d8a295db3cf2695c994db27c9f7ca5fc10e001bc0046849", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x61808db9a063b2f26d8a295db3cf2695c994db27c9f7ca5fc10e001bc0046849", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x61808db9a063b2f26d8a295db3cf2695c994db27c9f7ca5fc10e001bc0046849", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x61808db9a063b2f26d8a295db3cf2695c994db27c9f7ca5fc10e001bc0046849", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d02d6" + } } } - ], - "Homestead" : [ - { - "hash" : "0x61808db9a063b2f26d8a295db3cf2695c994db27c9f7ca5fc10e001bc0046849", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x61808db9a063b2f26d8a295db3cf2695c994db27c9f7ca5fc10e001bc0046849", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3a1cda6eeffac017da91b3b9f7be5f504955fc838304e9d4f825c329e5d99051", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x047c3f135c097ae6bbd50b85bdbdfa8ba35babf4dbf970981679861bd05faab7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1d02" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003562055730fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006002731000000000000000000000000000000000000002620493e0f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 300000 0x1000000000000000000000000000000000000002 2 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000036203d090fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620493e0f2", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 300000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +101,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGE.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGE.json index 61b8c1230..28dd6e694 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGE.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGE.json @@ -2,149 +2,77 @@ "static_callcallcodecall_010_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xed25db39ebd4a42bde4b277f9693f36995acb314d85fc2ec6d3f46730dbe5fba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xed25db39ebd4a42bde4b277f9693f36995acb314d85fc2ec6d3f46730dbe5fba", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xed25db39ebd4a42bde4b277f9693f36995acb314d85fc2ec6d3f46730dbe5fba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xed25db39ebd4a42bde4b277f9693f36995acb314d85fc2ec6d3f46730dbe5fba", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xed25db39ebd4a42bde4b277f9693f36995acb314d85fc2ec6d3f46730dbe5fba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xed25db39ebd4a42bde4b277f9693f36995acb314d85fc2ec6d3f46730dbe5fba", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xed25db39ebd4a42bde4b277f9693f36995acb314d85fc2ec6d3f46730dbe5fba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xed25db39ebd4a42bde4b277f9693f36995acb314d85fc2ec6d3f46730dbe5fba", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x595df75375ca6e963d5666da6985728a7a7e0d418ba854bd6febc259ddde263e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x595df75375ca6e963d5666da6985728a7a7e0d418ba854bd6febc259ddde263e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x7251" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000600035620186a0f4506001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 100000 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34fa505b61c3506080511015603a576001608051016080526022565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34fa506001600155", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +83,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGE_2.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGE_2.json index ce7111790..c99822278 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGE_2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGE_2.json @@ -2,149 +2,77 @@ "static_callcallcodecall_010_OOGE_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGE_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf135c91e03115f15fb71a6d8adc4509119fe4d7be0697dee1e38878f5715e462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf135c91e03115f15fb71a6d8adc4509119fe4d7be0697dee1e38878f5715e462", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf135c91e03115f15fb71a6d8adc4509119fe4d7be0697dee1e38878f5715e462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf135c91e03115f15fb71a6d8adc4509119fe4d7be0697dee1e38878f5715e462", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf135c91e03115f15fb71a6d8adc4509119fe4d7be0697dee1e38878f5715e462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf135c91e03115f15fb71a6d8adc4509119fe4d7be0697dee1e38878f5715e462", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf135c91e03115f15fb71a6d8adc4509119fe4d7be0697dee1e38878f5715e462", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf135c91e03115f15fb71a6d8adc4509119fe4d7be0697dee1e38878f5715e462", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8c283b491cfb0dbd6a11a53e55b6c27501f8c12f02bcb2d5d3c42dcad358bec7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x8c283b491cfb0dbd6a11a53e55b6c27501f8c12f02bcb2d5d3c42dcad358bec7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01a7e5" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060206000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 32 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60003560005260406000602060006000731000000000000000000000000000000000000002620186a0f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 32 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000600035614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +83,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000003" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter.json index a79a15267..b272b89bd 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter.json @@ -2,149 +2,79 @@ "static_callcallcodecall_010_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6332d2b26543f5b5c66a0b39aae2bfe466532e049bfe712dc7a5bc12f3733107", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x6332d2b26543f5b5c66a0b39aae2bfe466532e049bfe712dc7a5bc12f3733107", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003561eaf6fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4506001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e48fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4505b61c3506080511015603a576001608051016080526022565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +85,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter2.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter2.json index 1b5e4ca6d..6ef98c374 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter2.json @@ -2,149 +2,77 @@ "static_callcallcodecall_010_OOGMAfter2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2cb3a04bc44ae222261063500becc688502079630781375b1ae85be17cba39f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2cb3a04bc44ae222261063500becc688502079630781375b1ae85be17cba39f3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2cb3a04bc44ae222261063500becc688502079630781375b1ae85be17cba39f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2cb3a04bc44ae222261063500becc688502079630781375b1ae85be17cba39f3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2cb3a04bc44ae222261063500becc688502079630781375b1ae85be17cba39f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2cb3a04bc44ae222261063500becc688502079630781375b1ae85be17cba39f3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2cb3a04bc44ae222261063500becc688502079630781375b1ae85be17cba39f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2cb3a04bc44ae222261063500becc688502079630781375b1ae85be17cba39f3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5389515c345bbc74db5091a0de832aa7fc002e89f54e776a22aa067ee1923a8b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x5389515c345bbc74db5091a0de832aa7fc002e89f54e776a22aa067ee1923a8b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003561eaf6fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f2505b61c3506080511015603c576001608051016080526024565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f2506001600155", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +83,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter_2.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter_2.json index 7045d174c..122753a5d 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter_2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter_2.json @@ -2,149 +2,79 @@ "static_callcallcodecall_010_OOGMAfter_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe30eacc3c2c6cbdb91057adbaac53768546552d6d0dcc6ef95e182e95ec0f2c6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6332d2b26543f5b5c66a0b39aae2bfe466532e049bfe712dc7a5bc12f3733107", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x6332d2b26543f5b5c66a0b39aae2bfe466532e049bfe712dc7a5bc12f3733107", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003561eaf6fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4506001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e48fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20040 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4505b61c3506080511015603a576001608051016080526022565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +85,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter_3.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter_3.json index 444959f1a..755c4bd91 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter_3.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMAfter_3.json @@ -2,149 +2,79 @@ "static_callcallcodecall_010_OOGMAfter_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMAfter_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x68829e4a6e38e3771085934e0572538d3da2e9f0375b1797c639a0162624de54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x68829e4a6e38e3771085934e0572538d3da2e9f0375b1797c639a0162624de54", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x68829e4a6e38e3771085934e0572538d3da2e9f0375b1797c639a0162624de54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x68829e4a6e38e3771085934e0572538d3da2e9f0375b1797c639a0162624de54", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x68829e4a6e38e3771085934e0572538d3da2e9f0375b1797c639a0162624de54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x68829e4a6e38e3771085934e0572538d3da2e9f0375b1797c639a0162624de54", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x68829e4a6e38e3771085934e0572538d3da2e9f0375b1797c639a0162624de54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x68829e4a6e38e3771085934e0572538d3da2e9f0375b1797c639a0162624de54", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd62e6638d73cae56f010fc1e87bf62ffd483892080c36625d85091d01b78e783", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xd62e6638d73cae56f010fc1e87bf62ffd483892080c36625d85091d01b78e783", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003561eaf6fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f2506001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f2505b61c3506080511015603c576001608051016080526024565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +85,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMBefore.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMBefore.json index afec03bc1..740a60e86 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMBefore.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMBefore.json @@ -2,149 +2,79 @@ "static_callcallcodecall_010_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x540e8d14ae7d4273fe9695c00d066eefcadede311aa021922c9fe1f2f3dca99c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x540e8d14ae7d4273fe9695c00d066eefcadede311aa021922c9fe1f2f3dca99c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x540e8d14ae7d4273fe9695c00d066eefcadede311aa021922c9fe1f2f3dca99c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x540e8d14ae7d4273fe9695c00d066eefcadede311aa021922c9fe1f2f3dca99c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x540e8d14ae7d4273fe9695c00d066eefcadede311aa021922c9fe1f2f3dca99c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x540e8d14ae7d4273fe9695c00d066eefcadede311aa021922c9fe1f2f3dca99c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x540e8d14ae7d4273fe9695c00d066eefcadede311aa021922c9fe1f2f3dca99c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x540e8d14ae7d4273fe9695c00d066eefcadede311aa021922c9fe1f2f3dca99c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x447e0f22190f9bb1dbb05774ba3e736a57c00706a7cd77910e8ccabe73a9cf83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x447e0f22190f9bb1dbb05774ba3e736a57c00706a7cd77910e8ccabe73a9cf83", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c6c", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000600035619c90f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003556040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +85,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMBefore2.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMBefore2.json index 85f116861..c3d59cd48 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMBefore2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_OOGMBefore2.json @@ -2,149 +2,79 @@ "static_callcallcodecall_010_OOGMBefore2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_OOGMBefore2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x57d703fa56d7ffe17864243cf80092518b074863778e2c823b8b40695fda674f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x57d703fa56d7ffe17864243cf80092518b074863778e2c823b8b40695fda674f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x57d703fa56d7ffe17864243cf80092518b074863778e2c823b8b40695fda674f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x57d703fa56d7ffe17864243cf80092518b074863778e2c823b8b40695fda674f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x57d703fa56d7ffe17864243cf80092518b074863778e2c823b8b40695fda674f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x57d703fa56d7ffe17864243cf80092518b074863778e2c823b8b40695fda674f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x57d703fa56d7ffe17864243cf80092518b074863778e2c823b8b40695fda674f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x57d703fa56d7ffe17864243cf80092518b074863778e2c823b8b40695fda674f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1a62c3878fd456b21d63afd2b38087ee231aaad964665769171e18f7d6f73990", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x1a62c3878fd456b21d63afd2b38087ee231aaad964665769171e18f7d6f73990", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c69", + "0x02" : "0x00", + "0x03" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000600035619c90f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 (CALLDATALOAD 0) 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003556040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +85,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideEnd.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideEnd.json index d88abb07f..5ede200ab 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideEnd.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideEnd.json @@ -2,102 +2,85 @@ "static_callcallcodecall_010_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4dc754dfdfb0af30cd83411ff9b98c2a32104dfdb287644220972889119f30c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b", + "0x03" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000" + }, + "1000000000000000000000000000000000000003" : { + "storage" : { + "0x03" : "0x00" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4dc754dfdfb0af30cd83411ff9b98c2a32104dfdb287644220972889119f30c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4dc754dfdfb0af30cd83411ff9b98c2a32104dfdb287644220972889119f30c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4dc754dfdfb0af30cd83411ff9b98c2a32104dfdb287644220972889119f30c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb926376fff8fb99ba0fa81eab355ab3e11256ed00352f658108e8a18bc9d092b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350fa50731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +90,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideEnd2.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideEnd2.json index 44732e48f..8d784d963 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideEnd2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideEnd2.json @@ -2,102 +2,76 @@ "static_callcallcodecall_010_SuicideEnd2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideEnd2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb27f3b646f796869d105f89d84bc273ca9922ee152f611cfa97280427ced7895", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a48" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb27f3b646f796869d105f89d84bc273ca9922ee152f611cfa97280427ced7895", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb27f3b646f796869d105f89d84bc273ca9922ee152f611cfa97280427ced7895", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb27f3b646f796869d105f89d84bc273ca9922ee152f611cfa97280427ced7895", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x897dc775ba11fca972cf1a718bf7db4af5a95d99af46301b8e6251792ea06bdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350fa50731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +81,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideMiddle.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideMiddle.json index 17c3b0b5b..757940aec 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideMiddle.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideMiddle.json @@ -2,102 +2,70 @@ "static_callcallcodecall_010_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x59d3f1c3d6468bd6ab594a573ac4f799545e10065f70e6ec04facd62e57d86d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b" + } } } - ], - "EIP158" : [ - { - "hash" : "0x59d3f1c3d6468bd6ab594a573ac4f799545e10065f70e6ec04facd62e57d86d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x59d3f1c3d6468bd6ab594a573ac4f799545e10065f70e6ec04facd62e57d86d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x59d3f1c3d6468bd6ab594a573ac4f799545e10065f70e6ec04facd62e57d86d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xea783d37d42e6ecd24e892886df355ba6d51587e01c149d24fc153db261f5bdb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideMiddle2.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideMiddle2.json index 1b0c37d17..63fed5ebf 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideMiddle2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_010_SuicideMiddle2.json @@ -2,102 +2,83 @@ "static_callcallcodecall_010_SuicideMiddle2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_010_SuicideMiddle2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf673e75a7903269b3f0930f908dc792c4c34c0602746d8b7f4d34f0ad32358ce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a48" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "storage" : { + "0x03" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf673e75a7903269b3f0930f908dc792c4c34c0602746d8b7f4d34f0ad32358ce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf673e75a7903269b3f0930f908dc792c4c34c0602746d8b7f4d34f0ad32358ce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf673e75a7903269b3f0930f908dc792c4c34c0602746d8b7f4d34f0ad32358ce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf07644cc5749fdb124dc06126a62b44551ed28eda44d5eb3cc75549a1891ecfb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +88,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE.json index 250405d3e..6c2b8a9af 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE.json @@ -2,95 +2,75 @@ "static_callcallcodecall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x49f3a5850045604875b3ee7f2ebf235952a601f8d6aa4021b7f08f5661894092", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75d11" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x49f3a5850045604875b3ee7f2ebf235952a601f8d6aa4021b7f08f5661894092", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x49f3a5850045604875b3ee7f2ebf235952a601f8d6aa4021b7f08f5661894092", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x49f3a5850045604875b3ee7f2ebf235952a601f8d6aa4021b7f08f5661894092", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x13778c562ea9af15cf107860c2ed51034bb91b7e28229a31f2b839c0e06cdf0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +80,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2.json b/GeneralStateTests/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2.json index 01d55482c..518ec8467 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2.json @@ -2,95 +2,75 @@ "static_callcallcodecall_ABCB_RECURSIVE2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecall_ABCB_RECURSIVE2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x76f93e5709b70048ac48bce27e5c57a7e6b79c5abebc7c7017c0f22297464d17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75c78" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x76f93e5709b70048ac48bce27e5c57a7e6b79c5abebc7c7017c0f22297464d17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x76f93e5709b70048ac48bce27e5c57a7e6b79c5abebc7c7017c0f22297464d17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x76f93e5709b70048ac48bce27e5c57a7e6b79c5abebc7c7017c0f22297464d17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x40b39cda5afb0a2b56a572668d01f831fa58ac06273653a63591a5f0a13a3142", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +80,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011.json index bdc397489..e9564f19b 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011.json @@ -2,102 +2,72 @@ "static_callcallcodecallcode_011" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2fd75751e2840030fd525e367b76078a473d3b453743658bb32f61985ebdd3c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1de0", + "0x03" : "0x00", + "0x04" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2fd75751e2840030fd525e367b76078a473d3b453743658bb32f61985ebdd3c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2fd75751e2840030fd525e367b76078a473d3b453743658bb32f61985ebdd3c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2fd75751e2840030fd525e367b76078a473d3b453743658bb32f61985ebdd3c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x19cb8862259737713de891945c4c19bfb69b0562a44b08bc871398c3a8f79918", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016001526040600060406000731000000000000000000000000000000000000002620493e0f4506001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001600b5260406000604060007310000000000000000000000000000000000000036203d090f4506001600b52", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 11 1) (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 11 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +77,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_2.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_2.json index ec3e6bf11..314eff335 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_2.json @@ -2,149 +2,95 @@ "static_callcallcodecallcode_011_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2ef4ce9928e12ef46bd37c473fa224226d6f4893ea7b94346c23e573e32eefbd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ef4ce9928e12ef46bd37c473fa224226d6f4893ea7b94346c23e573e32eefbd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2ef4ce9928e12ef46bd37c473fa224226d6f4893ea7b94346c23e573e32eefbd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ef4ce9928e12ef46bd37c473fa224226d6f4893ea7b94346c23e573e32eefbd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2ef4ce9928e12ef46bd37c473fa224226d6f4893ea7b94346c23e573e32eefbd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x2ef4ce9928e12ef46bd37c473fa224226d6f4893ea7b94346c23e573e32eefbd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1cf3" + } } } - ], - "Homestead" : [ - { - "hash" : "0x2ef4ce9928e12ef46bd37c473fa224226d6f4893ea7b94346c23e573e32eefbd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ef4ce9928e12ef46bd37c473fa224226d6f4893ea7b94346c23e573e32eefbd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9db7831768f2ee813548e2ef021daf6ad66d2703c19342c41f8839efaaeb0767", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x3e51020794ae37feb46ed74fb683949978ebf620609e854fdae15cb5a7e8cc00", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d02c7" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600035600052604060006040600073100000000000000000000000000000000000000162055730fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000600035620493e0f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 300000 (CALLDATALOAD 0) 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060007310000000000000000000000000000000000000036203d090f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 250000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060017310000000000000000000000000000000000000036203d090f2", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 250000 0x1000000000000000000000000000000000000003 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +101,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGE.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGE.json index d10f60c00..4867d3608 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGE.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGE.json @@ -2,149 +2,77 @@ "static_callcallcodecallcode_011_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4daa489c6b3aabf48d863c99f9e2a26afdd0a99d943a0c791d0529f5180c4bb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4daa489c6b3aabf48d863c99f9e2a26afdd0a99d943a0c791d0529f5180c4bb3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4daa489c6b3aabf48d863c99f9e2a26afdd0a99d943a0c791d0529f5180c4bb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4daa489c6b3aabf48d863c99f9e2a26afdd0a99d943a0c791d0529f5180c4bb3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4daa489c6b3aabf48d863c99f9e2a26afdd0a99d943a0c791d0529f5180c4bb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4daa489c6b3aabf48d863c99f9e2a26afdd0a99d943a0c791d0529f5180c4bb3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4daa489c6b3aabf48d863c99f9e2a26afdd0a99d943a0c791d0529f5180c4bb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4daa489c6b3aabf48d863c99f9e2a26afdd0a99d943a0c791d0529f5180c4bb3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0af81d323116a22531bb4d7fa04c8ac27e8044ae1e98b6c1668ef4955ebed727", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x0af81d323116a22531bb4d7fa04c8ac27e8044ae1e98b6c1668ef4955ebed727", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01a7e8" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000002620186a0f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000600035614e34f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +83,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000003" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGE_2.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGE_2.json index 4845c93a6..05584dcfb 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGE_2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGE_2.json @@ -2,149 +2,95 @@ "static_callcallcodecallcode_011_OOGE_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGE_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x242220bfa3ff7bdb870f22f1b6711ca133c612c37846f536cb13e7069bebdb4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x242220bfa3ff7bdb870f22f1b6711ca133c612c37846f536cb13e7069bebdb4c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x242220bfa3ff7bdb870f22f1b6711ca133c612c37846f536cb13e7069bebdb4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x242220bfa3ff7bdb870f22f1b6711ca133c612c37846f536cb13e7069bebdb4c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x242220bfa3ff7bdb870f22f1b6711ca133c612c37846f536cb13e7069bebdb4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x242220bfa3ff7bdb870f22f1b6711ca133c612c37846f536cb13e7069bebdb4c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01f5eb" + } } } - ], - "Homestead" : [ - { - "hash" : "0x242220bfa3ff7bdb870f22f1b6711ca133c612c37846f536cb13e7069bebdb4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x242220bfa3ff7bdb870f22f1b6711ca133c612c37846f536cb13e7069bebdb4c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc50926fa7b3798228ab87b4e6caef6880835e1f473776bc5942ab9cfb6067fb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x16776fdb7a0c07720faf28c0c3a68e7231f9b9a00de3cff098c1bccd8671568c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01dbce" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000600035620186a0f2506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (CALLCODE 100000 (CALLDATALOAD 0) 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600b60035260406000604060006000731000000000000000000000000000000000000003614e34f2506001600d52", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 11) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (MSTORE 13 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600b60035260406000604060006001731000000000000000000000000000000000000003614e34f2506001600d52", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 11) (CALLCODE 20020 0x1000000000000000000000000000000000000003 1 0 64 0 64 ) (MSTORE 13 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +101,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter.json index 981659f09..de666396a 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter.json @@ -2,149 +2,77 @@ "static_callcallcodecallcode_011_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2e194b3f2ad4b733dae1bd053e9686b9c6b677325326aa1811572d2016645dbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2e194b3f2ad4b733dae1bd053e9686b9c6b677325326aa1811572d2016645dbe", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2e194b3f2ad4b733dae1bd053e9686b9c6b677325326aa1811572d2016645dbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2e194b3f2ad4b733dae1bd053e9686b9c6b677325326aa1811572d2016645dbe", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2e194b3f2ad4b733dae1bd053e9686b9c6b677325326aa1811572d2016645dbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2e194b3f2ad4b733dae1bd053e9686b9c6b677325326aa1811572d2016645dbe", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2e194b3f2ad4b733dae1bd053e9686b9c6b677325326aa1811572d2016645dbe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2e194b3f2ad4b733dae1bd053e9686b9c6b677325326aa1811572d2016645dbe", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbd5d7bfff973258610c0c91f936cfac39cbfa43b4d4036e8207b856412d5e7d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xbd5d7bfff973258610c0c91f936cfac39cbfa43b4d4036e8207b856412d5e7d8", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b88" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003561eaecfa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60140 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016001526040600060406000731000000000000000000000000000000000000002619c90f4506001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016001526040600060406000731000000000000000000000000000000000000003614e34f4506001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016001526040600060406000731000000000000000000000000000000000000002619c90f4505b61c3506080511015603f576001608051016080526027565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +83,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2.json index 5e2cd8209..a3d8f9dd2 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2.json @@ -2,149 +2,77 @@ "static_callcallcodecallcode_011_OOGMAfter2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd7f9bc5887e48f150f206c043834da84c98c0819b6616a02abbd3f170d97e048", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd7f9bc5887e48f150f206c043834da84c98c0819b6616a02abbd3f170d97e048", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd7f9bc5887e48f150f206c043834da84c98c0819b6616a02abbd3f170d97e048", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd7f9bc5887e48f150f206c043834da84c98c0819b6616a02abbd3f170d97e048", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd7f9bc5887e48f150f206c043834da84c98c0819b6616a02abbd3f170d97e048", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd7f9bc5887e48f150f206c043834da84c98c0819b6616a02abbd3f170d97e048", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd7f9bc5887e48f150f206c043834da84c98c0819b6616a02abbd3f170d97e048", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd7f9bc5887e48f150f206c043834da84c98c0819b6616a02abbd3f170d97e048", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe17e78baf0baf3baa33b7c07e6a27a4b26bfa0da315cd2fdd7f78b852ac319fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xe17e78baf0baf3baa33b7c07e6a27a4b26bfa0da315cd2fdd7f78b852ac319fe", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003561eaf6fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f2506001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002619c90f2505b61c3506080511015603c576001608051016080526024565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +83,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1.json index cc8bd22d2..870ebafbb 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1.json @@ -2,149 +2,77 @@ "static_callcallcodecallcode_011_OOGMAfter_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x37b05b2b1694e267a17fa8d8b8a8d34c9f110bdb64dbb9bb587672ed83a922bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x37b05b2b1694e267a17fa8d8b8a8d34c9f110bdb64dbb9bb587672ed83a922bb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x37b05b2b1694e267a17fa8d8b8a8d34c9f110bdb64dbb9bb587672ed83a922bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x37b05b2b1694e267a17fa8d8b8a8d34c9f110bdb64dbb9bb587672ed83a922bb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x37b05b2b1694e267a17fa8d8b8a8d34c9f110bdb64dbb9bb587672ed83a922bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x37b05b2b1694e267a17fa8d8b8a8d34c9f110bdb64dbb9bb587672ed83a922bb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x37b05b2b1694e267a17fa8d8b8a8d34c9f110bdb64dbb9bb587672ed83a922bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x37b05b2b1694e267a17fa8d8b8a8d34c9f110bdb64dbb9bb587672ed83a922bb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x990af95a71b3118f69c426277add38bbc58de02a9e26bff7eb0ebf4bbf7ae599", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x990af95a71b3118f69c426277add38bbc58de02a9e26bff7eb0ebf4bbf7ae599", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b88" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003561eaecfa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60140 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002619c90f4506001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34f4506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002619c90f4505b61c3506080511015603f576001608051016080526027565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +83,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2.json index f45f3d897..ae18ec3b8 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2.json @@ -2,149 +2,77 @@ "static_callcallcodecallcode_011_OOGMAfter_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMAfter_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc03c499e2a3c34e4c26beadf863c506258ab497dc402f2f6a757045ed7f3b080", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc03c499e2a3c34e4c26beadf863c506258ab497dc402f2f6a757045ed7f3b080", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc03c499e2a3c34e4c26beadf863c506258ab497dc402f2f6a757045ed7f3b080", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc03c499e2a3c34e4c26beadf863c506258ab497dc402f2f6a757045ed7f3b080", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc03c499e2a3c34e4c26beadf863c506258ab497dc402f2f6a757045ed7f3b080", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc03c499e2a3c34e4c26beadf863c506258ab497dc402f2f6a757045ed7f3b080", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc03c499e2a3c34e4c26beadf863c506258ab497dc402f2f6a757045ed7f3b080", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc03c499e2a3c34e4c26beadf863c506258ab497dc402f2f6a757045ed7f3b080", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfa050b11a89e2a9f7c305d45fbe82d342206c1c7a1a4c6f3bbc1f8d93d752ef9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xfa050b11a89e2a9f7c305d45fbe82d342206c1c7a1a4c6f3bbc1f8d93d752ef9", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7e" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060003561eaf6fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 60150 (CALLDATALOAD 0) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000002619c90f2506001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f2506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000002619c90f2505b61c35060805110156041576001608051016080526029565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (CALLCODE 40080 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +83,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMBefore.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMBefore.json index 3f788ebfc..ca7d71b4b 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMBefore.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMBefore.json @@ -2,149 +2,75 @@ "static_callcallcodecallcode_011_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2ad20090e1224b29415993bf5bd03758d712b8193e795a912eabed4d2604d345", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ad20090e1224b29415993bf5bd03758d712b8193e795a912eabed4d2604d345", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x2ad20090e1224b29415993bf5bd03758d712b8193e795a912eabed4d2604d345", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ad20090e1224b29415993bf5bd03758d712b8193e795a912eabed4d2604d345", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2ad20090e1224b29415993bf5bd03758d712b8193e795a912eabed4d2604d345", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ad20090e1224b29415993bf5bd03758d712b8193e795a912eabed4d2604d345", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2ad20090e1224b29415993bf5bd03758d712b8193e795a912eabed4d2604d345", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2ad20090e1224b29415993bf5bd03758d712b8193e795a912eabed4d2604d345", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd6541ea5354201a48bd0f70f2f332dd4531fa85f8bb7d071781c438303fa64d0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xd6541ea5354201a48bd0f70f2f332dd4531fa85f8bb7d071781c438303fa64d0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : "Metropolis", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c58" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000600035619c90f4506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003556040600060406000731000000000000000000000000000000000000003614e34f4506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b6040600060406000731000000000000000000000000000000000000003614e34f4506001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +81,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2.json index 463459056..33be6467f 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2.json @@ -2,196 +2,107 @@ "static_callcallcodecallcode_011_OOGMBefore2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_OOGMBefore2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9ed73ce69ea182a3c3951a9afc1f43cb659b78f9218037269f67acb4c15fc080", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9ed73ce69ea182a3c3951a9afc1f43cb659b78f9218037269f67acb4c15fc080", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9ed73ce69ea182a3c3951a9afc1f43cb659b78f9218037269f67acb4c15fc080", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x9ed73ce69ea182a3c3951a9afc1f43cb659b78f9218037269f67acb4c15fc080", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9ed73ce69ea182a3c3951a9afc1f43cb659b78f9218037269f67acb4c15fc080", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9ed73ce69ea182a3c3951a9afc1f43cb659b78f9218037269f67acb4c15fc080", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9ed73ce69ea182a3c3951a9afc1f43cb659b78f9218037269f67acb4c15fc080", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9ed73ce69ea182a3c3951a9afc1f43cb659b78f9218037269f67acb4c15fc080", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9ed73ce69ea182a3c3951a9afc1f43cb659b78f9218037269f67acb4c15fc080", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9ed73ce69ea182a3c3951a9afc1f43cb659b78f9218037269f67acb4c15fc080", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9ed73ce69ea182a3c3951a9afc1f43cb659b78f9218037269f67acb4c15fc080", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : [ + 0, + 1 + ], + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x9ed73ce69ea182a3c3951a9afc1f43cb659b78f9218037269f67acb4c15fc080", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c55" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x5b1d00a06a0a036104cbba95bdb5cbafcbf87dc8211748891feaa97e38d6e8d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5b1d00a06a0a036104cbba95bdb5cbafcbf87dc8211748891feaa97e38d6e8d1", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : [ + 2 + ], + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xfc2dce01185c4c215d30367575141e646f1a5db292112040331e5018a8ffcdd5", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01dbd7" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x600160205260406000604060006000600035619c90f2506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 32 1) (CALLCODE 40080 (CALLDATALOAD 0) 0 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035560406000604060006000731000000000000000000000000000000000000003614e34f2506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b60406000604060006000731000000000000000000000000000000000000003614e34f2506001602052", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x3000000000000000000000000000000000000002" : { - "balance" : "0x0a", - "code" : "0x60406000604060006001731000000000000000000000000000000000000003614e34f2506001602052", - "nonce" : "0x00", + "3000000000000000000000000000000000000002" : { + "balance" : "10", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 1 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -203,14 +114,14 @@ "0x0000000000000000000000003000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideEnd.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideEnd.json index 0282c1c3f..1f48259b6 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideEnd.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideEnd.json @@ -2,102 +2,71 @@ "static_callcallcodecallcode_011_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x61348e42b14d35d4eef7d5956eeffb19517a6fbf0a94e1ab3eb4dcf35855c89c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Metropolis", + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000" } } - ], - "EIP158" : [ - { - "hash" : "0x61348e42b14d35d4eef7d5956eeffb19517a6fbf0a94e1ab3eb4dcf35855c89c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x61348e42b14d35d4eef7d5956eeffb19517a6fbf0a94e1ab3eb4dcf35855c89c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x61348e42b14d35d4eef7d5956eeffb19517a6fbf0a94e1ab3eb4dcf35855c89c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb67aa4247e88c4d122fb9eeef8124903887c155478891526a791052f6d3bd021", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350f450731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +76,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2.json index 55ba6f955..b7a333e87 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2.json @@ -2,102 +2,70 @@ "static_callcallcodecallcode_011_SuicideEnd2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideEnd2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x22516f9d8f7a7932fb00d5b49968d602ec3ae02aa8271296b42286d2b7e0ea36", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a3f" + } } } - ], - "EIP158" : [ - { - "hash" : "0x22516f9d8f7a7932fb00d5b49968d602ec3ae02aa8271296b42286d2b7e0ea36", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x22516f9d8f7a7932fb00d5b49968d602ec3ae02aa8271296b42286d2b7e0ea36", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x22516f9d8f7a7932fb00d5b49968d602ec3ae02aa8271296b42286d2b7e0ea36", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcabc8e8c5f4501f7883829cfce035018e718565b59a34c135a3c027311098777", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000002620186a0f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000600073100000000000000000000000000000000000000361c350f250731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle.json index 8e997b956..c30ec91ba 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle.json @@ -2,102 +2,73 @@ "static_callcallcodecallcode_011_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x59d3f1c3d6468bd6ab594a573ac4f799545e10065f70e6ec04facd62e57d86d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000" } } - ], - "EIP158" : [ - { - "hash" : "0x59d3f1c3d6468bd6ab594a573ac4f799545e10065f70e6ec04facd62e57d86d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x59d3f1c3d6468bd6ab594a573ac4f799545e10065f70e6ec04facd62e57d86d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x59d3f1c3d6468bd6ab594a573ac4f799545e10065f70e6ec04facd62e57d86d7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xea783d37d42e6ecd24e892886df355ba6d51587e01c149d24fc153db261f5bdb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +78,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2.json index 6acfc00e6..511ff1ac1 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2.json @@ -2,102 +2,73 @@ "static_callcallcodecallcode_011_SuicideMiddle2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_011_SuicideMiddle2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9bfdf19cb71a48380c3c874c6acb8d2d44f1f91b865a5392b5b8daa85eadc66f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000" } } - ], - "EIP158" : [ - { - "hash" : "0x9bfdf19cb71a48380c3c874c6acb8d2d44f1f91b865a5392b5b8daa85eadc66f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9bfdf19cb71a48380c3c874c6acb8d2d44f1f91b865a5392b5b8daa85eadc66f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9bfdf19cb71a48380c3c874c6acb8d2d44f1f91b865a5392b5b8daa85eadc66f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5390e5b561f9b0603dec17d274e19b996d1ac37a789533458cb553b032b5bf33", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0fa600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000002620186a0f2506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (CALLCODE 100000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +78,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE.json index aaa867fcb..d8e6703d1 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE.json @@ -2,95 +2,75 @@ "static_callcallcodecallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x12b627c26a82e8c21433e04e7ceea3b207387ee8847483c067dcf8fa8949aefe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75d11" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x12b627c26a82e8c21433e04e7ceea3b207387ee8847483c067dcf8fa8949aefe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x12b627c26a82e8c21433e04e7ceea3b207387ee8847483c067dcf8fa8949aefe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x12b627c26a82e8c21433e04e7ceea3b207387ee8847483c067dcf8fa8949aefe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc096d4dd7261d8bc4b3bd8886fd1330c3d60d2587024dcfb04cb1a10f747d090", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +80,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2.json b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2.json index be06b24f3..0998edb06 100644 --- a/GeneralStateTests/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2.json +++ b/GeneralStateTests/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2.json @@ -2,95 +2,75 @@ "static_callcallcodecallcode_ABCB_RECURSIVE2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcallcodecallcode_ABCB_RECURSIVE2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe996ed842257c5008ab91eedcb96fff401eeb3fb48de4cb136e546e3d6c486d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75bde" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe996ed842257c5008ab91eedcb96fff401eeb3fb48de4cb136e546e3d6c486d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe996ed842257c5008ab91eedcb96fff401eeb3fb48de4cb136e546e3d6c486d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe996ed842257c5008ab91eedcb96fff401eeb3fb48de4cb136e546e3d6c486d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xba06a47690366b597d449738417960f12cf8dc4b75b9376ceb636ac32ecf9c7c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +80,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcode_checkPC.json b/GeneralStateTests/stStaticCall/static_callcode_checkPC.json index d9016efa3..b19b7fc9d 100644 --- a/GeneralStateTests/stStaticCall/static_callcode_checkPC.json +++ b/GeneralStateTests/stStaticCall/static_callcode_checkPC.json @@ -2,88 +2,55 @@ "static_callcode_checkPC" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcode_checkPCFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8d83f83f293820bb058b8492273f04a6ad304cd2417792399a40ef728098101f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x03" : "0x23" + } } } - ], - "EIP158" : [ - { - "hash" : "0x8d83f83f293820bb058b8492273f04a6ad304cd2417792399a40ef728098101f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8d83f83f293820bb058b8492273f04a6ad304cd2417792399a40ef728098101f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8d83f83f293820bb058b8492273f04a6ad304cd2417792399a40ef728098101f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4d18190108f60337bbbcf5b57137b320bf906dcff70c45dae03ea2b1c308ffb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620f4240fa5058600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 1000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[3]] (PC)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecall_10.json b/GeneralStateTests/stStaticCall/static_callcodecall_10.json index a78ee28f9..ad83f330a 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecall_10.json +++ b/GeneralStateTests/stStaticCall/static_callcodecall_10.json @@ -2,95 +2,63 @@ "static_callcodecall_10" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x40d04fef0f0ed5089c0e02eca18e8aeabac20d4e13aff19833883a15c3abe706", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d20c8" + } } } - ], - "EIP158" : [ - { - "hash" : "0x40d04fef0f0ed5089c0e02eca18e8aeabac20d4e13aff19833883a15c3abe706", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4005a7e73385bdbb25efaa7c4b47907bd64d8e4588a328b9e1ed1a095450c39a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8ca8708210d53c84e4ccfc81a2993e508240687b7907d52d5a53be9a32d7c966", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb76a7f0ba3d09df577b8dc17c26e65e3208da54317e3e79896b5c5d28152a54d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160015260406000604060007310000000000000000000000000000000000000026203d090fa506001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +68,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecall_10_2.json b/GeneralStateTests/stStaticCall/static_callcodecall_10_2.json index f53a3d820..4579941db 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecall_10_2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecall_10_2.json @@ -2,95 +2,63 @@ "static_callcodecall_10_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcaef428f02c7bb1fe166c3e7f57f72798642c2ab14933054431c6f9752463961", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d06ad" + } } } - ], - "EIP158" : [ - { - "hash" : "0xcaef428f02c7bb1fe166c3e7f57f72798642c2ab14933054431c6f9752463961", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe46db475f4a34f99a95707007e4f41388e506493bf8fc0636dc5505dde2278cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe46db475f4a34f99a95707007e4f41388e506493bf8fc0636dc5505dde2278cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf00df8758426e896e6c0ce7481eef0f1fb78ccb694d41b8098c4454a7bafcf80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600173100000000000000000000000000000000000000162055730f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 1 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000026203d090fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +68,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecall_10_OOGE.json b/GeneralStateTests/stStaticCall/static_callcodecall_10_OOGE.json index a4cb200d2..6d00b056a 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecall_10_OOGE.json +++ b/GeneralStateTests/stStaticCall/static_callcodecall_10_OOGE.json @@ -2,142 +2,70 @@ "static_callcodecall_10_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7c71255332e7a4e5f2242fab0159d493c3b35e3583b987b1ce91f3be3617ca80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7c71255332e7a4e5f2242fab0159d493c3b35e3583b987b1ce91f3be3617ca80", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7c71255332e7a4e5f2242fab0159d493c3b35e3583b987b1ce91f3be3617ca80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7c71255332e7a4e5f2242fab0159d493c3b35e3583b987b1ce91f3be3617ca80", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7c71255332e7a4e5f2242fab0159d493c3b35e3583b987b1ce91f3be3617ca80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7c71255332e7a4e5f2242fab0159d493c3b35e3583b987b1ce91f3be3617ca80", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7c71255332e7a4e5f2242fab0159d493c3b35e3583b987b1ce91f3be3617ca80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7c71255332e7a4e5f2242fab0159d493c3b35e3583b987b1ce91f3be3617ca80", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x19b6480506e75ce4c686d0383c6cb2b4adfb756ef953fdf3df311f49805ad649", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x19b6480506e75ce4c686d0383c6cb2b4adfb756ef953fdf3df311f49805ad649", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01aac8" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000600035614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6001600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -148,14 +76,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecall_10_OOGE_2.json b/GeneralStateTests/stStaticCall/static_callcodecall_10_OOGE_2.json index 4d8fc43ea..365d0ebb1 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecall_10_OOGE_2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecall_10_OOGE_2.json @@ -2,142 +2,83 @@ "static_callcodecall_10_OOGE_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_OOGE_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb197c4442d69a868c8659a3d50654c4a629537a047bdab998c2745bad40ba33b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb197c4442d69a868c8659a3d50654c4a629537a047bdab998c2745bad40ba33b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb197c4442d69a868c8659a3d50654c4a629537a047bdab998c2745bad40ba33b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb197c4442d69a868c8659a3d50654c4a629537a047bdab998c2745bad40ba33b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb197c4442d69a868c8659a3d50654c4a629537a047bdab998c2745bad40ba33b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb197c4442d69a868c8659a3d50654c4a629537a047bdab998c2745bad40ba33b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb197c4442d69a868c8659a3d50654c4a629537a047bdab998c2745bad40ba33b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb197c4442d69a868c8659a3d50654c4a629537a047bdab998c2745bad40ba33b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0af7e238f853cb81bc29728025f5c999e953b36d8a5f132a0c4c66818c9154b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x0af7e238f853cb81bc29728025f5c999e953b36d8a5f132a0c4c66818c9154b4", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01aab1", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000001" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } + }, + "1000000000000000000000000000000000000002" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60003560005260406000604060006000731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016002526040600060406000600035614e34fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 2 1) (STATICCALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6001600255", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -148,14 +89,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecall_10_SuicideEnd.json b/GeneralStateTests/stStaticCall/static_callcodecall_10_SuicideEnd.json index f2f44405d..85f5b9061 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecall_10_SuicideEnd.json +++ b/GeneralStateTests/stStaticCall/static_callcodecall_10_SuicideEnd.json @@ -2,142 +2,67 @@ "static_callcodecall_10_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xffb10331a4b64cc4bcd130b9d14d20044bd9dc060aa9b90208352cdd798cb42e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffb10331a4b64cc4bcd130b9d14d20044bd9dc060aa9b90208352cdd798cb42e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xffb10331a4b64cc4bcd130b9d14d20044bd9dc060aa9b90208352cdd798cb42e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xffb10331a4b64cc4bcd130b9d14d20044bd9dc060aa9b90208352cdd798cb42e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa5c92ddc578bac4041bcf00e6f5f8c8797630a18c8cfeb61e8ce492bb2537a98", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa5c92ddc578bac4041bcf00e6f5f8c8797630a18c8cfeb61e8ce492bb2537a98", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5fab1652410c514f5ab0d93fe429e3ef683009e262b5c7b04f16049833ac252b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5fab1652410c514f5ab0d93fe429e3ef683009e262b5c7b04f16049833ac252b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x455b47cabeed4cb5fc4cb50474c3382679f4b66e1f300824548db5e8e74f932b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x54f6798e80aa6993988d14777e80074576047b55c89c420324cc580868d9669d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060003561c350fa50731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 50000 (CALLDATALOAD 0) 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600255", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -148,14 +73,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecall_10_SuicideEnd2.json b/GeneralStateTests/stStaticCall/static_callcodecall_10_SuicideEnd2.json index 70936ecd5..dd395cdae 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecall_10_SuicideEnd2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecall_10_SuicideEnd2.json @@ -2,135 +2,60 @@ "static_callcodecall_10_SuicideEnd2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecall_10_SuicideEnd2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb1f79d64a427855e6542a8b149d2101512f2982a0e6bddc413d0a1c150368f6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfb1724ceb6b4d1963ad896eb0bfefa54f538b85d04bdba49b0ec97f9a6cd5081", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb1f79d64a427855e6542a8b149d2101512f2982a0e6bddc413d0a1c150368f6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfb1724ceb6b4d1963ad896eb0bfefa54f538b85d04bdba49b0ec97f9a6cd5081", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcb2611e4431a6cf6a749b0bb81cc79d7adde161488fec22721e05e19e4c6d3af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3c0af4fd0d68067a34b91c574453e7900e3330d63be4d13b7bf7a728bdaf355b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcb2611e4431a6cf6a749b0bb81cc79d7adde161488fec22721e05e19e4c6d3af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3c0af4fd0d68067a34b91c574453e7900e3330d63be4d13b7bf7a728bdaf355b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x757164264cd4323998e716d132550c10cf0cc623815257199c218b1b473b7555", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xf85d747b2fdbbeea4366755fd4a835b694effbebfe28189d941d3ca429fa1034", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600034731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000261c350fa50731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000000) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 2 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -140,15 +65,15 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100.json index 113b60046..d30543ce3 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100.json @@ -2,102 +2,70 @@ "static_callcodecallcall_100" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4126e8a9ffab70c125d27eda12cc08b4b42117bb5eef34e7025af771ebe5863c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1dfe" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4126e8a9ffab70c125d27eda12cc08b4b42117bb5eef34e7025af771ebe5863c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x10ae69062b7397b67941366bb23a6653632c94faafdcbab9fc51c8e81dc1362e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xba19c18ac02fc6cef9dddcf13ec4678f302aa87e5283ea9e8a251fdcaa3cd398", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc62c52a9e623752e2ea8831e92e3bc361534fe50423463a5bb2cf961cea54996", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620493e0fa5033600552", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 5 (CALLER))}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000036203d090fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_2.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_2.json index 005bf3347..913299d62 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_2.json @@ -2,142 +2,92 @@ "static_callcodecallcall_100_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7d27ae5179addae420f8848bf939d89218cf768eece86e0d7b914027e02e4ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb6a4fe6026a17a81c53d8f2d3ed8ee914cbaa78f282631f5b76b7d3be26adc38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x7d27ae5179addae420f8848bf939d89218cf768eece86e0d7b914027e02e4ffe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb6a4fe6026a17a81c53d8f2d3ed8ee914cbaa78f282631f5b76b7d3be26adc38", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x78d9ec15bf63501294f6754e1c9165bf7c2dcad9415b23d74d1d2900f3cdedf7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : [ + 0 + ] }, - { - "hash" : "0xcf204b2d5d6c368c2d727515a8838ae3ed4fb407d8a87d92ef6208fa48915aea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1e06" + } } } - ], - "Homestead" : [ - { - "hash" : "0x78d9ec15bf63501294f6754e1c9165bf7c2dcad9415b23d74d1d2900f3cdedf7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcf204b2d5d6c368c2d727515a8838ae3ed4fb407d8a87d92ef6208fa48915aea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbd13070b0612e42bd01a5e31294f621ab8658413d58dba4e5bed87b40b2aa179", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : [ + 1 + ] }, - { - "hash" : "0x1b9fd1a49cdf2ee3e9f27bf2c112ec869734f94f216bc0cb2088fb9ed693de73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d03da" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060003473100000000000000000000000000000000000000162055730f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620493e0fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000036203d090fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -147,15 +97,15 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGE.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGE.json index f89039d24..a58121b3c 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGE.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGE.json @@ -2,149 +2,77 @@ "static_callcodecallcall_100_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb3dab5bdbf866f226d9af71b1d937c9935df118637701183c5621ac66889444c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb3dab5bdbf866f226d9af71b1d937c9935df118637701183c5621ac66889444c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb3dab5bdbf866f226d9af71b1d937c9935df118637701183c5621ac66889444c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb3dab5bdbf866f226d9af71b1d937c9935df118637701183c5621ac66889444c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb3dab5bdbf866f226d9af71b1d937c9935df118637701183c5621ac66889444c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb3dab5bdbf866f226d9af71b1d937c9935df118637701183c5621ac66889444c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb3dab5bdbf866f226d9af71b1d937c9935df118637701183c5621ac66889444c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb3dab5bdbf866f226d9af71b1d937c9935df118637701183c5621ac66889444c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x715ef654deaac774408495d6645be7258c20881c38e2d35b8d3c4b240d05395d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x715ef654deaac774408495d6645be7258c20881c38e2d35b8d3c4b240d05395d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01a7d2" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6000356020526040600060406000731000000000000000000000000000000000000002620186a0fa506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 32 (CALLDATALOAD 0)) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000602035614e34fa506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 (CALLDATALOAD 32) 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +83,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000003" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGE2.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGE2.json index a15c36cbd..b06a69c35 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGE2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGE2.json @@ -2,149 +2,77 @@ "static_callcodecallcall_100_OOGE2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGE2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x433effffa866f63e0e2d70539bffa3db837d99206170c69be3adaaf1c6be9c54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x433effffa866f63e0e2d70539bffa3db837d99206170c69be3adaaf1c6be9c54", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x433effffa866f63e0e2d70539bffa3db837d99206170c69be3adaaf1c6be9c54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x433effffa866f63e0e2d70539bffa3db837d99206170c69be3adaaf1c6be9c54", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x433effffa866f63e0e2d70539bffa3db837d99206170c69be3adaaf1c6be9c54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x433effffa866f63e0e2d70539bffa3db837d99206170c69be3adaaf1c6be9c54", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x433effffa866f63e0e2d70539bffa3db837d99206170c69be3adaaf1c6be9c54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x433effffa866f63e0e2d70539bffa3db837d99206170c69be3adaaf1c6be9c54", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe99222321b714f8aebe46a42a115aa0eddc49470280f3ab69083192d8672faf8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xe99222321b714f8aebe46a42a115aa0eddc49470280f3ab69083192d8672faf8", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01a7e6" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600035600052604060006040600034731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000002620186a0fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000600035614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +83,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000003" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter.json index 144ac42b7..ff1aa5d5b 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter.json @@ -2,102 +2,70 @@ "static_callcodecallcall_100_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7ed6fb7fbf8ba61fbf761ec28fc435b190d602acb59c1f43043df1d345558d4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014c81" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7ed6fb7fbf8ba61fbf761ec28fc435b190d602acb59c1f43043df1d345558d4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x630945025221b7f2924f3e7ab5dc5d929c1dd0e6d6f153ae126b0cf50a91ea1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2f1d473019a782dcf23e816269991191f90e96bd302ae4952965fa86b216cd3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7ed6fb7fbf8ba61fbf761ec28fc435b190d602acb59c1f43043df1d345558d4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002619c90fa505b61c3506080511015603f576001608051016080526027565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter2.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter2.json index ec901f053..09346fe23 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter2.json @@ -2,142 +2,92 @@ "static_callcodecallcall_100_OOGMAfter2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x361bc34a5d6c0b721abe43a859dc2993ee14ff7c8768845d2286a2949962f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbd9b3a8fb7bf910f918fa5ee72b73e54f1e0a38f7e07910d57cf8e29c7bd7002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x361bc34a5d6c0b721abe43a859dc2993ee14ff7c8768845d2286a2949962f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbd9b3a8fb7bf910f918fa5ee72b73e54f1e0a38f7e07910d57cf8e29c7bd7002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xecd4b2775f4a1a42e5d93a13cd13090d3473fb795b072ecc92bbfb3cc69a279c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : [ + 0 + ] }, - { - "hash" : "0x0de76bcd2f4505d9e8d256178cfbd8240f855fac9536ef612a64f4ac93b5c7ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014b7c" + } } } - ], - "Homestead" : [ - { - "hash" : "0xecd4b2775f4a1a42e5d93a13cd13090d3473fb795b072ecc92bbfb3cc69a279c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0de76bcd2f4505d9e8d256178cfbd8240f855fac9536ef612a64f4ac93b5c7ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x361bc34a5d6c0b721abe43a859dc2993ee14ff7c8768845d2286a2949962f489", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : [ + 1 + ] }, - { - "hash" : "0xbd9b3a8fb7bf910f918fa5ee72b73e54f1e0a38f7e07910d57cf8e29c7bd7002", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x012854" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060003460003561eaf6f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 (CALLDATALOAD 0) (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90fa505b61c3506080511015603a576001608051016080526022565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -147,15 +97,15 @@ "0x0000000000000000000000001000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter_2.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter_2.json index 26fedbed9..8e2980f5d 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter_2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter_2.json @@ -2,102 +2,70 @@ "static_callcodecallcall_100_OOGMAfter_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x91932b8773a7a1b19b0a3dbd48bd59fb81903e403659f143776042ed44e1b8ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014c81" + } } } - ], - "EIP158" : [ - { - "hash" : "0x91932b8773a7a1b19b0a3dbd48bd59fb81903e403659f143776042ed44e1b8ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa9f68926d2ac9312b29fb8cc877b30030a903fbb5b0529c6280d5b0e7e0c73df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb7f9c6b66d22428eae876dacfd2801a5d9f35059d4e8c3fa28497d5f72b6bf21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x91932b8773a7a1b19b0a3dbd48bd59fb81903e403659f143776042ed44e1b8ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002619c90fa505b61c3506080511015603f576001608051016080526027565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34fa506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter_3.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter_3.json index 7cd7bb031..ff0988181 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter_3.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMAfter_3.json @@ -2,142 +2,92 @@ "static_callcodecallcall_100_OOGMAfter_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMAfter_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5c64d4cbc7a50462807c8179150c79764c9754f5f43ea435c5ccb6627682ad8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbb7e4d41448f83a20526be7fa5afb6e88543644bb4d9e4d1f0457028710f9f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5c64d4cbc7a50462807c8179150c79764c9754f5f43ea435c5ccb6627682ad8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbbb7e4d41448f83a20526be7fa5afb6e88543644bb4d9e4d1f0457028710f9f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2e6da8e4e77bb0814e1db36c518793bdab38ecead044f0f04bc82502b23238ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : [ + 0 + ] }, - { - "hash" : "0xd0af5616c05f500643f04841f4a29494885f0743ba37e4eaff752e8f31ab84b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014c7f" + } } } - ], - "Homestead" : [ - { - "hash" : "0x2e6da8e4e77bb0814e1db36c518793bdab38ecead044f0f04bc82502b23238ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd0af5616c05f500643f04841f4a29494885f0743ba37e4eaff752e8f31ab84b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5c64d4cbc7a50462807c8179150c79764c9754f5f43ea435c5ccb6627682ad8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : [ + 1 + ] }, - { - "hash" : "0xbbb7e4d41448f83a20526be7fa5afb6e88543644bb4d9e4d1f0457028710f9f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x012957" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060003473100000000000000000000000000000000000000161eaf6f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002619c90fa505b61c3506080511015603f576001608051016080526027565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -147,15 +97,15 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMBefore.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMBefore.json index 879140982..e0cf4f704 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMBefore.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMBefore.json @@ -2,149 +2,77 @@ "static_callcodecallcall_100_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4c5b595198073a5b8e5cbb82d5f28dc9055dd22f91de3d977cc3dd5d294dd7bd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4c5b595198073a5b8e5cbb82d5f28dc9055dd22f91de3d977cc3dd5d294dd7bd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4c5b595198073a5b8e5cbb82d5f28dc9055dd22f91de3d977cc3dd5d294dd7bd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4c5b595198073a5b8e5cbb82d5f28dc9055dd22f91de3d977cc3dd5d294dd7bd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4c5b595198073a5b8e5cbb82d5f28dc9055dd22f91de3d977cc3dd5d294dd7bd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4c5b595198073a5b8e5cbb82d5f28dc9055dd22f91de3d977cc3dd5d294dd7bd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4c5b595198073a5b8e5cbb82d5f28dc9055dd22f91de3d977cc3dd5d294dd7bd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4c5b595198073a5b8e5cbb82d5f28dc9055dd22f91de3d977cc3dd5d294dd7bd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfbf86edcc876a51f3dd424eeac7749736ca4c8d23762881f623479686b98003b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xfbf86edcc876a51f3dd424eeac7749736ca4c8d23762881f623479686b98003b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c61" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000600035619c90fa506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003556040600060406000731000000000000000000000000000000000000003614e34fa506001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +83,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMBefore2.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMBefore2.json index e14381470..7cb58d273 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMBefore2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_OOGMBefore2.json @@ -2,229 +2,95 @@ "static_callcodecallcall_100_OOGMBefore2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_OOGMBefore2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x85fdb3c4a8e99e4454d4eb74500cc97638129f9500349bd67db3ec220d8d5cc2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015c61" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x1f1621e269baeac7c15594563deae26289bb3b6d50cb41c75b746844e06bb99e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1662ed027e5f2f84723de20723a9f0c82c5863c771fcf56515e354d1253d7933", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x1f1621e269baeac7c15594563deae26289bb3b6d50cb41c75b746844e06bb99e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 1 }, - { - "hash" : "0x1662ed027e5f2f84723de20723a9f0c82c5863c771fcf56515e354d1253d7933", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x014235" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600035600052604060006040600034731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000600035619c90fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003556040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -235,15 +101,15 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideEnd.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideEnd.json index 6138f2c27..645392ddd 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideEnd.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideEnd.json @@ -2,102 +2,70 @@ "static_callcodecallcall_100_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x381a11d6a13b7c402d5d243385918f2ace199b526d2159e9983ec60c353911dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a37" + } } } - ], - "EIP158" : [ - { - "hash" : "0x381a11d6a13b7c402d5d243385918f2ace199b526d2159e9983ec60c353911dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x85521a09b79fc6e3760d4613985c647c76bfb39bc87c9268d88e8067ad030fa0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x463741f4265524b715ce6f7acb54b73695e53ea3e14e9f7ad20d2a482f1a83a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa96ac5df61af15013c4bb7b8e0e282665e3d9cad37e1d240e371cd40bc0e78de", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600352604060006040600073100000000000000000000000000000000000000361c350fa50731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideEnd2.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideEnd2.json index 6ea1196b1..1814f54dc 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideEnd2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideEnd2.json @@ -2,102 +2,70 @@ "static_callcodecallcall_100_SuicideEnd2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideEnd2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x471bc64538a4c74b21171995bf3703400b180c599c5945413528fd7777a306d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a34" + } } } - ], - "EIP158" : [ - { - "hash" : "0x471bc64538a4c74b21171995bf3703400b180c599c5945413528fd7777a306d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb093583b2aa91178b0c01c3680a0dd3d3293bf841f1114a1d2971e72a6a8a223", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb093583b2aa91178b0c01c3680a0dd3d3293bf841f1114a1d2971e72a6a8a223", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf385336e7b0b36c330b7408c759061fbb889e19331fbc5ab6dec499ed6ad1be2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6001600352604060006040600073100000000000000000000000000000000000000361c350fa50731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideMiddle.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideMiddle.json index 1a23a8335..f18d49569 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideMiddle.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideMiddle.json @@ -2,102 +2,70 @@ "static_callcodecallcall_100_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x40165974086de2646f2d11027dd5f3bbcb914f71af136316fc9a71611679a8b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a37" + } } } - ], - "EIP158" : [ - { - "hash" : "0x40165974086de2646f2d11027dd5f3bbcb914f71af136316fc9a71611679a8b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x927477316bf74d67e7ef3c7ec3052c4859b577244dc38fe99cbf806f7e6e4cb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe576612682d495ae873a36b85ead4b5f06a429b634444af1b62176d9c5064c70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x353b93f5c6b28c35a58a4eeb67bc8b070cabf3c6cfc975b298151f5c66968d69", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideMiddle2.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideMiddle2.json index ce5edf48f..db418f287 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideMiddle2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_100_SuicideMiddle2.json @@ -2,142 +2,70 @@ "static_callcodecallcall_100_SuicideMiddle2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_100_SuicideMiddle2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4e013f56210747102d856d53704231ab6912d2c7a5bd2f19fd3cdab34ee72432", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x92b8752204b66885c46b3d896ddc6585ab9e16b911028e8b6fb2e50792279a5b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x4e013f56210747102d856d53704231ab6912d2c7a5bd2f19fd3cdab34ee72432", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x92b8752204b66885c46b3d896ddc6585ab9e16b911028e8b6fb2e50792279a5b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6dc5c230add1362038a52ce7178a56c255dee37ee217ebdb1184d5fbb9894f47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2564491adae12e8989f2ce88e9a4bfcab47523cd4bb860738fcb168371370739", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6dc5c230add1362038a52ce7178a56c255dee37ee217ebdb1184d5fbb9894f47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2564491adae12e8989f2ce88e9a4bfcab47523cd4bb860738fcb168371370739", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x36e301fa26348213d8fa7f671f6dac92cebcf1ea069d26ca907ef9f127ddefe4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0x870ec88644936106ee61100bc2780a4496a5f7caab76d6846904fcf586781384", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a49" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600034731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -147,15 +75,15 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE.json index ac2b787b4..44944855b 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE.json @@ -2,95 +2,63 @@ "static_callcodecallcall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x36da9b0b5f7f1feb4192490cfff4d4c334931669611775218046032daa8460ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75d11" + } } } - ], - "EIP158" : [ - { - "hash" : "0x36da9b0b5f7f1feb4192490cfff4d4c334931669611775218046032daa8460ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7628f8b7e05eb3979ecc8cc9f3701aeedc280fbea14ed67f26a288f01a32c327", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x99da5ab6960b519b76a046d5190940d58cf386021b88f604d2b2e9c0acb01554", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3145fce9c07fa9dbfd6d4a45ecb9d1f48797a8658e30f51c38d2f8796d407805", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +68,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2.json b/GeneralStateTests/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2.json index 8099665f0..e0199216c 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2.json @@ -2,135 +2,81 @@ "static_callcodecallcall_ABCB_RECURSIVE2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcall_ABCB_RECURSIVE2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdaec2429abc968a1a0a02b6de21a2e280a98fef33079e4ca66f3fea06451edd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x555dce538c2924e38b5d3f36ae9097918d30e263b00220ae2dee9bc86bab8d99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0xdaec2429abc968a1a0a02b6de21a2e280a98fef33079e4ca66f3fea06451edd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x555dce538c2924e38b5d3f36ae9097918d30e263b00220ae2dee9bc86bab8d99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9a39915490356f421a4939f8eaa62d87e9ce7aff77693daa5fc13bb7bd154e3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0x1d8a35f73e0f289797967898a662f6c2567c12f30818fbcebeae4cd212bc9bce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75d0f" + } } } - ], - "Homestead" : [ - { - "hash" : "0x9a39915490356f421a4939f8eaa62d87e9ce7aff77693daa5fc13bb7bd154e3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1d8a35f73e0f289797967898a662f6c2567c12f30818fbcebeae4cd212bc9bce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x39328772b3aad90d51ddde3bf1d5875ed2f7c9be9f617bfc4fd057e138d2da0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 1 }, - { - "hash" : "0x9849178ca639e5dba82b6277068bb65704153ccd4fb2b4746873549cec2a66ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c742e3" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060003473100000000000000000000000000000000000000163017d7840f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -140,15 +86,15 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101.json index 4446b8795..d3c81827b 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101.json @@ -2,102 +2,70 @@ "static_callcodecallcallcode_101" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4fe036b2ec739a881dbe797c3e93226050a9633f40c591c7ca2172db0aebfcfd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1de0" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4fe036b2ec739a881dbe797c3e93226050a9633f40c591c7ca2172db0aebfcfd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xeed9ad27700e54426a22b3bd8f5c619bc65970ee20bc9a818601961af8d76933", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5d073e2221bc2918bff24f8557dd5c40a20b6e0b587699d1717eefe312211d41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4228a616fcacea1f3a8729197fdbcb94835446fb0ef48d2c8b82d1abb87ca0b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016001526040600060406000731000000000000000000000000000000000000002620493e0fa506001601f52", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 31 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160015260406000604060007310000000000000000000000000000000000000036203d090f4506001601f52", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (DELEGATECALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 31 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_2.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_2.json index aa029cfa0..57578ba2c 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_2.json @@ -2,149 +2,95 @@ "static_callcodecallcallcode_101_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb89fd15286651c620aa01984637e9f605a459703e04fd0c7383f32755b47d7c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb89fd15286651c620aa01984637e9f605a459703e04fd0c7383f32755b47d7c6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb89fd15286651c620aa01984637e9f605a459703e04fd0c7383f32755b47d7c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb89fd15286651c620aa01984637e9f605a459703e04fd0c7383f32755b47d7c6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xccadb2929842f0f5f70d5469f94b0b540f68be9bab6a0b708b88d33c1d5965bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xccadb2929842f0f5f70d5469f94b0b540f68be9bab6a0b708b88d33c1d5965bb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1cf4" + } } } - ], - "Homestead" : [ - { - "hash" : "0xccadb2929842f0f5f70d5469f94b0b540f68be9bab6a0b708b88d33c1d5965bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xccadb2929842f0f5f70d5469f94b0b540f68be9bab6a0b708b88d33c1d5965bb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x963fd9ac89d3ecf5896ef7b3d37b66f8c0b9a50ef3ca58df694ca3254ba42afa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xc1d625b450e52fa94fcc028c427eb8fbcb715034ce0e28d152f4e79332bbcc24", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d02c8" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60003560005260406000604060003473100000000000000000000000000000000000000162055730f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600035620493e0fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 300000 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060007310000000000000000000000000000000000000036203d090f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 250000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060017310000000000000000000000000000000000000036203d090f2", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 250000 0x1000000000000000000000000000000000000003 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -155,14 +101,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGE.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGE.json index d70841853..27369ac26 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGE.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGE.json @@ -2,102 +2,70 @@ "static_callcodecallcallcode_101_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x212a9dd305411a02287873d41c49633d733df355c93c0e2ec8e991c74618dddf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01a903" + } } } - ], - "EIP158" : [ - { - "hash" : "0x212a9dd305411a02287873d41c49633d733df355c93c0e2ec8e991c74618dddf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x212a9dd305411a02287873d41c49633d733df355c93c0e2ec8e991c74618dddf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x212a9dd305411a02287873d41c49633d733df355c93c0e2ec8e991c74618dddf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x13a7983bd5d7a459b5c1796b1d8768ba174b99ebfdaa4a68aa04c0a568acac2d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGE_2.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGE_2.json index 4816fd5eb..044f0bb35 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGE_2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGE_2.json @@ -2,102 +2,70 @@ "static_callcodecallcallcode_101_OOGE_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGE_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc8a50e0d4fd6627da1b11b03bbc148881e71e31f7c1ffadcf35f828014295503", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01a8fd" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc8a50e0d4fd6627da1b11b03bbc148881e71e31f7c1ffadcf35f828014295503", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc8a50e0d4fd6627da1b11b03bbc148881e71e31f7c1ffadcf35f828014295503", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc8a50e0d4fd6627da1b11b03bbc148881e71e31f7c1ffadcf35f828014295503", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x63f7feb7c4151032a348fe5d91e5a69a03329526e527328b596ade4cd8551f13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter.json index bf1b2d6a0..7c513e2a2 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter.json @@ -2,102 +2,70 @@ "static_callcodecallcallcode_101_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa5c69798df4021336e48ef840dc463de8938476a97ba097add384d889bcdb467", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014c81" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa5c69798df4021336e48ef840dc463de8938476a97ba097add384d889bcdb467", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9d39b7a4eedf674f1ec536720219a0e5b81813a4e8b478b18162f9bc688801ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9faa51ed49fd07f2bcd6e2a0fb71ff23aa6e3f65d9ce115a8f09ca0d9958812d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa5c69798df4021336e48ef840dc463de8938476a97ba097add384d889bcdb467", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002619c90fa505b61c3506080511015603f576001608051016080526027565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000003614e34f4506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2.json index 2b43e3c45..ab6c65a73 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2.json @@ -2,142 +2,70 @@ "static_callcodecallcallcode_101_OOGMAfter2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x675efbcbe539dc59e7614a0dc4b71190760508501fbfeed34f8d34a5b74ec4b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xeea01e9e3d0f52f07c4c25587b35a44e3aa6ed33ab4be67adab1ba0f7095b0b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x675efbcbe539dc59e7614a0dc4b71190760508501fbfeed34f8d34a5b74ec4b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xeea01e9e3d0f52f07c4c25587b35a44e3aa6ed33ab4be67adab1ba0f7095b0b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x89f3250aa1e2cdfb5c3ca650f299bfab9087b5ce0ce4d3ef7c45c2fa929380df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfd6c8f5a8449ba1f797193c2e58476f8092366956808f8528be449e390a2d558", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0x89f3250aa1e2cdfb5c3ca650f299bfab9087b5ce0ce4d3ef7c45c2fa929380df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfd6c8f5a8449ba1f797193c2e58476f8092366956808f8528be449e390a2d558", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x675efbcbe539dc59e7614a0dc4b71190760508501fbfeed34f8d34a5b74ec4b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0xeea01e9e3d0f52f07c4c25587b35a44e3aa6ed33ab4be67adab1ba0f7095b0b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014c7f" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060003473100000000000000000000000000000000000000161eaf6f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002619c90fa505b61c3506080511015603f576001608051016080526027565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x600160035260406000604060006000731000000000000000000000000000000000000003614e34f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -147,15 +75,15 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1.json index 6386ae77f..3d1a46c0c 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1.json @@ -2,177 +2,123 @@ "static_callcodecallcallcode_101_OOGMAfter_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x77804caf96f8f25a8790a3d5b4d84fffb6640fd3404355049842709fc07169e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x77804caf96f8f25a8790a3d5b4d84fffb6640fd3404355049842709fc07169e9", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x77804caf96f8f25a8790a3d5b4d84fffb6640fd3404355049842709fc07169e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x77804caf96f8f25a8790a3d5b4d84fffb6640fd3404355049842709fc07169e9", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x068eaa534d454e864eaac3367b7f65d6159de21ca9a3ef636b017af014c6f832", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x068eaa534d454e864eaac3367b7f65d6159de21ca9a3ef636b017af014c6f832", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x010e48" + } } } - ], - "Homestead" : [ - { - "hash" : "0x068eaa534d454e864eaac3367b7f65d6159de21ca9a3ef636b017af014c6f832", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x068eaa534d454e864eaac3367b7f65d6159de21ca9a3ef636b017af014c6f832", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x77804caf96f8f25a8790a3d5b4d84fffb6640fd3404355049842709fc07169e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa9658b697f24344632b4352c9ad6476d582d53d5242fe7e1225da9f14474c14f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01a549" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000161eaf6f2506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 60150 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90fa505b61c3506080511015603a576001608051016080526022565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000731000000000000000000000000000000000000003614e34f2506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000600073200000000000000000000000000000000000000161eaf6f2506001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 60150 0x2000000000000000000000000000000000000001 0 0 64 0 64 ) (MSTORE 3 1)}", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000732000000000000000000000000000000000000002619c90fa506001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x2000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60406000604060006000732000000000000000000000000000000000000003614e34f2506001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (CALLCODE 20020 0x2000000000000000000000000000000000000003 0 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600060006000355af26000555a600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -183,14 +129,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3.json index cca00bc8e..4677d137f 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3.json @@ -2,177 +2,123 @@ "static_callcodecallcallcode_101_OOGMAfter_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMAfter_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x261eeca84466f4c560675a7a2c0eb311ff09056a691ba4608cb922195b8f014e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x261eeca84466f4c560675a7a2c0eb311ff09056a691ba4608cb922195b8f014e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x261eeca84466f4c560675a7a2c0eb311ff09056a691ba4608cb922195b8f014e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x261eeca84466f4c560675a7a2c0eb311ff09056a691ba4608cb922195b8f014e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1b603397fb9f7428bfda3a155a6653c974a1e96a66b5e2fbbb179c1e87297ad7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x1b603397fb9f7428bfda3a155a6653c974a1e96a66b5e2fbbb179c1e87297ad7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xaca6" + } } } - ], - "Homestead" : [ - { - "hash" : "0x1b603397fb9f7428bfda3a155a6653c974a1e96a66b5e2fbbb179c1e87297ad7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1b603397fb9f7428bfda3a155a6653c974a1e96a66b5e2fbbb179c1e87297ad7", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x261eeca84466f4c560675a7a2c0eb311ff09056a691ba4608cb922195b8f014e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x06482e19c72ad90aa4b3c4728610308a1aa638bbba44b9ccbe2827c172a2d587", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0143b5" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90fa505b61c3506080511015603a576001608051016080526022565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34f4506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073200000000000000000000000000000000000000161eaf6f46000555a600155", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x2000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000732000000000000000000000000000000000000002619c90fa", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (STATICCALL 40080 0x2000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000732000000000000000000000000000000000000003614e34f4506001600352", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 20020 0x2000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600355", - "nonce" : "0x00", + "2000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (SSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600060006000355af26000555a600155", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE (GAS) (CALLDATALOAD 0) 0 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -183,14 +129,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMBefore.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMBefore.json index 7eb14d00b..2c9008b79 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMBefore.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMBefore.json @@ -2,102 +2,70 @@ "static_callcodecallcallcode_101_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x95042ead2bb4807c26938c07b66bf80895ea394363ed384695c5d00996f887d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015d67" + } } } - ], - "EIP158" : [ - { - "hash" : "0x95042ead2bb4807c26938c07b66bf80895ea394363ed384695c5d00996f887d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x95042ead2bb4807c26938c07b66bf80895ea394363ed384695c5d00996f887d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x95042ead2bb4807c26938c07b66bf80895ea394363ed384695c5d00996f887d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x48416aa45b428931da1d538ac1e47a0560413c632ba68d6d249a9291e27967a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002619c90fa506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b6040600060406000731000000000000000000000000000000000000003614e34f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (DELEGATECALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2.json index 0d8520bea..1a6463efe 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2.json @@ -2,142 +2,70 @@ "static_callcodecallcallcode_101_OOGMBefore2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_OOGMBefore2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8c9985682350161981e444821666c854a924858f38e62878ad64e0a00efa2290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c9985682350161981e444821666c854a924858f38e62878ad64e0a00efa2290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8c9985682350161981e444821666c854a924858f38e62878ad64e0a00efa2290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c9985682350161981e444821666c854a924858f38e62878ad64e0a00efa2290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8c9985682350161981e444821666c854a924858f38e62878ad64e0a00efa2290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c9985682350161981e444821666c854a924858f38e62878ad64e0a00efa2290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8c9985682350161981e444821666c854a924858f38e62878ad64e0a00efa2290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8c9985682350161981e444821666c854a924858f38e62878ad64e0a00efa2290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6d50f16107b07efde4cc7da66add1168736be103bab5d91d22ab7fbbc8a23646", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0x4f55dca016059f6cb98bfb8f68bc1c43aec19f266725a809c5dbda3a24ee0949", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015d65" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600034731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002619c90fa506001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) (STATICCALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b60406000604060006000731000000000000000000000000000000000000003614e34f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (CALLCODE 20020 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -147,15 +75,15 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideEnd.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideEnd.json index b24721191..bec1cc60a 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideEnd.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideEnd.json @@ -2,102 +2,70 @@ "static_callcodecallcallcode_101_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1f3e41433c93878e16396aed9bf49706ecd2517de0a4650fd5811bd323b21861", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a37" + } } } - ], - "EIP158" : [ - { - "hash" : "0x1f3e41433c93878e16396aed9bf49706ecd2517de0a4650fd5811bd323b21861", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x24f4499f3c132840de3796088b172d40b1ff6fd5d76a2e2d06af52e18132766e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3ea409895f85c5a40dc1a48c700882be1b521e6d11a6e6638f8e37b573bbb1a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x96b7eafd6e23d0438dc7dce93fe01fc368afc3d503fce3b7a8b9b806578b75a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350f450731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2.json index cb77e1c03..5a304e176 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2.json @@ -2,142 +2,70 @@ "static_callcodecallcallcode_101_SuicideEnd2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideEnd2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd8da48810faa7e7d578b700ee43419edaf2f54e10dde4fb39151da88d9b66890", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe89d6b1f2a3a5293b098abbd4b7a9ab3f0b8f78d7c53765c3c99389480b20383", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd8da48810faa7e7d578b700ee43419edaf2f54e10dde4fb39151da88d9b66890", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe89d6b1f2a3a5293b098abbd4b7a9ab3f0b8f78d7c53765c3c99389480b20383", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb0b3302aa34901ebfc88b87b5ded70d577f2f73d00056b02a3bfd1066766d219", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x020cc9001c5f925cae84ebf8b307680cc8bf329be17ee0689c8ad0a0d07905e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb0b3302aa34901ebfc88b87b5ded70d577f2f73d00056b02a3bfd1066766d219", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x020cc9001c5f925cae84ebf8b307680cc8bf329be17ee0689c8ad0a0d07905e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x56dd84c7fe252b3b8787b9a3650ad49120a57b3bea5b269b6139882b838524ce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0x1598afc5253209f51e9f003b9b74ed56536c3370bf5ab01755fa952058cb6151", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a35" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600034731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f250731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -147,15 +75,15 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle.json index 141900b3d..36ee28059 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle.json @@ -2,102 +2,70 @@ "static_callcodecallcallcode_101_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x40165974086de2646f2d11027dd5f3bbcb914f71af136316fc9a71611679a8b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a37" + } } } - ], - "EIP158" : [ - { - "hash" : "0x40165974086de2646f2d11027dd5f3bbcb914f71af136316fc9a71611679a8b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x927477316bf74d67e7ef3c7ec3052c4859b577244dc38fe99cbf806f7e6e4cb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe576612682d495ae873a36b85ead4b5f06a429b634444af1b62176d9c5064c70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x353b93f5c6b28c35a58a4eeb67bc8b070cabf3c6cfc975b298151f5c66968d69", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (DELEGATECALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2.json index 2f92a3fc5..6fe1fcd0b 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2.json @@ -2,142 +2,70 @@ "static_callcodecallcallcode_101_SuicideMiddle2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_101_SuicideMiddle2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x791de48cd2ec0c9703c05817eb2ed1d8f9d7de135062f7bd3ded6e9e904cd86c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x52b20597eea82f8043337db4a0bda10dd4e0ef0a684d2298c945e1c0b531dd58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x791de48cd2ec0c9703c05817eb2ed1d8f9d7de135062f7bd3ded6e9e904cd86c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x52b20597eea82f8043337db4a0bda10dd4e0ef0a684d2298c945e1c0b531dd58", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2dfb011f92244dcf8d5485848017db96b9ad4eb27cc894bf5651f0e9a5febaed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x746a90839c5cfeb7d514cbf0cd94bd8251519879371fc54e43c7fd9bdb8133dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2dfb011f92244dcf8d5485848017db96b9ad4eb27cc894bf5651f0e9a5febaed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x746a90839c5cfeb7d514cbf0cd94bd8251519879371fc54e43c7fd9bdb8133dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x058af314a5cbd9729cb9e359d041140e5555209031d1b5315a0f225f513fc304", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0xf28c68e490548f346fbf5d83d7aa5643fdea3f93735a4cbb879253bb7667c0b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a35" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600034731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60016003526040600060406000731000000000000000000000000000000000000002620186a0fa506001602052", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 32 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -147,15 +75,15 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE.json index 7e5672f53..e6d6c03bd 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE.json @@ -2,95 +2,63 @@ "static_callcodecallcallcode_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2f82a1984d76b3650e5432e6ec29336da1aa99cb24add11da410a7ec02f2686c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75d11" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2f82a1984d76b3650e5432e6ec29336da1aa99cb24add11da410a7ec02f2686c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x66cdd0513e16a6a8f85fba06e9e08a1858057bc30a110d01543241d76d4bc926", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x377f9e9f46fd2bbefb66d74eec6e7fc6404a4a8c0cf225db021d792a0a90fdc4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8d1d06ff3be327386643583d001fcd59d28d565a23fa5af188c12811c860c3a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +68,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2.json b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2.json index 3aaf5c40f..c58cfdfe9 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2.json @@ -2,229 +2,95 @@ "static_callcodecallcallcode_ABCB_RECURSIVE2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcallcode_ABCB_RECURSIVE2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x91122178083d2d74f21f5afe97027a9c7b9b0f47502c6dff880fea64e0b6b404", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcc438424f1f3d4ae7bee4bd07c6323337e166b56362185be054c3886c388e212", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x91122178083d2d74f21f5afe97027a9c7b9b0f47502c6dff880fea64e0b6b404", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcc438424f1f3d4ae7bee4bd07c6323337e166b56362185be054c3886c388e212", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x91122178083d2d74f21f5afe97027a9c7b9b0f47502c6dff880fea64e0b6b404", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcc438424f1f3d4ae7bee4bd07c6323337e166b56362185be054c3886c388e212", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x91122178083d2d74f21f5afe97027a9c7b9b0f47502c6dff880fea64e0b6b404", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcc438424f1f3d4ae7bee4bd07c6323337e166b56362185be054c3886c388e212", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfe5b3e9c38034a4af6c171b5706ec085a7bb2180525c7df7dd0f81de1cea8dac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x04066f0116348d5efec1692daa1a62da33c7cd99ad1e50b6bcdb1c371f3ada6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0xfe5b3e9c38034a4af6c171b5706ec085a7bb2180525c7df7dd0f81de1cea8dac", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x04066f0116348d5efec1692daa1a62da33c7cd99ad1e50b6bcdb1c371f3ada6d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfe5b3e9c38034a4af6c171b5706ec085a7bb2180525c7df7dd0f81de1cea8dac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x04066f0116348d5efec1692daa1a62da33c7cd99ad1e50b6bcdb1c371f3ada6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xfe5b3e9c38034a4af6c171b5706ec085a7bb2180525c7df7dd0f81de1cea8dac", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x04066f0116348d5efec1692daa1a62da33c7cd99ad1e50b6bcdb1c371f3ada6d", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75b73" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x97c32532084faae6bb76c15f0bef40a5427af42cd4dcf041335697bc99fd3162", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe29c0ded5a4f56f300fe8ac556dcf48f3080c1cb6002a2d616837d0c953087e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xeb2b2adf68aa9db10cf73597f8690ee420d6bb8516ad4ba2281008ea42ca81c4", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0x7bd9f9b8d5b66f4c1deccb61c5e090624c5627c08066c8df7caaf99d20df0bd4", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c4b93f" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060003460003563017d7840f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 (CALLDATALOAD 0) (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 500000 0x1000000000000000000000000000000000000001 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000732000000000000000000000000000000000000002620f4240fa", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 1000000 0x2000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600060017320000000000000000000000000000000000000016207a120f2", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 500000 0x2000000000000000000000000000000000000001 1 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -235,15 +101,15 @@ "0x0000000000000000000000002000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110.json index 08f0ac16e..6ab70f56d 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110.json @@ -2,102 +2,70 @@ "static_callcodecallcodecall_110" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbe9827be92006c9abefd9aeb4945c56798be47969dcac10df6a881b4ff22f485", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d1de0" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbe9827be92006c9abefd9aeb4945c56798be47969dcac10df6a881b4ff22f485", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0fff5fd8d1e1efc51e4c524c79334e61c5d692b0dacb94eb75c2e0723efb1863", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf3559fc5e140ee630b883db45ed11550c7eaee49f4bcabd842e54c1be7bb0c65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe24f6ebcdc5d1fe4a712163d38df6fdb61289c3ca1dbb3522fb405e5f1ae2f2f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60016001526040600060406000731000000000000000000000000000000000000002620493e0f4506001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (DELEGATECALL 300000 0x1000000000000000000000000000000000000002 0 64 0 64 ) (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160015260406000604060007310000000000000000000000000000000000000036203d090fa506001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 1 1)}", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_1102.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_1102.json index d56420dbe..79c06352b 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_1102.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_1102.json @@ -2,182 +2,70 @@ "static_callcodecallcodecall_1102" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_1102Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1142886feff0a10bbf20a1a0e75440aa81b556c33c90b6a945f9f5de54a8745f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4a192a81ce68ab3d019acc917ee6b0f220e9f77b641ec4e735d005af8ab2a508", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xdfc2816ab964229c0194cf8f87d9acdf4893a936193ac29ede1bd3ce6860d048", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1142886feff0a10bbf20a1a0e75440aa81b556c33c90b6a945f9f5de54a8745f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4a192a81ce68ab3d019acc917ee6b0f220e9f77b641ec4e735d005af8ab2a508", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xdfc2816ab964229c0194cf8f87d9acdf4893a936193ac29ede1bd3ce6860d048", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3764ca53935fa38ab699289d72cd07e3f10406d7730fb3bc84ee59c15b914008", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8a2169207191f6f72252ccdd3aba931972dcc7540cb40a934d5ff1a56f522735", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0x3ecfc2d68ba05e861733c2faf0641c71cb96919bbf276d63b6eb795b343b2ec8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d06b5" + } } } - ], - "Homestead" : [ - { - "hash" : "0x3764ca53935fa38ab699289d72cd07e3f10406d7730fb3bc84ee59c15b914008", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8a2169207191f6f72252ccdd3aba931972dcc7540cb40a934d5ff1a56f522735", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x3ecfc2d68ba05e861733c2faf0641c71cb96919bbf276d63b6eb795b343b2ec8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1142886feff0a10bbf20a1a0e75440aa81b556c33c90b6a945f9f5de54a8745f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x35918d46d5e94fb0a0c62354b52b3a1b2857f1521379e536af21a26bcdfa85b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x2339b7f274e79860b605d7f26675b85e8ed75f94d3d4d46a898e8677683aed0d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060003473100000000000000000000000000000000000000162055730f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600060013403731000000000000000000000000000000000000002620493e0f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (CALLCODE 300000 0x1000000000000000000000000000000000000002 (- (CALLVALUE) 1) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060007310000000000000000000000000000000000000036203d090fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -187,16 +75,16 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01", - "0x02" + "0", + "1", + "2" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_2.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_2.json index 322ce9b7a..639391a3f 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_2.json @@ -2,182 +2,106 @@ "static_callcodecallcodecall_110_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5326815cdcdef4b1abdd14c29d16ae4aeeec663d59887c801d5b4fa36bcf3675", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfb0b902ebb76fa391208632f43303d92ca5188c75085e02fa84b0d0518eb2e9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x909ff59a3fd650f3926cfba8fefc52ac1b5983dcc1436df30b3c1827e34de6d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5326815cdcdef4b1abdd14c29d16ae4aeeec663d59887c801d5b4fa36bcf3675", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfb0b902ebb76fa391208632f43303d92ca5188c75085e02fa84b0d0518eb2e9a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x909ff59a3fd650f3926cfba8fefc52ac1b5983dcc1436df30b3c1827e34de6d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5403204b06ff0eca5ccf43d109b61df4939c0593521b3352d76b30b77c0b174f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0x7fb514979212ee78728186db19e54a0f369282d3d4e93ab33e2e9c548e2976c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x4bc9fd46a70450fb1ecd0fe518a3cd7489f2ebdcd9f29501502f4fee9c133a76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d06a1" + } } } - ], - "Homestead" : [ - { - "hash" : "0x5403204b06ff0eca5ccf43d109b61df4939c0593521b3352d76b30b77c0b174f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7fb514979212ee78728186db19e54a0f369282d3d4e93ab33e2e9c548e2976c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 1 }, - { - "hash" : "0x4bc9fd46a70450fb1ecd0fe518a3cd7489f2ebdcd9f29501502f4fee9c133a76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d03aa" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x5326815cdcdef4b1abdd14c29d16ae4aeeec663d59887c801d5b4fa36bcf3675", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5dddfe506c6816272c589f08222ece4bfe063c3a04d87cfdda828423387f726b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 2 }, - { - "hash" : "0xa89a6d73a704a70aaa7d761ad976c768ce25243be0d4f5285d02585e55d49f09", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2ce97e" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060003473100000000000000000000000000000000000000162055730f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 350000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001600152604060006040600060013403731000000000000000000000000000000000000002620493e0f2506001601f52", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (CALLCODE 300000 0x1000000000000000000000000000000000000002 ( - (CALLVALUE) 1) 0 64 0 64 ) (MSTORE 31 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600160015260406000604060007310000000000000000000000000000000000000036203d090fa506001601f52", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 1 1) (STATICCALL 250000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (MSTORE 31 1) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -187,16 +111,16 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01", - "0x02" + "0", + "1", + "2" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGE.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGE.json index 56f85f206..f8413ff74 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGE.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGE.json @@ -2,102 +2,70 @@ "static_callcodecallcodecall_110_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe9545deb7f1262086d64fd26d11db31cece5836773a41b9944f2a981dc41c11e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01a903" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe9545deb7f1262086d64fd26d11db31cece5836773a41b9944f2a981dc41c11e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7ed82c0b75dd683568af708a34f5c9b5faf0f7da38054c664274d0ee148f6834", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbf7671c9d56403dafeb06c0c9c55776aa15886c70651507de178bb129cc6dfca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x83aac1b7e18289e3edac8c1129b7b6bff819c9c63ce719065234cc9fab3266af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGE2.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGE2.json index ba328de26..f329eca67 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGE2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGE2.json @@ -2,182 +2,70 @@ "static_callcodecallcodecall_110_OOGE2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGE2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x129fcac62a3a14da788cc95bd6b31881b7c007f1f3359fe74d3375f0264f972c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc8d05b7ec4093023acd5f9e41463ac7b209920771f7f1c7b2e769d724a8fd3e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xad3d81a2af7b438496a8c3e4190785d87d4706dd924b4327b8c705a5b85da0c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "EIP158" : [ - { - "hash" : "0x129fcac62a3a14da788cc95bd6b31881b7c007f1f3359fe74d3375f0264f972c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc8d05b7ec4093023acd5f9e41463ac7b209920771f7f1c7b2e769d724a8fd3e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xad3d81a2af7b438496a8c3e4190785d87d4706dd924b4327b8c705a5b85da0c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "Frontier" : [ - { - "hash" : "0x01461c4f7c2f4a874d84b115d3aafd2a1384658669d0fee67e5dc7b316bdd265", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xad3d81a2af7b438496a8c3e4190785d87d4706dd924b4327b8c705a5b85da0c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0xad3d81a2af7b438496a8c3e4190785d87d4706dd924b4327b8c705a5b85da0c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01dfd5" + } } } - ], - "Homestead" : [ - { - "hash" : "0x01461c4f7c2f4a874d84b115d3aafd2a1384658669d0fee67e5dc7b316bdd265", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xad3d81a2af7b438496a8c3e4190785d87d4706dd924b4327b8c705a5b85da0c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xad3d81a2af7b438496a8c3e4190785d87d4706dd924b4327b8c705a5b85da0c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x129fcac62a3a14da788cc95bd6b31881b7c007f1f3359fe74d3375f0264f972c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x82c953ddb30c1f2509e95e09c9d36ef9dbf8e51cdf4184ce57a8e3b33420c256", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x827351548d0f6b0fb079968c256a7f02dd6bd10a29f89f6a3834dcddcb968cbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600034731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x604060006040600060013403731000000000000000000000000000000000000002620186a0f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 100000 0x1000000000000000000000000000000000000002 (- (CALLVALUE) 1) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -187,16 +75,16 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01", - "0x02" + "0", + "1", + "2" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter.json index f194404d7..846dae20e 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter.json @@ -2,102 +2,70 @@ "static_callcodecallcodecall_110_OOGMAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7fabecc5d5316e1cf649ff86c051855a1ad1912cf86eaa69d63df1eb286fd05e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014c81" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7fabecc5d5316e1cf649ff86c051855a1ad1912cf86eaa69d63df1eb286fd05e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfc0d01a29029ad68f6fd82940192224a99824507ec7015a316c793631088e315", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x50969bc8949f698299526bb1063fa10d84c4d70bddeff39c9641ec0c441c8c39", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7fabecc5d5316e1cf649ff86c051855a1ad1912cf86eaa69d63df1eb286fd05e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4505b61c3506080511015603a576001608051016080526022565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2.json index 52fbf8e60..29dc288e5 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2.json @@ -2,182 +2,91 @@ "static_callcodecallcodecall_110_OOGMAfter2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb148e0cdaa90341f1cbaf0a2459b7c28ae65349a5ad46369317a2a2c45b5ca6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbd561c70c58b9ad7c537e35048d55b5929024a177a9c394ccd0a1202d615d0f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x428b51700c05d01812a0b0b49d002ca402fd3c5eceef51e65f24c06a27f69ebc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "EIP158" : [ - { - "hash" : "0xb148e0cdaa90341f1cbaf0a2459b7c28ae65349a5ad46369317a2a2c45b5ca6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbd561c70c58b9ad7c537e35048d55b5929024a177a9c394ccd0a1202d615d0f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x428b51700c05d01812a0b0b49d002ca402fd3c5eceef51e65f24c06a27f69ebc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8704738bfa5277536fef6409a73fe329ff03a9150ce6f51257b936c8f677ce64", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc97bc6e6f008d7c922338d28cc68b75ed0ec3528d5c7892750d22c469b4447ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x390487b8e191b002bd0077018dad6ef7c0dd8db478f1f8481880094385b7aa77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8704738bfa5277536fef6409a73fe329ff03a9150ce6f51257b936c8f677ce64", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc97bc6e6f008d7c922338d28cc68b75ed0ec3528d5c7892750d22c469b4447ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0x390487b8e191b002bd0077018dad6ef7c0dd8db478f1f8481880094385b7aa77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014c7f" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xb148e0cdaa90341f1cbaf0a2459b7c28ae65349a5ad46369317a2a2c45b5ca6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbd561c70c58b9ad7c537e35048d55b5929024a177a9c394ccd0a1202d615d0f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : [ + 1, + 2 + ] }, - { - "hash" : "0x428b51700c05d01812a0b0b49d002ca402fd3c5eceef51e65f24c06a27f69ebc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x012957" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060003473100000000000000000000000000000000000000161eaf6f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x604060006040600060013403731000000000000000000000000000000000000002619c90f2505b61c3506080511015603e576001608051016080526026565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 ( - (CALLVALUE) 1) 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -187,16 +96,16 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01", - "0x02" + "0", + "1", + "2" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2.json index ca92e6460..c4d7f988f 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2.json @@ -2,102 +2,70 @@ "static_callcodecallcodecall_110_OOGMAfter_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7fabecc5d5316e1cf649ff86c051855a1ad1912cf86eaa69d63df1eb286fd05e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014c81" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7fabecc5d5316e1cf649ff86c051855a1ad1912cf86eaa69d63df1eb286fd05e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfc0d01a29029ad68f6fd82940192224a99824507ec7015a316c793631088e315", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x50969bc8949f698299526bb1063fa10d84c4d70bddeff39c9641ec0c441c8c39", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7fabecc5d5316e1cf649ff86c051855a1ad1912cf86eaa69d63df1eb286fd05e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000161eaf6f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 60150 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4505b61c3506080511015603a576001608051016080526022565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3.json index 3c0b1fa47..24b877b00 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3.json @@ -2,102 +2,70 @@ "static_callcodecallcodecall_110_OOGMAfter_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMAfter_3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb148e0cdaa90341f1cbaf0a2459b7c28ae65349a5ad46369317a2a2c45b5ca6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x014c7f" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb148e0cdaa90341f1cbaf0a2459b7c28ae65349a5ad46369317a2a2c45b5ca6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8704738bfa5277536fef6409a73fe329ff03a9150ce6f51257b936c8f677ce64", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8704738bfa5277536fef6409a73fe329ff03a9150ce6f51257b936c8f677ce64", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb148e0cdaa90341f1cbaf0a2459b7c28ae65349a5ad46369317a2a2c45b5ca6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060003473100000000000000000000000000000000000000161eaf6f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 60150 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x604060006040600060013403731000000000000000000000000000000000000002619c90f2505b61c3506080511015603e576001608051016080526026565b", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 (- (CALLVALUE) 1) 0 64 0 64 ) (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMBefore.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMBefore.json index 58c85068e..398473b68 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMBefore.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMBefore.json @@ -2,102 +2,70 @@ "static_callcodecallcodecall_110_OOGMBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x236cb2785fc1e2ca2ac212e6639d01dc88f0e04621ab7e0c55144cf262a9020a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x015d7b" + } } } - ], - "EIP158" : [ - { - "hash" : "0x236cb2785fc1e2ca2ac212e6639d01dc88f0e04621ab7e0c55144cf262a9020a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x165ebc9c4f104ef9db18f746c919f08e20b66437ad2a04049f40604682f7d6e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfa8ff8ac6b336b6c490fcbddde611fbd498a1f72c83b722466cd0dbb95be22ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x236cb2785fc1e2ca2ac212e6639d01dc88f0e04621ab7e0c55144cf262a9020a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000731000000000000000000000000000000000000002619c90f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 40080 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2.json index f04723872..47820fe3c 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2.json @@ -2,182 +2,70 @@ "static_callcodecallcodecall_110_OOGMBefore2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_OOGMBefore2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf096c437267232e4430179bd6c642b5bfdefb7d2312c8e65b268fd979d9dda8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x54f54369e90569e42728a290261a0eec630a37f30482abc67c2bc917421370a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xec2bf3574f78ae9aaa87138de1515405be6516594104a7963b658feb67c21829", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "EIP158" : [ - { - "hash" : "0xf096c437267232e4430179bd6c642b5bfdefb7d2312c8e65b268fd979d9dda8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x54f54369e90569e42728a290261a0eec630a37f30482abc67c2bc917421370a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xec2bf3574f78ae9aaa87138de1515405be6516594104a7963b658feb67c21829", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfad1a7cdf23050c48fe11a2df98bb355f7f8b320e2b3a60e5ede1fe22f8c8f35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0d930889a5fd0bafd5f22d1b956bc78c5704f28efd4d2d24202ceb3bb7f1767c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0x0d930889a5fd0bafd5f22d1b956bc78c5704f28efd4d2d24202ceb3bb7f1767c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01dfd5" + } } } - ], - "Homestead" : [ - { - "hash" : "0xfad1a7cdf23050c48fe11a2df98bb355f7f8b320e2b3a60e5ede1fe22f8c8f35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0d930889a5fd0bafd5f22d1b956bc78c5704f28efd4d2d24202ceb3bb7f1767c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0d930889a5fd0bafd5f22d1b956bc78c5704f28efd4d2d24202ceb3bb7f1767c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf096c437267232e4430179bd6c642b5bfdefb7d2312c8e65b268fd979d9dda8f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x54f54369e90569e42728a290261a0eec630a37f30482abc67c2bc917421370a6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xec2bf3574f78ae9aaa87138de1515405be6516594104a7963b658feb67c21829", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600034731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x604060006040600060013403731000000000000000000000000000000000000002619c90f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (CALLCODE 40080 0x1000000000000000000000000000000000000002 (- (CALLVALUE) 1) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b6040600060406000731000000000000000000000000000000000000003614e34fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) (STATICCALL 20020 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x00", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "0", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -187,16 +75,16 @@ "" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01", - "0x02" + "0", + "1", + "2" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideEnd.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideEnd.json index 91cedf8c7..d0956c726 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideEnd.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideEnd.json @@ -2,142 +2,67 @@ "static_callcodecallcodecall_110_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8753ab1ba6682457423f097f6a06d57e6b656cff7fa2fd707f1d2f7ddb16a6ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0b8702a3626c65ab31cda7293ca9586eda81e19bf57b60728db4cbd2229f5039", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x8753ab1ba6682457423f097f6a06d57e6b656cff7fa2fd707f1d2f7ddb16a6ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0b8702a3626c65ab31cda7293ca9586eda81e19bf57b60728db4cbd2229f5039", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa6b1577620599d4c3ffe56b00a67d202eed6efad96e1107911bdc4fbb1cd0cad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa6b1577620599d4c3ffe56b00a67d202eed6efad96e1107911bdc4fbb1cd0cad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0x98d510c1603535d98072449aa12d5f17a3c8d5ef4fbb873ba710d45e109a3cec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4ca16674f4ef77fb5d830f10c048b87acfc71e54e47725415fb26a0389b207ce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x92fb71043d9b7b509bf1bdcebdde3dca273c85b054a6d7f5a402ab7adaa1673b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x2f26ffcc4fec7b849abad3ece36535ae6519073bd3a3d1b4b5447d85ef62117c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350fa50731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -147,15 +72,15 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2.json index 7df092f58..58ba34346 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2.json @@ -2,142 +2,67 @@ "static_callcodecallcodecall_110_SuicideEnd2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideEnd2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3c05529efb0bdb7c995e3fb99f04cbb3f5a7a87de69d4c1e00ebb8785f34f86d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa6c22628095e9e013c2b4290692b6550674e0704cdb4174e817e4e775f224c36", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3c05529efb0bdb7c995e3fb99f04cbb3f5a7a87de69d4c1e00ebb8785f34f86d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa6c22628095e9e013c2b4290692b6550674e0704cdb4174e817e4e775f224c36", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa8f74c69852c591d7560057871ad5ed4c73cbadf6ffd2c1885ea63332587b5c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x420987557b85268adb954329fc72ea11ad6333f5418959b6c5e953fa7c0fa44c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa8f74c69852c591d7560057871ad5ed4c73cbadf6ffd2c1885ea63332587b5c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x420987557b85268adb954329fc72ea11ad6333f5418959b6c5e953fa7c0fa44c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x53650fed8f432df6260dcdc9e3ee394639b376047a2a2384600b39672ef7dd7c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xe21aaa19eea67e15d57f23f013f8c35592fd0d91d3ce32a4566fdeb78702e417", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600034731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600034731000000000000000000000000000000000000002620186a0f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 100000 0x1000000000000000000000000000000000000002 (CALLVALUE) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600073100000000000000000000000000000000000000361c350fa50731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -147,15 +72,15 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle.json index 8ec8ca20a..aa57b1568 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle.json @@ -2,102 +2,67 @@ "static_callcodecallcodecall_110_SuicideMiddle" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddleFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5f11626bd64771397f4a4ff295eef648b1f16791dd7e0ced9bc03ddd54b923bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x5f11626bd64771397f4a4ff295eef648b1f16791dd7e0ced9bc03ddd54b923bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd595ff43858d7d6188fd2c3045ed77aac935b1e51b6f0af8f82bb8fa3c241302", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x29bdca429b1f5189fb25aa3ce06f4b03739e7b75f0f28e11fb47a4efc11344ff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5f11626bd64771397f4a4ff295eef648b1f16791dd7e0ced9bc03ddd54b923bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f4600055", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +72,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2.json index f6bbd048e..a5a5d2f28 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2.json @@ -2,102 +2,67 @@ "static_callcodecallcodecall_110_SuicideMiddle2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_110_SuicideMiddle2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3b024973af9cf79994e68278f22020737c765df2b82c82a17607351a8d8eda84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x3b024973af9cf79994e68278f22020737c765df2b82c82a17607351a8d8eda84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5a8f9b6bd95bad8bce0095201e86ddb7b8378aa01c2f3cd44b7a55bdfe49fb77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5a8f9b6bd95bad8bce0095201e86ddb7b8378aa01c2f3cd44b7a55bdfe49fb77", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3b024973af9cf79994e68278f22020737c765df2b82c82a17607351a8d8eda84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600034731000000000000000000000000000000000000001620249f0f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 150000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x604060006040600034731000000000000000000000000000000000000002620186a0f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 100000 0x1000000000000000000000000000000000000002 (CALLVALUE) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x731000000000000000000000000000000000000000ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (SELFDESTRUCT 0x1000000000000000000000000000000000000000) (STATICCALL 50000 0x1000000000000000000000000000000000000003 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +72,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE.json index b74493ecc..e7cf64885 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE.json @@ -2,95 +2,63 @@ "static_callcodecallcodecall_ABCB_RECURSIVE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe39a02833743de8be0d57a58dee6c1ba154a5320b28f2107b04781320f009ccf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75d11" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe39a02833743de8be0d57a58dee6c1ba154a5320b28f2107b04781320f009ccf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x79f08808882d39dfe8447328aa841fed1aed440c1bdb51a7178c057b2f225f47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xffce4590bbfee1c8c9ee5bc6e17109274b43b97f4db3827fed17fb9afeb274ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xff72c585ba2e5e701e521476e3000ee6a9f2ddd9487de82e1f85690678aeb0f6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000163017d7840f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 25000000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620f4240f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (DELEGATECALL 1000000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +68,14 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2.json index e6a8eb814..36b3dfbb0 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2.json @@ -2,135 +2,63 @@ "static_callcodecallcodecall_ABCB_RECURSIVE2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecall_ABCB_RECURSIVE2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0xb2d05e00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "3000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcfee1a78aa9820d58f756be4320c90462b7bfca2606e65748dd88080c4148c53", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe96fec0d281152a5c729b002bd56bdbe239c17494d6f439503383f183456a34e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0xcfee1a78aa9820d58f756be4320c90462b7bfca2606e65748dd88080c4148c53", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe96fec0d281152a5c729b002bd56bdbe239c17494d6f439503383f183456a34e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0f04fac16895ff7d0aba69bc49106636873bad1039a890561021b1118020ea35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6a076e401e517a060eea5b60cc39a8f9eb4ea662e1364097724ab94a87ef773b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0f04fac16895ff7d0aba69bc49106636873bad1039a890561021b1118020ea35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6a076e401e517a060eea5b60cc39a8f9eb4ea662e1364097724ab94a87ef773b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xed7893e4ecad7da987fbd3cafbe1ff441061ca6d0f10222d0a11e0b4633e3c4f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 0 }, - { - "hash" : "0x04e4ed946e642ab0b121ac824016aba6e5f8ce8d0191c2501603d9ffd67d91e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01c75c76" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60406000604060003473100000000000000000000000000000000000000163017d7840f26000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 25000000 0x1000000000000000000000000000000000000001 (CALLVALUE) 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 1000000 0x1000000000000000000000000000000000000002 0 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x60406000604060007310000000000000000000000000000000000000016207a120fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 500000 0x1000000000000000000000000000000000000001 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -140,15 +68,15 @@ "" ], "gasLimit" : [ - "0x01c9c380" + "30000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stStaticCall/static_callcodecallcodecallcode_111_SuicideEnd.json b/GeneralStateTests/stStaticCall/static_callcodecallcodecallcode_111_SuicideEnd.json index 69ad485df..4e079b430 100644 --- a/GeneralStateTests/stStaticCall/static_callcodecallcodecallcode_111_SuicideEnd.json +++ b/GeneralStateTests/stStaticCall/static_callcodecallcodecallcode_111_SuicideEnd.json @@ -2,102 +2,70 @@ "static_callcodecallcodecallcode_111_SuicideEnd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_callcodecallcodecallcode_111_SuicideEndFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa1d32570da5c5427018ec60f665452d210d09691905e90f304df3e8cc91ab933", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2b9a4b" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa1d32570da5c5427018ec60f665452d210d09691905e90f304df3e8cc91ab933", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf4c111d7ac862af978bc1d0201dff333e523a15b6bbe4b32bf106949eb3c6fbc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x220381636f7a5aa929bfba5a7c191a36cacafd2847fe90f77ec87f5dcabb4f76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7ae8909ec9755868dcb9e0faf1650668d5feb8ebc71c173f438c99e9d1fb1b1c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6040600060406000731000000000000000000000000000000000000001620249f0f46000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000731000000000000000000000000000000000000002620186a0fa", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "10000000000", + "code" : "{ (STATICCALL 100000 0x1000000000000000000000000000000000000002 0 64 0 64) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x02540be400", - "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f250731000000000000000000000000000000000000001ff", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "10000000000", + "code" : "{ (CALLCODE 50000 0x1000000000000000000000000000000000000003 0 0 64 0 64 ) (SELFDESTRUCT 0x1000000000000000000000000000000000000001) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000003" : { - "balance" : "0x02540be400", - "code" : "0x6001600352", - "nonce" : "0x00", + "1000000000000000000000000000000000000003" : { + "balance" : "10000000000", + "code" : "{ (MSTORE 3 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -107,14 +75,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_calldelcode_01.json b/GeneralStateTests/stStaticCall/static_calldelcode_01.json index 411b9288a..1663e181d 100644 --- a/GeneralStateTests/stStaticCall/static_calldelcode_01.json +++ b/GeneralStateTests/stStaticCall/static_calldelcode_01.json @@ -2,95 +2,63 @@ "static_calldelcode_01" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_calldelcode_01Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2dee2de86fb5e304e4b70a7805b3b411cbf28b98223b1085e42caba70731c1bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x2d20dc" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2dee2de86fb5e304e4b70a7805b3b411cbf28b98223b1085e42caba70731c1bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2dee2de86fb5e304e4b70a7805b3b411cbf28b98223b1085e42caba70731c1bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2dee2de86fb5e304e4b70a7805b3b411cbf28b98223b1085e42caba70731c1bf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8b446ca3e923e1d0c7c388feb2697a12fc9c2cb3e8c3aafb93e6ad516b488243", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x604060006040600073100000000000000000000000000000000000000162055730fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 350000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x60406000604060007310000000000000000000000000000000000000026203d090f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 250000 0x1000000000000000000000000000000000000002 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x6311223344600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (MSTORE 1 0x11223344) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -100,14 +68,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_calldelcode_01_OOGE.json b/GeneralStateTests/stStaticCall/static_calldelcode_01_OOGE.json index 642008dbf..e1df09f72 100644 --- a/GeneralStateTests/stStaticCall/static_calldelcode_01_OOGE.json +++ b/GeneralStateTests/stStaticCall/static_calldelcode_01_OOGE.json @@ -2,142 +2,70 @@ "static_calldelcode_01_OOGE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_calldelcode_01_OOGEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd454969b336633f19e5df4375a25f66fb1239b2fceacb246eaa29e42cf8b9a05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd454969b336633f19e5df4375a25f66fb1239b2fceacb246eaa29e42cf8b9a05", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd454969b336633f19e5df4375a25f66fb1239b2fceacb246eaa29e42cf8b9a05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd454969b336633f19e5df4375a25f66fb1239b2fceacb246eaa29e42cf8b9a05", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd454969b336633f19e5df4375a25f66fb1239b2fceacb246eaa29e42cf8b9a05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd454969b336633f19e5df4375a25f66fb1239b2fceacb246eaa29e42cf8b9a05", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd454969b336633f19e5df4375a25f66fb1239b2fceacb246eaa29e42cf8b9a05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd454969b336633f19e5df4375a25f66fb1239b2fceacb246eaa29e42cf8b9a05", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x174aa6e932e58328efdac867f6371693251d5999bf3463471dcd11ea9df92add", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x174aa6e932e58328efdac867f6371693251d5999bf3463471dcd11ea9df92add", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01aac8" + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526040600060406000731000000000000000000000000000000000000001620249f0fa6000555a600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ 0 ]] (STATICCALL 150000 0x1000000000000000000000000000000000000001 0 64 0 64 ) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6040600060406000600035614e34f4", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (DELEGATECALL 20020 (CALLDATALOAD 0) 0 64 0 64 ) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x60016002556001600252", - "nonce" : "0x00", + "1000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (SSTORE 2 1) (MSTORE 2 1)}", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000002" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000002" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -148,14 +76,14 @@ "0x0000000000000000000000002000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x029fe0" + "172000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x1000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvided.json b/GeneralStateTests/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvided.json index c9409faf1..ed740d5f7 100644 --- a/GeneralStateTests/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvided.json +++ b/GeneralStateTests/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvided.json @@ -2,243 +2,133 @@ "static_contractCreationMakeCallThatAskMoreGasThenTransactionProvided" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationMakeCallThatAskMoreGasThenTransactionProvidedFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 2, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x233c1da90828a53adde2c86d53859e611abfc3d7807828f528a42ecc849fdef6", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x510b6a93c8820120b2a8e8bdf3ae473c41900cf4f722e6f6125d1c6674cd4413", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdf8d9c168f81a12818f05f337061ae5b03a17c996d3b6b251f118c7cb8e18d3f", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x510b6a93c8820120b2a8e8bdf3ae473c41900cf4f722e6f6125d1c6674cd4413", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 3, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xaa09c6f8acf05b087bf49197368fb2edd90377dc93b608bfde9f4407bca116d4", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x0186a0", - "code" : "0x6001600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{(SSTORE 1 1)}", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x0186a0", - "code" : "0x6001600152", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{(MSTORE 1 1)}", + "nonce" : "0", "storage" : { } }, - "0x3000000000000000000000000000000000000001" : { - "balance" : "0x0186a0", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "3000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0x4000000000000000000000000000000000000001" : { - "balance" : "0x0186a0", - "code" : "0x600060006000600060007340000000000000000000000000000000000000046103e8f2", - "nonce" : "0x00", + "4000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{ (CALLCODE 1000 0x4000000000000000000000000000000000000004 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x4000000000000000000000000000000000000004" : { - "balance" : "0x0186a0", - "code" : "0x6001600152", - "nonce" : "0x00", + "4000000000000000000000000000000000000004" : { + "balance" : "100000", + "code" : "{ (MSTORE 1 1) }", + "nonce" : "0", "storage" : { } }, - "0x5000000000000000000000000000000000000001" : { - "balance" : "0x0186a0", - "code" : "0x60006000600060006000734000000000000000000000000000000000000004620f4240f2", - "nonce" : "0x00", + "5000000000000000000000000000000000000001" : { + "balance" : "100000", + "code" : "{ (CALLCODE 1000000 0x4000000000000000000000000000000000000004 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x10c8e0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", - "code" : "0x604060006040600073100000000000000000000000000000000000000161c350fa", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(STATICCALL 50000 0x1000000000000000000000000000000000000001 0 64 0 64)}", + "nonce" : "0", "storage" : { } } @@ -251,14 +141,14 @@ "0x604060006040600073400000000000000000000000000000000000000161c350fa" ], "gasLimit" : [ - "0x017700" + "96000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransaction.json b/GeneralStateTests/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransaction.json index b900862aa..7316ac30a 100644 --- a/GeneralStateTests/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransaction.json +++ b/GeneralStateTests/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransaction.json @@ -2,95 +2,60 @@ "static_contractCreationOOGdontLeaveEmptyContractViaTransaction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_contractCreationOOGdontLeaveEmptyContractViaTransactionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7ff458b327f4b9dfa06ad60f4b0536abe049b3752ae9336e138c63853be7f0af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x7ff458b327f4b9dfa06ad60f4b0536abe049b3752ae9336e138c63853be7f0af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7ff458b327f4b9dfa06ad60f4b0536abe049b3752ae9336e138c63853be7f0af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7ff458b327f4b9dfa06ad60f4b0536abe049b3752ae9336e138c63853be7f0af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x540e7a4767620ecc87c8117b06a9a73584a643aa065df3ccf7838d579efe1028", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x6001600152", - "nonce" : "0x00", + "1000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{(MSTORE 1 1)}", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000001" : { - "balance" : "0x00", - "code" : "0x5b61c35060805110156018576001608051016080526000565b", - "nonce" : "0x00", + "2000000000000000000000000000000000000001" : { + "balance" : "0", + "code" : "{ (def 'i 0x80) (for {} (< @i 50000) [i](+ @i 1) (EXTCODESIZE 1)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x10c8e0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", - "code" : "0x604060006040600073100000000000000000000000000000000000000161c350fa", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "{(STATICCALL 50000 0x1000000000000000000000000000000000000001 0 64 0 64)}", + "nonce" : "0", "storage" : { } } @@ -100,14 +65,14 @@ "0x604060006040600073200000000000000000000000000000000000000161c350fa" ], "gasLimit" : [ - "0x017700" + "96000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log0_emptyMem.json b/GeneralStateTests/stStaticCall/static_log0_emptyMem.json index a4d97a360..dbb0324e4 100644 --- a/GeneralStateTests/stStaticCall/static_log0_emptyMem.json +++ b/GeneralStateTests/stStaticCall/static_log0_emptyMem.json @@ -2,88 +2,56 @@ "static_log0_emptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log0_emptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5d629228ea5b19550718a7bc4b882911d8c4363edc14767ca5b224ee7f5c0210", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x02c805" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5d629228ea5b19550718a7bc4b882911d8c4363edc14767ca5b224ee7f5c0210", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5d629228ea5b19550718a7bc4b882911d8c4363edc14767ca5b224ee7f5c0210", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5d629228ea5b19550718a7bc4b882911d8c4363edc14767ca5b224ee7f5c0210", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8282abb2c67086701b7d5ca88e7bd14a9cd65f7d45e3bf8ee24e4ce7d3799339", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8fa6000555a600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0) [[ 1 ]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000a0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log0_logMemStartTooHigh.json b/GeneralStateTests/stStaticCall/static_log0_logMemStartTooHigh.json index f32cff3bd..a6ebb16f8 100644 --- a/GeneralStateTests/stStaticCall/static_log0_logMemStartTooHigh.json +++ b/GeneralStateTests/stStaticCall/static_log0_logMemStartTooHigh.json @@ -2,88 +2,54 @@ "static_log0_logMemStartTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemStartTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7819f6c287abab73927203d6e8d84f632966842a6ca4ce74cd9d9bc9d351bc33", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7819f6c287abab73927203d6e8d84f632966842a6ca4ce74cd9d9bc9d351bc33", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7819f6c287abab73927203d6e8d84f632966842a6ca4ce74cd9d9bc9d351bc33", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7819f6c287abab73927203d6e8d84f632966842a6ca4ce74cd9d9bc9d351bc33", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9886e0a6a357203e9e51df1ae0d7cecea462370acd721e0edded3d90ee11f104", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +59,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log0_logMemsizeTooHigh.json b/GeneralStateTests/stStaticCall/static_log0_logMemsizeTooHigh.json index 771aa6cbe..26f4c3bc5 100644 --- a/GeneralStateTests/stStaticCall/static_log0_logMemsizeTooHigh.json +++ b/GeneralStateTests/stStaticCall/static_log0_logMemsizeTooHigh.json @@ -2,88 +2,54 @@ "static_log0_logMemsizeTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3f72c685696ae003f64cba694cdd8f62c1e99ebd6339932a5cf569bf075f8d17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x3f72c685696ae003f64cba694cdd8f62c1e99ebd6339932a5cf569bf075f8d17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3f72c685696ae003f64cba694cdd8f62c1e99ebd6339932a5cf569bf075f8d17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3f72c685696ae003f64cba694cdd8f62c1e99ebd6339932a5cf569bf075f8d17", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x76615dd94d7e2334c0445fd6d694282e05f577e280dc9edbae806b503636abbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +59,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log0_logMemsizeZero.json b/GeneralStateTests/stStaticCall/static_log0_logMemsizeZero.json index 2a996501e..6bb4dbf23 100644 --- a/GeneralStateTests/stStaticCall/static_log0_logMemsizeZero.json +++ b/GeneralStateTests/stStaticCall/static_log0_logMemsizeZero.json @@ -2,88 +2,55 @@ "static_log0_logMemsizeZero" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log0_logMemsizeZeroFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd208df8d66fc2311562c2736f1d4807e342037190c608a0c0b385d0efc6f0948", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd208df8d66fc2311562c2736f1d4807e342037190c608a0c0b385d0efc6f0948", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd208df8d66fc2311562c2736f1d4807e342037190c608a0c0b385d0efc6f0948", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd208df8d66fc2311562c2736f1d4807e342037190c608a0c0b385d0efc6f0948", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6fdb1b9ade5f511d240223d5d451d84a36e6413cb90d7c65e452446d5f967bd7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006001a0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log0_nonEmptyMem.json b/GeneralStateTests/stStaticCall/static_log0_nonEmptyMem.json index 2c7910c97..c848cc727 100644 --- a/GeneralStateTests/stStaticCall/static_log0_nonEmptyMem.json +++ b/GeneralStateTests/stStaticCall/static_log0_nonEmptyMem.json @@ -2,88 +2,55 @@ "static_log0_nonEmptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xda676d78fe5ec6b2b394d9b8ee35411fd84139a8e84f3f3f1daed064ecaeadd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xda676d78fe5ec6b2b394d9b8ee35411fd84139a8e84f3f3f1daed064ecaeadd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xda676d78fe5ec6b2b394d9b8ee35411fd84139a8e84f3f3f1daed064ecaeadd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xda676d78fe5ec6b2b394d9b8ee35411fd84139a8e84f3f3f1daed064ecaeadd5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x59be6ad9042c1537064e207cdbfcedea635b2814395c9450de1fe2fb1e184cb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000a0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log0_nonEmptyMem_logMemSize1.json b/GeneralStateTests/stStaticCall/static_log0_nonEmptyMem_logMemSize1.json index b31e940d5..ba87ba305 100644 --- a/GeneralStateTests/stStaticCall/static_log0_nonEmptyMem_logMemSize1.json +++ b/GeneralStateTests/stStaticCall/static_log0_nonEmptyMem_logMemSize1.json @@ -2,88 +2,55 @@ "static_log0_nonEmptyMem_logMemSize1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc883e3c934fe5b8389cd7a3ba3580cb0f17f752c16fcbe5395140c848e1624c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc883e3c934fe5b8389cd7a3ba3580cb0f17f752c16fcbe5395140c848e1624c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc883e3c934fe5b8389cd7a3ba3580cb0f17f752c16fcbe5395140c848e1624c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc883e3c934fe5b8389cd7a3ba3580cb0f17f752c16fcbe5395140c848e1624c6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x22d84ffe44d06344657153c606b1bd85b975f28e2c476d40684f8415cf88e173", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260016000a0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x200b20" + "2100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31.json b/GeneralStateTests/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31.json index 194bf7c3d..7d3458982 100644 --- a/GeneralStateTests/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31.json +++ b/GeneralStateTests/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31.json @@ -2,88 +2,55 @@ "static_log0_nonEmptyMem_logMemSize1_logMemStart31" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log0_nonEmptyMem_logMemSize1_logMemStart31Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x55fc3dce8bf8fa68a6b7a1db1c5891c486f28982a7b70717c1cccd1b6662d739", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x55fc3dce8bf8fa68a6b7a1db1c5891c486f28982a7b70717c1cccd1b6662d739", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x55fc3dce8bf8fa68a6b7a1db1c5891c486f28982a7b70717c1cccd1b6662d739", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x55fc3dce8bf8fa68a6b7a1db1c5891c486f28982a7b70717c1cccd1b6662d739", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x12c1fe9729f3788864b51b540d3d655ffecc7ea15e8bffcbf026cf74422d9ec5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526001601fa0", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 31 1) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log1_MaxTopic.json b/GeneralStateTests/stStaticCall/static_log1_MaxTopic.json index a66aa7cc5..aff82b973 100644 --- a/GeneralStateTests/stStaticCall/static_log1_MaxTopic.json +++ b/GeneralStateTests/stStaticCall/static_log1_MaxTopic.json @@ -2,88 +2,55 @@ "static_log1_MaxTopic" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log1_MaxTopicFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd23d458d565e00b952c7c42db8a3661f59822ccdc3d344045ab66b8827ca1320", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd23d458d565e00b952c7c42db8a3661f59822ccdc3d344045ab66b8827ca1320", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd23d458d565e00b952c7c42db8a3661f59822ccdc3d344045ab66b8827ca1320", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd23d458d565e00b952c7c42db8a3661f59822ccdc3d344045ab66b8827ca1320", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x50f35b5b17cb5578a7e5d9da53b312a1db3a91d1e4bec7a3213bbbe9ad7ba518", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log1_emptyMem.json b/GeneralStateTests/stStaticCall/static_log1_emptyMem.json index 1b4bbcad0..8e27192d2 100644 --- a/GeneralStateTests/stStaticCall/static_log1_emptyMem.json +++ b/GeneralStateTests/stStaticCall/static_log1_emptyMem.json @@ -2,88 +2,55 @@ "static_log1_emptyMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log1_emptyMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd34acaebeabc4312075ea0390d73bb03c22daaf9123c1d4c91a53572b6d10253", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd34acaebeabc4312075ea0390d73bb03c22daaf9123c1d4c91a53572b6d10253", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd34acaebeabc4312075ea0390d73bb03c22daaf9123c1d4c91a53572b6d10253", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd34acaebeabc4312075ea0390d73bb03c22daaf9123c1d4c91a53572b6d10253", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xef5f9c3620c5eab02f8c5ee6723b72c5340deeb08df0772488cfdd3eba0cb258", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000a1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (LOG1 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log1_logMemStartTooHigh.json b/GeneralStateTests/stStaticCall/static_log1_logMemStartTooHigh.json index 8c6b92ac1..0cc6d7d2c 100644 --- a/GeneralStateTests/stStaticCall/static_log1_logMemStartTooHigh.json +++ b/GeneralStateTests/stStaticCall/static_log1_logMemStartTooHigh.json @@ -2,88 +2,54 @@ "static_log1_logMemStartTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemStartTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe15eed8655a44b31d12dabab0b5c9bbfc8fe0a27a8581d218587a6847843c092", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe15eed8655a44b31d12dabab0b5c9bbfc8fe0a27a8581d218587a6847843c092", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe15eed8655a44b31d12dabab0b5c9bbfc8fe0a27a8581d218587a6847843c092", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe15eed8655a44b31d12dabab0b5c9bbfc8fe0a27a8581d218587a6847843c092", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfc709d8e1845b24a5f6e54a36bf6b879067f8954be5fa81b1abae3a57693225f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +59,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log1_logMemsizeTooHigh.json b/GeneralStateTests/stStaticCall/static_log1_logMemsizeTooHigh.json index 3549118b5..14c3e041d 100644 --- a/GeneralStateTests/stStaticCall/static_log1_logMemsizeTooHigh.json +++ b/GeneralStateTests/stStaticCall/static_log1_logMemsizeTooHigh.json @@ -2,88 +2,54 @@ "static_log1_logMemsizeTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x503d654b857fd9d12e73b5b0d13c1ea7c7137f4012bf05f88f966460c29d357b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x503d654b857fd9d12e73b5b0d13c1ea7c7137f4012bf05f88f966460c29d357b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x503d654b857fd9d12e73b5b0d13c1ea7c7137f4012bf05f88f966460c29d357b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x503d654b857fd9d12e73b5b0d13c1ea7c7137f4012bf05f88f966460c29d357b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8e75710025e2569afc56df11bf4439ee55fd2b36d0ca1f644fac701175080174", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +59,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log1_logMemsizeZero.json b/GeneralStateTests/stStaticCall/static_log1_logMemsizeZero.json index b267ece62..b08e69d01 100644 --- a/GeneralStateTests/stStaticCall/static_log1_logMemsizeZero.json +++ b/GeneralStateTests/stStaticCall/static_log1_logMemsizeZero.json @@ -2,88 +2,55 @@ "static_log1_logMemsizeZero" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log1_logMemsizeZeroFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdc49be1fb0e3e0ce44efa31b4889452694a4749e5d648937efb011ce527a7fec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdc49be1fb0e3e0ce44efa31b4889452694a4749e5d648937efb011ce527a7fec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc49be1fb0e3e0ce44efa31b4889452694a4749e5d648937efb011ce527a7fec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc49be1fb0e3e0ce44efa31b4889452694a4749e5d648937efb011ce527a7fec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc9e309927462af7fd3c992cfd63df799f75922c963480e8a1e5e9c4ee6ef937e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006001a1", - "nonce" : "0x00", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_log_Caller.json b/GeneralStateTests/stStaticCall/static_log_Caller.json index 155ca37f2..acc5247cc 100644 --- a/GeneralStateTests/stStaticCall/static_log_Caller.json +++ b/GeneralStateTests/stStaticCall/static_log_Caller.json @@ -2,276 +2,83 @@ "static_log_Caller" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_log_CallerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x00" + } } } - ], - "Frontier" : [ - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa1ab304e4b94ee2cc5fb911d9653f57142ecac55d0f776baf9eb92959d379290", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2e70e4e1469ab268f03415c6af5004435325052080a4084bbe5ebd8a3e353abf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2e70e4e1469ab268f03415c6af5004435325052080a4084bbe5ebd8a3e353abf", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2e70e4e1469ab268f03415c6af5004435325052080a4084bbe5ebd8a3e353abf", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2e70e4e1469ab268f03415c6af5004435325052080a4084bbe5ebd8a3e353abf", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2e70e4e1469ab268f03415c6af5004435325052080a4084bbe5ebd8a3e353abf", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600060003561c350fa600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 50000 (CALLDATALOAD 0) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff6000533360206000a1", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG1 0 32 (CALLER) ) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff60005333600060206000a2", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG2 0 32 0 (CALLER) ) }", + "nonce" : "0", "storage" : { } }, - "0x3000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff600053336000600060206000a3", - "nonce" : "0x00", + "3000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 0 0 (CALLER) ) }", + "nonce" : "0", "storage" : { } }, - "0x4000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff6000533360006000600060206000a4", - "nonce" : "0x00", + "4000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG4 0 32 0 0 0 (CALLER) )}", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60ff60005360206000a0", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE8 0 0xff) (LOG0 0 32 ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -285,14 +92,14 @@ "0x0000000000000000000000004000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x033450" + "210000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stStaticCall/static_makeMoney.json b/GeneralStateTests/stStaticCall/static_makeMoney.json index 2015db47b..86ccae6e7 100644 --- a/GeneralStateTests/stStaticCall/static_makeMoney.json +++ b/GeneralStateTests/stStaticCall/static_makeMoney.json @@ -2,88 +2,59 @@ "static_makeMoney" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_makeMoneyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2a5401ad5c844bf5c361add2693e2b721443b4124450fe1d23231fcf608337ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "774720" + }, + "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000" } } - ], - "EIP158" : [ - { - "hash" : "0x2a5401ad5c844bf5c361add2693e2b721443b4124450fe1d23231fcf608337ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2a5401ad5c844bf5c361add2693e2b721443b4124450fe1d23231fcf608337ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2a5401ad5c844bf5c361add2693e2b721443b4124450fe1d23231fcf608337ab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9c0b5611d03b78a355a16a6e5e654a2137f539fb7c666e0f16cc2ae9ddfcd56c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7b601080600c6000396000f20060003554156009570060203560003555600052600060006000600073aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecfa", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f20060003554156009570060203560003555) (STATICCALL 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec 0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "0x600160015532600255", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +64,14 @@ "" ], "gasLimit" : [ - "0x037c94" + "228500" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_refund_CallA.json b/GeneralStateTests/stStaticCall/static_refund_CallA.json index 39b5d9e8c..e5d8b17ff 100644 --- a/GeneralStateTests/stStaticCall/static_refund_CallA.json +++ b/GeneralStateTests/stStaticCall/static_refund_CallA.json @@ -2,89 +2,63 @@ "static_refund_CallA" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallAFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf7eb56ad5688c51787bc5992fc36692cbf593645252ca2d81d3bfdeafaeb6967", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x01" + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf7eb56ad5688c51787bc5992fc36692cbf593645252ca2d81d3bfdeafaeb6967", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf7eb56ad5688c51787bc5992fc36692cbf593645252ca2d81d3bfdeafaeb6967", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf7eb56ad5688c51787bc5992fc36692cbf593645252ca2d81d3bfdeafaeb6967", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb31b77cabaf08d083b906be61e95c9ca0d7dab5d08d705266a97cf509007699f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552aaa61157cfa6000556001600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL 5500 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 ) [[ 1 ]] 1}", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1e8480", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "2000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600155", - "nonce" : "0x00", + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 1 ]] 0 }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } @@ -95,14 +69,14 @@ "" ], "gasLimit" : [ - "0x030d40" + "200000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_refund_CallToSuicideNoStorage.json b/GeneralStateTests/stStaticCall/static_refund_CallToSuicideNoStorage.json index d5cda4e31..eb4650c0f 100644 --- a/GeneralStateTests/stStaticCall/static_refund_CallToSuicideNoStorage.json +++ b/GeneralStateTests/stStaticCall/static_refund_CallToSuicideNoStorage.json @@ -2,129 +2,59 @@ "static_refund_CallToSuicideNoStorage" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideNoStorageFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1e695b564ebba34885f0ca2f3de23ed71e601dfe0ed367eee6cea6e759493129", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e695b564ebba34885f0ca2f3de23ed71e601dfe0ed367eee6cea6e759493129", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x1e695b564ebba34885f0ca2f3de23ed71e601dfe0ed367eee6cea6e759493129", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e695b564ebba34885f0ca2f3de23ed71e601dfe0ed367eee6cea6e759493129", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1e695b564ebba34885f0ca2f3de23ed71e601dfe0ed367eee6cea6e759493129", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e695b564ebba34885f0ca2f3de23ed71e601dfe0ed367eee6cea6e759493129", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1e695b564ebba34885f0ca2f3de23ed71e601dfe0ed367eee6cea6e759493129", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1e695b564ebba34885f0ca2f3de23ed71e601dfe0ed367eee6cea6e759493129", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbc8e9ee6171837d726f2effd73c74f3dea5aec4f69b70f81f744bdc95c6aa065", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xf3b02d5bfb693f186dae77bb3a60d776df515ef588181bdbcd5c42a644869fdc", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000010", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x01", + "0x02" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552aaa600035fa6000556001600255", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 ) [[ 2 ]] 1 }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x73095e7baea6a6c7c4c2dfeb977efac326af552d87ff", - "nonce" : "0x00", + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", "storage" : { } } @@ -135,14 +65,14 @@ "0x0000000000000000000000000000000000000000000000000000000000010000" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stStaticCall/static_refund_CallToSuicideTwice.json b/GeneralStateTests/stStaticCall/static_refund_CallToSuicideTwice.json index 84e0d48bc..33aea6e7b 100644 --- a/GeneralStateTests/stStaticCall/static_refund_CallToSuicideTwice.json +++ b/GeneralStateTests/stStaticCall/static_refund_CallToSuicideTwice.json @@ -2,129 +2,61 @@ "static_refund_CallToSuicideTwice" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stStaticCall/static_refund_CallToSuicideTwiceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5df0db2096f81e196a33243c5b778766af2297237a886b1c00da84c1048a3d89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5df0db2096f81e196a33243c5b778766af2297237a886b1c00da84c1048a3d89", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5df0db2096f81e196a33243c5b778766af2297237a886b1c00da84c1048a3d89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5df0db2096f81e196a33243c5b778766af2297237a886b1c00da84c1048a3d89", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5df0db2096f81e196a33243c5b778766af2297237a886b1c00da84c1048a3d89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5df0db2096f81e196a33243c5b778766af2297237a886b1c00da84c1048a3d89", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5df0db2096f81e196a33243c5b778766af2297237a886b1c00da84c1048a3d89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5df0db2096f81e196a33243c5b778766af2297237a886b1c00da84c1048a3d89", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3d1cc001691484f74e26805d753c0df43a26558badf0ca23678fb28c7db79f02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x43cb99ef5e869a13879731ebb5d8a4a6bc16b1ce35ba2cb9712f155f1e813265", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000000000010", + "storage" : { + "0x00" : "0x00", + "0x01" : "0x01" + } + }, + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552aaa600035fa6000556000600060006000600073aaae7baea6a6c7c4c2dfeb977efac326af552aaa600035f1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (STATICCALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 ) (CALL (CALLDATALOAD 0) 0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa 0 0 0 0 0 )}", + "nonce" : "0", "storage" : { "0x01" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x05f5e100", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x73095e7baea6a6c7c4c2dfeb977efac326af552d87ff", - "nonce" : "0x00", + "aaae7baea6a6c7c4c2dfeb977efac326af552aaa" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0x095e7baea6a6c7c4c2dfeb977efac326af552d87) }", + "nonce" : "0", "storage" : { "0x01" : "0x01" } @@ -136,14 +68,14 @@ "0x0000000000000000000000000000000000000000000000000000000000010000" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/ABAcalls0.json b/GeneralStateTests/stSystemOperationsTest/ABAcalls0.json index a58b5295f..eca6057f9 100644 --- a/GeneralStateTests/stSystemOperationsTest/ABAcalls0.json +++ b/GeneralStateTests/stSystemOperationsTest/ABAcalls0.json @@ -2,88 +2,60 @@ "ABAcalls0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/ABAcalls0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5796cb04ad6f6035a06b2d18a0e8dc887d88ef5e789184520abfdd054699edd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x24" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5796cb04ad6f6035a06b2d18a0e8dc887d88ef5e789184520abfdd054699edd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x87367b5145ca4bda38bc61975ee9eade836743157861dcce20b65a73b4eecfb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x87367b5145ca4bda38bc61975ee9eade836743157861dcce20b65a73b4eecfb9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5796cb04ad6f6035a06b2d18a0e8dc887d88ef5e789184520abfdd054699edd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000601873945304eb96065b2a98b57a48a06ae28d285a71b5620186a0f15855", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ (PC) ]] (CALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x6000600060006000601773095e7baea6a6c7c4c2dfeb977efac326af552d8761c350f16001015855", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { [[ (PC) ]] (ADD 1 (CALL 50000 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 23 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +65,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/ABAcalls1.json b/GeneralStateTests/stSystemOperationsTest/ABAcalls1.json index ad73fed82..c3b4e6524 100644 --- a/GeneralStateTests/stSystemOperationsTest/ABAcalls1.json +++ b/GeneralStateTests/stSystemOperationsTest/ABAcalls1.json @@ -2,88 +2,60 @@ "ABAcalls1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/ABAcalls1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x3b9aca00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x51baf4bca305018889c0d025b7a4234a7cb8cd7735e9f08e218ef5fcc285b6e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x26" : "0x01" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x29" : "0x02" + } } } - ], - "EIP158" : [ - { - "hash" : "0x51baf4bca305018889c0d025b7a4234a7cb8cd7735e9f08e218ef5fcc285b6e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe8067df280ac7ed8735e56e774be8670df78ab00d2b8acba9c5dd6ae0d0dfe81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe8067df280ac7ed8735e56e774be8670df78ab00d2b8acba9c5dd6ae0d0dfe81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x51baf4bca305018889c0d025b7a4234a7cb8cd7735e9f08e218ef5fcc285b6e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000601873945304eb96065b2a98b57a48a06ae28d285a71b5620186a05a03f15855", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ (PC) ]] (CALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x6000600060006000601773095e7baea6a6c7c4c2dfeb977efac326af552d87620186a05a03f16001015855", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : " { [[ (PC) ]] (ADD 1 (CALL (- (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 23 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +65,14 @@ "" ], "gasLimit" : [ - "0x3b9aca00" + "1000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/ABAcalls2.json b/GeneralStateTests/stSystemOperationsTest/ABAcalls2.json index 4bf9e9c8e..a3db1578f 100644 --- a/GeneralStateTests/stSystemOperationsTest/ABAcalls2.json +++ b/GeneralStateTests/stSystemOperationsTest/ABAcalls2.json @@ -2,88 +2,84 @@ "ABAcalls2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/ABAcalls2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x3b9aca00", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa963ff4f5827ec055e38eef98962c7bad2360f6ffa3b3946e55ce73933774509", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x0201" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0x0200" + } } } - ], - "EIP158" : [ - { - "hash" : "0xa963ff4f5827ec055e38eef98962c7bad2360f6ffa3b3946e55ce73933774509", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x753cb4109def037eecfcb5c1812a6c92888f604e00f5bb117baee07633b958d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x753cb4109def037eecfcb5c1812a6c92888f604e00f5bb117baee07633b958d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa963ff4f5827ec055e38eef98962c7bad2360f6ffa3b3946e55ce73933774509", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xbf" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0xbf" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001600054016000556000600060006000600173945304eb96065b2a98b57a48a06ae28d285a71b5620186a05a03f1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (CALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x00", - "code" : "0x6001600054016000556000600060006000600073095e7baea6a6c7c4c2dfeb977efac326af552d87620186a05a03f1", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { [[ 0 ]] (ADD (SLOAD 0) 1) (CALL (- (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +89,14 @@ "" ], "gasLimit" : [ - "0x3b9aca00" + "1000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/ABAcalls3.json b/GeneralStateTests/stSystemOperationsTest/ABAcalls3.json index d0741dcc1..94ea30b1c 100644 --- a/GeneralStateTests/stSystemOperationsTest/ABAcalls3.json +++ b/GeneralStateTests/stSystemOperationsTest/ABAcalls3.json @@ -2,88 +2,84 @@ "ABAcalls3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/ABAcalls3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x09e82844213a8def06f6229a225e914aec1c92627fbe8fcad05e919f704ce9d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x30" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0x2f" + } } } - ], - "EIP158" : [ - { - "hash" : "0x09e82844213a8def06f6229a225e914aec1c92627fbe8fcad05e919f704ce9d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x540614948e21200990b88bb4f3ad01403719fb790977421ac846c6f8de8e53f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x540614948e21200990b88bb4f3ad01403719fb790977421ac846c6f8de8e53f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x09e82844213a8def06f6229a225e914aec1c92627fbe8fcad05e919f704ce9d6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x2e" + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x" : "0x2d" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0fa3e8", - "code" : "0x6001600054016000556000600060006000600173945304eb96065b2a98b57a48a06ae28d285a71b5620186a05a03f1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1025000", + "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (CALL (- (GAS) 100000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x00", - "code" : "0x6001600054016000556000600060006000600073095e7baea6a6c7c4c2dfeb977efac326af552d87620186a05a03f1", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "0", + "code" : " { [[ 0 ]] (ADD (SLOAD 0) 1) (CALL (- (GAS) 100000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 0 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +89,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/ABAcallsSuicide0.json b/GeneralStateTests/stSystemOperationsTest/ABAcallsSuicide0.json index c93a2abc8..0818d4e05 100644 --- a/GeneralStateTests/stSystemOperationsTest/ABAcallsSuicide0.json +++ b/GeneralStateTests/stSystemOperationsTest/ABAcallsSuicide0.json @@ -2,88 +2,55 @@ "ABAcallsSuicide0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/ABAcallsSuicide0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2e14eec7d1536948fe9178d51bd42473842e07642b282de14e84d8e557ec89a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x26" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2e14eec7d1536948fe9178d51bd42473842e07642b282de14e84d8e557ec89a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6b0588ab878e51a66fe7b82d84b908718863d566750ceeb33970c29ed40cacab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6b0588ab878e51a66fe7b82d84b908718863d566750ceeb33970c29ed40cacab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2e14eec7d1536948fe9178d51bd42473842e07642b282de14e84d8e557ec89a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000600060006000601873945304eb96065b2a98b57a48a06ae28d285a71b5620186a0f1585573945304eb96065b2a98b57a48a06ae28d285a71b5ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ (PC) ]] (CALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 0 0 0) (SELFDESTRUCT 0x945304eb96065b2a98b57a48a06ae28d285a71b5) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x6000600060006000601773095e7baea6a6c7c4c2dfeb977efac326af552d8761c350f16001015855", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{ [[ (PC) ]] (ADD 1 (CALL 50000 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 23 0 0 0 0)) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/ABAcallsSuicide1.json b/GeneralStateTests/stSystemOperationsTest/ABAcallsSuicide1.json index 4adbc8f6a..0ca371f09 100644 --- a/GeneralStateTests/stSystemOperationsTest/ABAcallsSuicide1.json +++ b/GeneralStateTests/stSystemOperationsTest/ABAcallsSuicide1.json @@ -2,128 +2,92 @@ "ABAcallsSuicide1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/ABAcallsSuicide1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbe50a6f4e845efa14809756058b00ed7b483958a0eb621b52a828d5076677d02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb28dd9adc2e2eca9b6f0d68bf2e50c0e06b58fbae1124fd98308a17c43b82481", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xbe50a6f4e845efa14809756058b00ed7b483958a0eb621b52a828d5076677d02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb28dd9adc2e2eca9b6f0d68bf2e50c0e06b58fbae1124fd98308a17c43b82481", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc6b0ac700c04e246da5a195f673a67d1a45e22559e7bba5f07e3cedf0aced222", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xf45819cae66ae9d55e4dec220d4e0a3bddf9205fbfe83026636f76b6f0ded04e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x29" : "0x01" + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "47", + "storage" : { + } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "shouldnotexist" : "1" } } - ], - "Homestead" : [ - { - "hash" : "0xc6b0ac700c04e246da5a195f673a67d1a45e22559e7bba5f07e3cedf0aced222", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf45819cae66ae9d55e4dec220d4e0a3bddf9205fbfe83026636f76b6f0ded04e", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbe50a6f4e845efa14809756058b00ed7b483958a0eb621b52a828d5076677d02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xb28dd9adc2e2eca9b6f0d68bf2e50c0e06b58fbae1124fd98308a17c43b82481", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } + }, + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "shouldnotexist" : "1" + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6000356000526000600060206000601873945304eb96065b2a98b57a48a06ae28d285a71b5600035f15855", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ (PC) ]] (CALL (CALLDATALOAD 0) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 32 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x6000356000526000600060206000601773095e7baea6a6c7c4c2dfeb977efac326af552d8761c35060003503f16001015855730f572e5295c57f15886f9b263e2f6d2d6c7b5ec6ff", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) [[ (PC) ]] (ADD 1 (CALL (SUB (CALLDATALOAD 0) 50000) 0x095e7baea6a6c7c4c2dfeb977efac326af552d87 23 0 32 0 0)) (SELFDESTRUCT 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -134,14 +98,14 @@ "0x00000000000000000000000000000000000000000000000000000000000486a0" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/Call10.json b/GeneralStateTests/stSystemOperationsTest/Call10.json index e696d03cf..82dbe2025 100644 --- a/GeneralStateTests/stSystemOperationsTest/Call10.json +++ b/GeneralStateTests/stSystemOperationsTest/Call10.json @@ -2,88 +2,56 @@ "Call10" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/Call10Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x026e5ea19dfeeff7685ce1be9a0cb9d7b5853e96dd7ea9b1d56f6ac4c627ae25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x" : "0x01", + "0x01" : "0x0a" + } } } - ], - "EIP158" : [ - { - "hash" : "0x026e5ea19dfeeff7685ce1be9a0cb9d7b5853e96dd7ea9b1d56f6ac4c627ae25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x19466b703b0b113fbbf2bb7a64bb86c8b79184d23c92030326c67b7c11cb14f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x19466b703b0b113fbbf2bb7a64bb86c8b79184d23c92030326c67b7c11cb14f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x026e5ea19dfeeff7685ce1be9a0cb9d7b5853e96dd7ea9b1d56f6ac4c627ae25", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0xffffffffffffffffffffffffffffffff", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x1b58", + "aaaf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "7000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x03e8", - "code" : "0x5b600a60805110156042576000600061c3506000600173aaaf5374fce5edbc8e2a8697c15331677e6ebf0b650ffffffffffff16000556001608051016080526000565b608051600155", - "nonce" : "0x00", + "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{ (def 'i 0x80) (for {} (< @i 10) [i](+ @i 1) [[ 0 ]](CALL 0xfffffffffff 0xaaaf5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 50000 0 0) ) [[ 1 ]] @i}", + "nonce" : "0", "storage" : { } } @@ -95,12 +63,12 @@ "gasLimit" : [ "0x7ffffffffffffff0" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xbbbf5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "bbbf5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb0.json b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb0.json index 9331386d7..e4c1ad83b 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb0.json +++ b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb0.json @@ -2,88 +2,82 @@ "CallRecursiveBomb0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallRecursiveBomb0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x219bd65c25b94774d65430b0164c5df1be2981f9f763ca98c2b60da4054d5116", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x219bd65c25b94774d65430b0164c5df1be2981f9f763ca98c2b60da4054d5116", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3e652c292bfd5dd0681e75760d44c4252cf7afee71b0db1510fb7ffa170960f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3e652c292bfd5dd0681e75760d44c4252cf7afee71b0db1510fb7ffa170960f8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x219bd65c25b94774d65430b0164c5df1be2981f9f763ca98c2b60da4054d5116", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x011b", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x77359400", - "code" : "0x6000600060006000601773945304eb96065b2a98b57a48a06ae28d285a71b56305f5e100f1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "2000000000", + "code" : "{ (CALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001600054016000556000600060006000600030612af85a03f1600155", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 11000) (ADDRESS) 0 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +87,14 @@ "" ], "gasLimit" : [ - "0x02540be400" + "10000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb0_OOG_atMaxCallDepth.json b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb0_OOG_atMaxCallDepth.json index 52138727d..4f000c78d 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb0_OOG_atMaxCallDepth.json +++ b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb0_OOG_atMaxCallDepth.json @@ -2,81 +2,69 @@ "CallRecursiveBomb0_OOG_atMaxCallDepth" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallRecursiveBomb0_OOG_atMaxCallDepthFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x174876e800", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfdd02999985c68e61b47f621f101fea9f2fea1c3408a4fb0a7bfa57d08e1f2e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x0401", + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfdd02999985c68e61b47f621f101fea9f2fea1c3408a4fb0a7bfa57d08e1f2e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8849583b8a73d4b6d08341d49aff6ed729855038bc446b3010a9b87837d5dbb2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8849583b8a73d4b6d08341d49aff6ed729855038bc446b3010a9b87837d5dbb2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfdd02999985c68e61b47f621f101fea9f2fea1c3408a4fb0a7bfa57d08e1f2e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x02c1", + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x600160005401600055690fffffffffffffffffff610402600054040260025560006000690fffffffffffffffffff610402600054040260006000306104005a03f1600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 2 ]] (MUL (DIV @@0 0x0402) 0xfffffffffffffffffff) [[ 1 ]] (CALL (- (GAS) 1024) (ADDRESS) 0 0 (MUL (DIV @@0 0x0402) 0xfffffffffffffffffff) 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +74,14 @@ "" ], "gasLimit" : [ - "0x174876e800" + "100000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb1.json b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb1.json index 16279c15e..370e1a9e2 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb1.json +++ b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb1.json @@ -2,81 +2,69 @@ "CallRecursiveBomb1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallRecursiveBomb1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x37cef75527fc899040e0e54f6ae45468e7d7d5216f1fe687b125d08bfba10ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x0401", + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x37cef75527fc899040e0e54f6ae45468e7d7d5216f1fe687b125d08bfba10ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6bc13ccf0b46b1a59f08e3b1fe6f3d6699615e665c3cc91b54a59774c8fef6fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6bc13ccf0b46b1a59f08e3b1fe6f3d6699615e665c3cc91b54a59774c8fef6fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x37cef75527fc899040e0e54f6ae45468e7d7d5216f1fe687b125d08bfba10ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0xde", + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6001600054016000556000600060006000600030613a985a03f1600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 15000) (ADDRESS) 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +74,14 @@ "" ], "gasLimit" : [ - "0x013aab14" + "20622100" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb2.json b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb2.json index ecbe7754f..3e5a3ee5e 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb2.json +++ b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb2.json @@ -2,81 +2,69 @@ "CallRecursiveBomb2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallRecursiveBomb2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x37cef75527fc899040e0e54f6ae45468e7d7d5216f1fe687b125d08bfba10ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x37cef75527fc899040e0e54f6ae45468e7d7d5216f1fe687b125d08bfba10ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x39c4e8eb67a73086760ba36ff7d36b834b8c6d782cac9ddacf7db280b35b70df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x39c4e8eb67a73086760ba36ff7d36b834b8c6d782cac9ddacf7db280b35b70df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x37cef75527fc899040e0e54f6ae45468e7d7d5216f1fe687b125d08bfba10ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0xde", + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6001600054016000556000600060006000600030613a985a03f1600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 15000) (ADDRESS) 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +74,14 @@ "" ], "gasLimit" : [ - "0x013aab13" + "20622099" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb3.json b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb3.json index 0896f1cbf..fae6010e0 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb3.json +++ b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBomb3.json @@ -2,81 +2,67 @@ "CallRecursiveBomb3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallRecursiveBomb3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1e61fde6e363035616e868e9c0e6d60031924b2d4a7a6942b9cb71d453253322", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1e61fde6e363035616e868e9c0e6d60031924b2d4a7a6942b9cb71d453253322", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x59a13349c9c49fff8c389ed3d19b476d5726a841cfe93f6d5f882cdfc97da07d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x59a13349c9c49fff8c389ed3d19b476d5726a841cfe93f6d5f882cdfc97da07d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1e61fde6e363035616e868e9c0e6d60031924b2d4a7a6942b9cb71d453253322", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x08", + "0x01" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x600160005401600055600060006000600060003060e05a03f1600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +72,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBombLog.json b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBombLog.json index 30de9d154..7ca9dff6b 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBombLog.json +++ b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBombLog.json @@ -2,88 +2,82 @@ "CallRecursiveBombLog" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallRecursiveBombLogFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x376d0956c6353512c7f5aa80a2016b6989bb797cb1b7e78639d0793ff3ce719e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x376d0956c6353512c7f5aa80a2016b6989bb797cb1b7e78639d0793ff3ce719e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfa16ac1bac3f2e0d6bfdc7f8042a1aaa7389aa5ab6f374af1b6db2d0f376e51f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfa16ac1bac3f2e0d6bfdc7f8042a1aaa7389aa5ab6f374af1b6db2d0f376e51f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x376d0956c6353512c7f5aa80a2016b6989bb797cb1b7e78639d0793ff3ce719e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x012b", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6000600060006000601773945304eb96065b2a98b57a48a06ae28d285a71b56305f5e100f1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (CALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000a060016000540160005560006000600060006000306161a85a03f1600155", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 25000) (ADDRESS) 0 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +87,14 @@ "" ], "gasLimit" : [ - "0x02540be400" + "10000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBombLog2.json b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBombLog2.json index 9d9b94553..db3e983cb 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallRecursiveBombLog2.json +++ b/GeneralStateTests/stSystemOperationsTest/CallRecursiveBombLog2.json @@ -2,88 +2,82 @@ "CallRecursiveBombLog2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallRecursiveBombLog2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9a1219b89ffffc7167820ff79b5d947da2ad09313623197ea5149d1413c4660d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x0400", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x9a1219b89ffffc7167820ff79b5d947da2ad09313623197ea5149d1413c4660d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe43d7768f201c46d78540a2c3115175605c9dd120209930331d2b41244e69c30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe43d7768f201c46d78540a2c3115175605c9dd120209930331d2b41244e69c30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9a1219b89ffffc7167820ff79b5d947da2ad09313623197ea5149d1413c4660d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x012b", + "0x01" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x01312d00", - "code" : "0x6000600060006000601773945304eb96065b2a98b57a48a06ae28d285a71b56305f5e100f1", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "20000000", + "code" : "{ (CALL 100000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x5a60005260206000a060016000540160005560006000600060006000306161a85a03f1600155", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 (GAS)) (LOG0 0 32) [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 25000) (ADDRESS) 0 0 0 0 0) } ", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +87,14 @@ "" ], "gasLimit" : [ - "0x02540be400" + "10000000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistrator0.json b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistrator0.json index 60fa6d808..2471b67ca 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistrator0.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistrator0.json @@ -2,88 +2,56 @@ "CallToNameRegistrator0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToNameRegistrator0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb2a7123db510a0b001ef635da54f29a08ac85299238171be5b9f54abc1d970c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xb2a7123db510a0b001ef635da54f29a08ac85299238171be5b9f54abc1d970c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xce9a0abf5dcc1a842397982c00be7ac19df241d90fc4d353aa8a9f5f7db25ef4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xce9a0abf5dcc1a842397982c00be7ac19df241d90fc4d353aa8a9f5f7db25ef4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb2a7123db510a0b001ef635da54f29a08ac85299238171be5b9f54abc1d970c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601773945304eb96065b2a98b57a48a06ae28d285a71b5620186a0f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorAddressTooBigLeft.json b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorAddressTooBigLeft.json index b176cff41..93976d5c2 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorAddressTooBigLeft.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorAddressTooBigLeft.json @@ -2,88 +2,55 @@ "CallToNameRegistratorAddressTooBigLeft" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToNameRegistratorAddressTooBigLeftFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf20b4586ddad843f851a34d69a2b34dab11ca15ff8614822f87b6c24656fe85e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf20b4586ddad843f851a34d69a2b34dab11ca15ff8614822f87b6c24656fe85e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4caf17de3d39b4c9cf02ce6d9d4345775b2a7ba7c1d80e346bf1cec5f3673f52", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4caf17de3d39b4c9cf02ce6d9d4345775b2a7ba7c1d80e346bf1cec5f3673f52", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf20b4586ddad843f851a34d69a2b34dab11ca15ff8614822f87b6c24656fe85e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601774aa945304eb96065b2a98b57a48a06ae28d285a71b56103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 1000 0xaa945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorAddressTooBigRight.json b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorAddressTooBigRight.json index c3d49ebf9..4637297ce 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorAddressTooBigRight.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorAddressTooBigRight.json @@ -2,88 +2,56 @@ "CallToNameRegistratorAddressTooBigRight" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToNameRegistratorAddressTooBigRightFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe1600f478012c6e0fa7ce6c3d0e9eccee0863844281254ddd18288bbb7e4cc3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe1600f478012c6e0fa7ce6c3d0e9eccee0863844281254ddd18288bbb7e4cc3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3755afff282738f4c79362abf2900f9c9e06ac6607a3f87f80fcf9c0ea598559", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3755afff282738f4c79362abf2900f9c9e06ac6607a3f87f80fcf9c0ea598559", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe1600f478012c6e0fa7ce6c3d0e9eccee0863844281254ddd18288bbb7e4cc3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601774945304eb96065b2a98b57a48a06ae28d285a71b5aa6103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5aa 23 0 64 64 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorMemOOGAndInsufficientBalance.json b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorMemOOGAndInsufficientBalance.json index 7a6af3c09..f1efedad9 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorMemOOGAndInsufficientBalance.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorMemOOGAndInsufficientBalance.json @@ -2,88 +2,55 @@ "CallToNameRegistratorMemOOGAndInsufficientBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToNameRegistratorMemOOGAndInsufficientBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x114f58e07a1c64cb56b5a025c92e7f90330439ad43c939bd53b0fc366c2261d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x114f58e07a1c64cb56b5a025c92e7f90330439ad43c939bd53b0fc366c2261d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x114f58e07a1c64cb56b5a025c92e7f90330439ad43c939bd53b0fc366c2261d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x114f58e07a1c64cb56b5a025c92e7f90330439ad43c939bd53b0fc366c2261d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x114f58e07a1c64cb56b5a025c92e7f90330439ad43c939bd53b0fc366c2261d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604065ffffffffffff6000601773945304eb96065b2a98b57a48a06ae28d285a71b564fffffffffff1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 0xffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0xffffffffffff 64 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorNotMuchMemory0.json b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorNotMuchMemory0.json index 78249a7b7..0e6d1c773 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorNotMuchMemory0.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorNotMuchMemory0.json @@ -2,88 +2,55 @@ "CallToNameRegistratorNotMuchMemory0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToNameRegistratorNotMuchMemory0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd694c2d97091570d8bbc35f90e5ad8156dfdfee8c07d1801802233eeb85962b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd694c2d97091570d8bbc35f90e5ad8156dfdfee8c07d1801802233eeb85962b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf4fc7d23582ad6e92195cf959b2e8d8802ccf5738269ffd3016c4ebbb7f0f95f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf4fc7d23582ad6e92195cf959b2e8d8802ccf5738269ffd3016c4ebbb7f0f95f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd694c2d97091570d8bbc35f90e5ad8156dfdfee8c07d1801802233eeb85962b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7feeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000620f120660406000601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 987654 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorNotMuchMemory1.json b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorNotMuchMemory1.json index 93d270179..acd6304af 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorNotMuchMemory1.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorNotMuchMemory1.json @@ -2,88 +2,55 @@ "CallToNameRegistratorNotMuchMemory1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToNameRegistratorNotMuchMemory1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x09f6d23e7a13df4afe992c46a87006acc67ff4d173a4331e4ec179f5d8b9cd53", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x09f6d23e7a13df4afe992c46a87006acc67ff4d173a4331e4ec179f5d8b9cd53", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x57a6ed152d0450751d70b6bced7c126b1e01e0131609c80a1b65531af88082d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x57a6ed152d0450751d70b6bced7c126b1e01e0131609c80a1b65531af88082d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x09f6d23e7a13df4afe992c46a87006acc67ff4d173a4331e4ec179f5d8b9cd53", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7feeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa602052600060406000620f1206601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 987654 0 64 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorOutOfGas.json b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorOutOfGas.json index c0a7bbc25..8e4ed33c6 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorOutOfGas.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorOutOfGas.json @@ -2,88 +2,55 @@ "CallToNameRegistratorOutOfGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToNameRegistratorOutOfGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x517efad1eb1e2970819211696d148a34dbdc0dc1c3700f17409601bac40d1f8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x517efad1eb1e2970819211696d148a34dbdc0dc1c3700f17409601bac40d1f8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b988b2663cbc833b242180bda87a075471856f4c49c67cd60d0425fb3cb03d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2b988b2663cbc833b242180bda87a075471856f4c49c67cd60d0425fb3cb03d4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x517efad1eb1e2970819211696d148a34dbdc0dc1c3700f17409601bac40d1f8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7feeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56064f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 100 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory0.json b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory0.json index e5460acb5..3818418ca 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory0.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory0.json @@ -2,88 +2,55 @@ "CallToNameRegistratorTooMuchMemory0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5d4b6ab2f2501fa3ec033514e65f89fa2294ff2a5eea7161071d77f4fe71f8ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5d4b6ab2f2501fa3ec033514e65f89fa2294ff2a5eea7161071d77f4fe71f8ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5d4b6ab2f2501fa3ec033514e65f89fa2294ff2a5eea7161071d77f4fe71f8ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5d4b6ab2f2501fa3ec033514e65f89fa2294ff2a5eea7161071d77f4fe71f8ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5d4b6ab2f2501fa3ec033514e65f89fa2294ff2a5eea7161071d77f4fe71f8ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7feeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa602052600060406040633ade68b1601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 987654321 64 64 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory1.json b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory1.json index ab11c4c79..0d3ff3565 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory1.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory1.json @@ -2,88 +2,55 @@ "CallToNameRegistratorTooMuchMemory1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x195fb9b7e5616bb930b792075f4b1596b8df9bf468f8f33af87e573a4d227beb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x195fb9b7e5616bb930b792075f4b1596b8df9bf468f8f33af87e573a4d227beb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x195fb9b7e5616bb930b792075f4b1596b8df9bf468f8f33af87e573a4d227beb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x195fb9b7e5616bb930b792075f4b1596b8df9bf468f8f33af87e573a4d227beb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x195fb9b7e5616bb930b792075f4b1596b8df9bf468f8f33af87e573a4d227beb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7feeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa60205260006040629688d86000601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 9865432 64 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory2.json b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory2.json index d3bb856f4..4c59de757 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory2.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory2.json @@ -2,88 +2,55 @@ "CallToNameRegistratorTooMuchMemory2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToNameRegistratorTooMuchMemory2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4993da42139940634e711366fdaa07b684fa3b3d8a7a8cd9b2274b27e753913e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4993da42139940634e711366fdaa07b684fa3b3d8a7a8cd9b2274b27e753913e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4993da42139940634e711366fdaa07b684fa3b3d8a7a8cd9b2274b27e753913e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4993da42139940634e711366fdaa07b684fa3b3d8a7a8cd9b2274b27e753913e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4993da42139940634e711366fdaa07b684fa3b3d8a7a8cd9b2274b27e753913e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7feeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526001620f120660406000601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 987654 1) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorZeorSizeMemExpansion.json b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorZeorSizeMemExpansion.json index 8c1b2add2..685a19a20 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorZeorSizeMemExpansion.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToNameRegistratorZeorSizeMemExpansion.json @@ -2,88 +2,55 @@ "CallToNameRegistratorZeorSizeMemExpansion" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToNameRegistratorZeorSizeMemExpansionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x520ddd540224004110028b9d223f966e4a7cf4db78ffc3114abfe70d1f6b38db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x520ddd540224004110028b9d223f966e4a7cf4db78ffc3114abfe70d1f6b38db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbd23d5466a70c39a332b0201f8f56837b02c172e5e60295e7221e5d8668f39e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbd23d5466a70c39a332b0201f8f56837b02c172e5e60295e7221e5d8668f39e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x520ddd540224004110028b9d223f966e4a7cf4db78ffc3114abfe70d1f6b38db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000600060006000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToReturn1.json b/GeneralStateTests/stSystemOperationsTest/CallToReturn1.json index 9f160d0a8..9ccac0201 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToReturn1.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToReturn1.json @@ -2,88 +2,55 @@ "CallToReturn1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToReturn1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd524736625e1632152bad1b87b2e226e176c6181cde3a844dcb1dd0eeaf300a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd524736625e1632152bad1b87b2e226e176c6181cde3a844dcb1dd0eeaf300a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x17272b576fb7b4b74a5305080e983036905199834abeb29756991089bd61c912", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x17272b576fb7b4b74a5305080e983036905199834abeb29756991089bd61c912", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd524736625e1632152bad1b87b2e226e176c6181cde3a844dcb1dd0eeaf300a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x6001601f60006000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f1600055600051600155", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 31 1) [[ 1 ]] @0 }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155602a601f536001601ff3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToReturn1ForDynamicJump0.json b/GeneralStateTests/stSystemOperationsTest/CallToReturn1ForDynamicJump0.json index 47ed6782a..0ca7c88bd 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToReturn1ForDynamicJump0.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToReturn1ForDynamicJump0.json @@ -2,88 +2,55 @@ "CallToReturn1ForDynamicJump0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToReturn1ForDynamicJump0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x11bf0d0d8648c8a47dea0a2e55bdb51240010da4f0b41f577a1f23543eeb0c96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x11bf0d0d8648c8a47dea0a2e55bdb51240010da4f0b41f577a1f23543eeb0c96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x11bf0d0d8648c8a47dea0a2e55bdb51240010da4f0b41f577a1f23543eeb0c96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x11bf0d0d8648c8a47dea0a2e55bdb51240010da4f0b41f577a1f23543eeb0c96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x11bf0d0d8648c8a47dea0a2e55bdb51240010da4f0b41f577a1f23543eeb0c96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001601f60006000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f1600055600051565b6023602355", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155602a601f536001601ff3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CallToReturn1ForDynamicJump1.json b/GeneralStateTests/stSystemOperationsTest/CallToReturn1ForDynamicJump1.json index de3afcb90..ca1af1bb9 100644 --- a/GeneralStateTests/stSystemOperationsTest/CallToReturn1ForDynamicJump1.json +++ b/GeneralStateTests/stSystemOperationsTest/CallToReturn1ForDynamicJump1.json @@ -2,88 +2,55 @@ "CallToReturn1ForDynamicJump1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CallToReturn1ForDynamicJump1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x19678aec516eda46d75c60db0ae2c97c0600eb95b7aac31fb6e3d4ede3cf43f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x19678aec516eda46d75c60db0ae2c97c0600eb95b7aac31fb6e3d4ede3cf43f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x19678aec516eda46d75c60db0ae2c97c0600eb95b7aac31fb6e3d4ede3cf43f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x19678aec516eda46d75c60db0ae2c97c0600eb95b7aac31fb6e3d4ede3cf43f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x19678aec516eda46d75c60db0ae2c97c0600eb95b7aac31fb6e3d4ede3cf43f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6001601f60006000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f160005560005156605b6023602355", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155602b601f536001601ff3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CalltoReturn2.json b/GeneralStateTests/stSystemOperationsTest/CalltoReturn2.json index ac83b23da..7fc4c7cc9 100644 --- a/GeneralStateTests/stSystemOperationsTest/CalltoReturn2.json +++ b/GeneralStateTests/stSystemOperationsTest/CalltoReturn2.json @@ -2,88 +2,56 @@ "CalltoReturn2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CalltoReturn2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf65269d7b5b7facf1b99aec76e8adfe34906a3493068790b9d52193211815b21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf65269d7b5b7facf1b99aec76e8adfe34906a3493068790b9d52193211815b21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6971f4dd72e63426d4ae977723404b9822e13339e65386187b746a9a368e459f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6971f4dd72e63426d4ae977723404b9822e13339e65386187b746a9a368e459f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf65269d7b5b7facf1b99aec76e8adfe34906a3493068790b9d52193211815b21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526002600060406000601773945304eb96065b2a98b57a48a06ae28d285a71b5611388f1600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 5000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f2", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/CreateHashCollision.json b/GeneralStateTests/stSystemOperationsTest/CreateHashCollision.json index d56dc054a..7e959962d 100644 --- a/GeneralStateTests/stSystemOperationsTest/CreateHashCollision.json +++ b/GeneralStateTests/stSystemOperationsTest/CreateHashCollision.json @@ -2,88 +2,87 @@ "CreateHashCollision" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/CreateHashCollisionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9ad1ffb51fe6f7a2dca6fd17ab366990af3f875137c82d2dc64ff6e8b1b9161e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "65", + "code" : "0x6000355415600957005b602035600035", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd73594e1cf8108b5cb811ece843511874fea2a4536d12d08e92258b46be8f7f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9ad1ffb51fe6f7a2dca6fd17ab366990af3f875137c82d2dc64ff6e8b1b9161e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9ad1ffb51fe6f7a2dca6fd17ab366990af3f875137c82d2dc64ff6e8b1b9161e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xed83cfbd371641f3a30d68735ef254d558e8751dbc237d721b5704fa91e58e7f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00" + } + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "42", + "code" : "0x60016001016055", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052601d60036017f0600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 29) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xd2571607e241ecf590ed94b12d87c94babe36db6" : { - "balance" : "0x2a", + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "42", "code" : "0x60016001016055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +92,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/PostToReturn1.json b/GeneralStateTests/stSystemOperationsTest/PostToReturn1.json index d77dbc79e..481ec10ae 100644 --- a/GeneralStateTests/stSystemOperationsTest/PostToReturn1.json +++ b/GeneralStateTests/stSystemOperationsTest/PostToReturn1.json @@ -2,88 +2,56 @@ "PostToReturn1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/PostToReturn1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd7e921c9f8fa1dcc2daa5c823c5e4e63b5f2cf80c85bd18f896167ffa49e43c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x01" : "0x00", + "0x02" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd7e921c9f8fa1dcc2daa5c823c5e4e63b5f2cf80c85bd18f896167ffa49e43c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9f7a93654e2c5b63c54ab0c0946d7df6c9f0966b4bb8763085cc3e7a33ded7b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9f7a93654e2c5b63c54ab0c0946d7df6c9f0966b4bb8763085cc3e7a33ded7b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd7e921c9f8fa1dcc2daa5c823c5e4e63b5f2cf80c85bd18f896167ffa49e43c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000600060406000601773945304eb96065b2a98b57a48a06ae28d285a71b5617530f16001556001600255", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[1]](CALL 30000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 0 ) [[2]] 1 }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x603760005360026000f2", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/TestNameRegistrator.json b/GeneralStateTests/stSystemOperationsTest/TestNameRegistrator.json index d1cab468e..689d8bd95 100644 --- a/GeneralStateTests/stSystemOperationsTest/TestNameRegistrator.json +++ b/GeneralStateTests/stSystemOperationsTest/TestNameRegistrator.json @@ -2,81 +2,48 @@ "TestNameRegistrator" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/TestNameRegistratorFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcedee0855a8063f17b379084d252572d4f4949b14787f120f7dec66ae516fd2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa" + } } } - ], - "EIP158" : [ - { - "hash" : "0xcedee0855a8063f17b379084d252572d4f4949b14787f120f7dec66ae516fd2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x00f4b821448a5251d87c19e12ec783941c018048afc48c2afe4e9ce9c7d843d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x00f4b821448a5251d87c19e12ec783941c018048afc48c2afe4e9ce9c7d843d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcedee0855a8063f17b379084d252572d4f4949b14787f120f7dec66ae516fd2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/balanceInputAddressTooBig.json b/GeneralStateTests/stSystemOperationsTest/balanceInputAddressTooBig.json index 879c59292..b8a8e356d 100644 --- a/GeneralStateTests/stSystemOperationsTest/balanceInputAddressTooBig.json +++ b/GeneralStateTests/stSystemOperationsTest/balanceInputAddressTooBig.json @@ -2,81 +2,48 @@ "balanceInputAddressTooBig" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/balanceInputAddressTooBigFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x498e32033ce67f3f9a89601d7c9d615ba9a8128ddb17f04e1d6427d165d4a8be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x498e32033ce67f3f9a89601d7c9d615ba9a8128ddb17f04e1d6427d165d4a8be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0cd184d79d2fe8bc7d5d565abd8223ddbbf6a74884b03dba907114a50c1e4194", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0cd184d79d2fe8bc7d5d565abd8223ddbbf6a74884b03dba907114a50c1e4194", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x498e32033ce67f3f9a89601d7c9d615ba9a8128ddb17f04e1d6427d165d4a8be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x74a94f5374fce5edbc8e2a8697c15331677e6ebf0baa31600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (BALANCE 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0baa ) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/callValue.json b/GeneralStateTests/stSystemOperationsTest/callValue.json index a0b6e4b30..8ed0b74ee 100644 --- a/GeneralStateTests/stSystemOperationsTest/callValue.json +++ b/GeneralStateTests/stSystemOperationsTest/callValue.json @@ -2,81 +2,48 @@ "callValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/callValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xea5a2e542032a38dc4c5b8a35af97c8aec0478e44ce2578257d5e2ba877c2ff3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x0186a0" + } } } - ], - "EIP158" : [ - { - "hash" : "0xea5a2e542032a38dc4c5b8a35af97c8aec0478e44ce2578257d5e2ba877c2ff3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xea5a2e542032a38dc4c5b8a35af97c8aec0478e44ce2578257d5e2ba877c2ff3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xea5a2e542032a38dc4c5b8a35af97c8aec0478e44ce2578257d5e2ba877c2ff3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xea5a2e542032a38dc4c5b8a35af97c8aec0478e44ce2578257d5e2ba877c2ff3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x34600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[0]] (CALLVALUE) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/callcodeTo0.json b/GeneralStateTests/stSystemOperationsTest/callcodeTo0.json index 1a1222f0e..95e695981 100644 --- a/GeneralStateTests/stSystemOperationsTest/callcodeTo0.json +++ b/GeneralStateTests/stSystemOperationsTest/callcodeTo0.json @@ -2,81 +2,49 @@ "callcodeTo0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/callcodeTo0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x19f9a922972fe0537d83f56f5959862d5ad2124a228380ae9f47ac5618fc8037", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x19f9a922972fe0537d83f56f5959862d5ad2124a228380ae9f47ac5618fc8037", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf2b28acfc1a870888ce8bec91ba864a29d474f8c112c6d95febdfc398bf51a87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf2b28acfc1a870888ce8bec91ba864a29d474f8c112c6d95febdfc398bf51a87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x19f9a922972fe0537d83f56f5959862d5ad2124a228380ae9f47ac5618fc8037", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x60006000600060006001600061c350f2600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (CALLCODE 50000 0 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistrator0.json b/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistrator0.json index 22175bb40..c121ba277 100644 --- a/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistrator0.json +++ b/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistrator0.json @@ -2,88 +2,54 @@ "callcodeToNameRegistrator0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/callcodeToNameRegistrator0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x80a99db610de9d5f0becc55ff0d92519481297b4ac066d473c19d47cd41d5daf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x80a99db610de9d5f0becc55ff0d92519481297b4ac066d473c19d47cd41d5daf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7134711778196126bf70632019459d9139f5fd61ec1902b8ad932dbf2dc4f271", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7134711778196126bf70632019459d9139f5fd61ec1902b8ad932dbf2dc4f271", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x80a99db610de9d5f0becc55ff0d92519481297b4ac066d473c19d47cd41d5daf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f2600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +59,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistratorAddresTooBigLeft.json b/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistratorAddresTooBigLeft.json index 32326c8ca..60fe4bb30 100644 --- a/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistratorAddresTooBigLeft.json +++ b/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistratorAddresTooBigLeft.json @@ -2,88 +2,54 @@ "callcodeToNameRegistratorAddresTooBigLeft" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/callcodeToNameRegistratorAddresTooBigLeftFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x01c79efbe5d2bcf9a3f4e7996901cdc5546fe582aadede40602c24b9cffe5268", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x01c79efbe5d2bcf9a3f4e7996901cdc5546fe582aadede40602c24b9cffe5268", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x593b3eef5051e2c75739cdd3228252d08672b2e647c592bbe1e9fb8c0acb3f87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x593b3eef5051e2c75739cdd3228252d08672b2e647c592bbe1e9fb8c0acb3f87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x01c79efbe5d2bcf9a3f4e7996901cdc5546fe582aadede40602c24b9cffe5268", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601774aa945304eb96065b2a98b57a48a06ae28d285a71b56103e8f2600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000 0xaa945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +59,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistratorAddresTooBigRight.json b/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistratorAddresTooBigRight.json index dd66298a4..36991fee6 100644 --- a/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistratorAddresTooBigRight.json +++ b/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistratorAddresTooBigRight.json @@ -2,88 +2,55 @@ "callcodeToNameRegistratorAddresTooBigRight" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/callcodeToNameRegistratorAddresTooBigRightFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6a14904644464966f58ab919f626b0cfa28e92476bf966c1dbf5205985ebab13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6a14904644464966f58ab919f626b0cfa28e92476bf966c1dbf5205985ebab13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4026a08c4d682101cf0f13e53e36a03554d8e61fbe39b81bd7802dfc40301368", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4026a08c4d682101cf0f13e53e36a03554d8e61fbe39b81bd7802dfc40301368", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6a14904644464966f58ab919f626b0cfa28e92476bf966c1dbf5205985ebab13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601774945304eb96065b2a98b57a48a06ae28d285a71b5aa6103e8f2600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5aa 23 0 64 64 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistratorZeroMemExpanion.json b/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistratorZeroMemExpanion.json index d08aa6cc9..a71c8ca66 100644 --- a/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistratorZeroMemExpanion.json +++ b/GeneralStateTests/stSystemOperationsTest/callcodeToNameRegistratorZeroMemExpanion.json @@ -2,88 +2,54 @@ "callcodeToNameRegistratorZeroMemExpanion" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/callcodeToNameRegistratorZeroMemExpanionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x153fcad07dc3b3c9650fae069eb7726c29f6d407b1a7f2c1efc458855c7f8e06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x153fcad07dc3b3c9650fae069eb7726c29f6d407b1a7f2c1efc458855c7f8e06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3f1a9d1c69c51b03762bb2e8bdc7529a9ac07b37c9e68afb9ccbfe3158542645", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3f1a9d1c69c51b03762bb2e8bdc7529a9ac07b37c9e68afb9ccbfe3158542645", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x153fcad07dc3b3c9650fae069eb7726c29f6d407b1a7f2c1efc458855c7f8e06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000600060006000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f2600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6000355415600957005b60203560003555", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +59,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/callcodeToReturn1.json b/GeneralStateTests/stSystemOperationsTest/callcodeToReturn1.json index c9e39f0bd..aecdd3cea 100644 --- a/GeneralStateTests/stSystemOperationsTest/callcodeToReturn1.json +++ b/GeneralStateTests/stSystemOperationsTest/callcodeToReturn1.json @@ -2,88 +2,57 @@ "callcodeToReturn1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/callcodeToReturn1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfee86436f44e3e9f5ac0ba17a93cfce472a98a0472d61cc37b90c8e202d3036a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + "0x" : "0x01", + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfee86436f44e3e9f5ac0ba17a93cfce472a98a0472d61cc37b90c8e202d3036a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x24a5ee7c7e8184fcdc16f247f6fcd4e2e9f8b2859fd5bf2d08b982f31ab3193d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x24a5ee7c7e8184fcdc16f247f6fcd4e2e9f8b2859fd5bf2d08b982f31ab3193d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfee86436f44e3e9f5ac0ba17a93cfce472a98a0472d61cc37b90c8e202d3036a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526002600060406000601773945304eb96065b2a98b57a48a06ae28d285a71b561c350f2600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 50000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", "code" : "0x6001600155603760005360026000f3", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +62,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/callerAccountBalance.json b/GeneralStateTests/stSystemOperationsTest/callerAccountBalance.json index 36630e87a..b1e897646 100644 --- a/GeneralStateTests/stSystemOperationsTest/callerAccountBalance.json +++ b/GeneralStateTests/stSystemOperationsTest/callerAccountBalance.json @@ -2,81 +2,48 @@ "callerAccountBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/callerAccountBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x710a9fb9288bf74ee9432386b671bf6749744934cb9b2a2925353560957d7d2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x0de0b6b3a6c9e2e0" + } } } - ], - "EIP158" : [ - { - "hash" : "0x710a9fb9288bf74ee9432386b671bf6749744934cb9b2a2925353560957d7d2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb280489f0c73c0193849da3c965ce2437f3eef1a2b68152630a844e903c57bde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb280489f0c73c0193849da3c965ce2437f3eef1a2b68152630a844e903c57bde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x710a9fb9288bf74ee9432386b671bf6749744934cb9b2a2925353560957d7d2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x3331600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[0]] (balance (caller)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/createNameRegistrator.json b/GeneralStateTests/stSystemOperationsTest/createNameRegistrator.json index a53a8ea95..024be652f 100644 --- a/GeneralStateTests/stSystemOperationsTest/createNameRegistrator.json +++ b/GeneralStateTests/stSystemOperationsTest/createNameRegistrator.json @@ -2,81 +2,49 @@ "createNameRegistrator" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/createNameRegistratorFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5c10031877a1bb9d9a87739caa56232f09aecd78b7b4bc00930ca3f5c1144275", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf1770913799fff90a6dc218afa00ef98bb9ed6cecbbe5a8e31943c9edce09332", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5c10031877a1bb9d9a87739caa56232f09aecd78b7b4bc00930ca3f5c1144275", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5c10031877a1bb9d9a87739caa56232f09aecd78b7b4bc00930ca3f5c1144275", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf1770913799fff90a6dc218afa00ef98bb9ed6cecbbe5a8e31943c9edce09332", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052601d60036017f0600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 29) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorOOG_MemExpansionOOV.json b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorOOG_MemExpansionOOV.json index a697761e9..c898429ac 100644 --- a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorOOG_MemExpansionOOV.json +++ b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorOOG_MemExpansionOOV.json @@ -2,81 +2,48 @@ "createNameRegistratorOOG_MemExpansionOOV" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/createNameRegistratorOOG_MemExpansionOOVFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1445168607eec4569321c8c3ed83f04298957bb89ca90ff1c2663f194f14d3ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1445168607eec4569321c8c3ed83f04298957bb89ca90ff1c2663f194f14d3ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1445168607eec4569321c8c3ed83f04298957bb89ca90ff1c2663f194f14d3ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1445168607eec4569321c8c3ed83f04298957bb89ca90ff1c2663f194f14d3ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1445168607eec4569321c8c3ed83f04298957bb89ca90ff1c2663f194f14d3ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x2710", - "code" : "0x7c601080600c6000396000f3006000355415600957005b602035600035556000526affffffffffffffffffffff6003612af8f0600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "10000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 11000 3 0xffffffffffffffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorOutOfMemoryBonds0.json b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorOutOfMemoryBonds0.json index e8e43a69e..2681f60aa 100644 --- a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorOutOfMemoryBonds0.json +++ b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorOutOfMemoryBonds0.json @@ -2,81 +2,48 @@ "createNameRegistratorOutOfMemoryBonds0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/createNameRegistratorOutOfMemoryBonds0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2516c1bbc89361b6de0cf1a0dd37c29eb1fb5443e6b61d30995c582b1f382ba7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2516c1bbc89361b6de0cf1a0dd37c29eb1fb5443e6b61d30995c582b1f382ba7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2516c1bbc89361b6de0cf1a0dd37c29eb1fb5443e6b61d30995c582b1f382ba7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2516c1bbc89361b6de0cf1a0dd37c29eb1fb5443e6b61d30995c582b1f382ba7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2516c1bbc89361b6de0cf1a0dd37c29eb1fb5443e6b61d30995c582b1f382ba7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052601d650fffffffffff6017f0600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 0xfffffffffff 29) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorOutOfMemoryBonds1.json b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorOutOfMemoryBonds1.json index 6b59936d3..d72029fa9 100644 --- a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorOutOfMemoryBonds1.json +++ b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorOutOfMemoryBonds1.json @@ -2,81 +2,48 @@ "createNameRegistratorOutOfMemoryBonds1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/createNameRegistratorOutOfMemoryBonds1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb3e49d40bee33d67c1805b9016d7166c327d4a0e0e886e3b8ff8775adfdd7909", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xb3e49d40bee33d67c1805b9016d7166c327d4a0e0e886e3b8ff8775adfdd7909", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb3e49d40bee33d67c1805b9016d7166c327d4a0e0e886e3b8ff8775adfdd7909", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb3e49d40bee33d67c1805b9016d7166c327d4a0e0e886e3b8ff8775adfdd7909", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb3e49d40bee33d67c1805b9016d7166c327d4a0e0e886e3b8ff8775adfdd7909", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052650fffffffffff60036017f0600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 0xfffffffffff) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorValueTooHigh.json b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorValueTooHigh.json index 8246fe5af..deba3d9ea 100644 --- a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorValueTooHigh.json +++ b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorValueTooHigh.json @@ -2,81 +2,46 @@ "createNameRegistratorValueTooHigh" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/createNameRegistratorValueTooHighFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x92152a14da785d61543ce9241c8562e55b97dd1f4af60190a30f7d045d8014b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x92152a14da785d61543ce9241c8562e55b97dd1f4af60190a30f7d045d8014b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x92152a14da785d61543ce9241c8562e55b97dd1f4af60190a30f7d045d8014b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x92152a14da785d61543ce9241c8562e55b97dd1f4af60190a30f7d045d8014b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x92152a14da785d61543ce9241c8562e55b97dd1f4af60190a30f7d045d8014b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052601d6003670de0b6b3a7640001f0600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 1000000000000000001 3 29) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +51,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorZeroMem.json b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorZeroMem.json index 4f1235630..e7307bc96 100644 --- a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorZeroMem.json +++ b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorZeroMem.json @@ -2,81 +2,49 @@ "createNameRegistratorZeroMem" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/createNameRegistratorZeroMemFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x534c4ab86305a6e229b8e02dc82bcbdadbf0181384643b14ee0ed128a3a30764", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd9804558d3cf4692b46acf3d314718d66552150ecb7c8cde1057d366fe1fd3dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x534c4ab86305a6e229b8e02dc82bcbdadbf0181384643b14ee0ed128a3a30764", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x534c4ab86305a6e229b8e02dc82bcbdadbf0181384643b14ee0ed128a3a30764", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd9804558d3cf4692b46acf3d314718d66552150ecb7c8cde1057d366fe1fd3dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052600060036017f0600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorZeroMem2.json b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorZeroMem2.json index f29462e8b..4b694b06f 100644 --- a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorZeroMem2.json +++ b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorZeroMem2.json @@ -2,81 +2,49 @@ "createNameRegistratorZeroMem2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/createNameRegistratorZeroMem2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9315ff98ac078dee73c02ba0caf0432a65f4907d717c97f7939f6f1337aba928", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x7b9b9903aff8d72bc0f37ce4a4d93abaf13224c67f4929bb7db407c0ad20fc6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9315ff98ac078dee73c02ba0caf0432a65f4907d717c97f7939f6f1337aba928", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9315ff98ac078dee73c02ba0caf0432a65f4907d717c97f7939f6f1337aba928", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7b9b9903aff8d72bc0f37ce4a4d93abaf13224c67f4929bb7db407c0ad20fc6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7c601080600c6000396000f3006000355415600957005b6020356000355560005260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6017f0600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorZeroMemExpansion.json b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorZeroMemExpansion.json index 32456ad8c..8e1bb2fcd 100644 --- a/GeneralStateTests/stSystemOperationsTest/createNameRegistratorZeroMemExpansion.json +++ b/GeneralStateTests/stSystemOperationsTest/createNameRegistratorZeroMemExpansion.json @@ -2,81 +2,49 @@ "createNameRegistratorZeroMemExpansion" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/createNameRegistratorZeroMemExpansionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x77d89db4fefd45c31e64ecd2fb991651c5ce1a1b3e3cf3171395f571bc9b9417", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" + } } } - ], - "EIP158" : [ - { - "hash" : "0x91f70b0f7060391efb1037b8f590f310eefe601db4ec9915e1af5b451efdf8c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x77d89db4fefd45c31e64ecd2fb991651c5ce1a1b3e3cf3171395f571bc9b9417", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x77d89db4fefd45c31e64ecd2fb991651c5ce1a1b3e3cf3171395f571bc9b9417", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x91f70b0f7060391efb1037b8f590f310eefe601db4ec9915e1af5b451efdf8c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052600060006017f0600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/createWithInvalidOpcode.json b/GeneralStateTests/stSystemOperationsTest/createWithInvalidOpcode.json index ce160d598..9e122a224 100644 --- a/GeneralStateTests/stSystemOperationsTest/createWithInvalidOpcode.json +++ b/GeneralStateTests/stSystemOperationsTest/createWithInvalidOpcode.json @@ -2,81 +2,48 @@ "createWithInvalidOpcode" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/createWithInvalidOpcodeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x36a506299d0982a91b9bf1d7f1f1415300eef03b33597d4d05b85c7db2854ccf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "nonce" : "1", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x36a506299d0982a91b9bf1d7f1f1415300eef03b33597d4d05b85c7db2854ccf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x15fba448e5949b4f68452110f29013eb1fbe319463ea33a64e1485a6c526ee82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x15fba448e5949b4f68452110f29013eb1fbe319463ea33a64e1485a6c526ee82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x36a506299d0982a91b9bf1d7f1f1415300eef03b33597d4d05b85c7db2854ccf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", "code" : "0x444242424245434253f0", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/currentAccountBalance.json b/GeneralStateTests/stSystemOperationsTest/currentAccountBalance.json index 48401843c..e809877da 100644 --- a/GeneralStateTests/stSystemOperationsTest/currentAccountBalance.json +++ b/GeneralStateTests/stSystemOperationsTest/currentAccountBalance.json @@ -2,81 +2,48 @@ "currentAccountBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/currentAccountBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe406da1a46079816711c71e26a7b47a2865a87ed03ab12df7dc2317f651a3fd8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x" : "0x0de0b6b3a76586a0" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe406da1a46079816711c71e26a7b47a2865a87ed03ab12df7dc2317f651a3fd8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xda6372df6637d722d7cbe4b808111af5ae8aefa80dbc8396f55030cf1a56d624", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xda6372df6637d722d7cbe4b808111af5ae8aefa80dbc8396f55030cf1a56d624", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe406da1a46079816711c71e26a7b47a2865a87ed03ab12df7dc2317f651a3fd8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x3031600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[0]] (balance (address)) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +53,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/extcodecopy.json b/GeneralStateTests/stSystemOperationsTest/extcodecopy.json index 1bd35a39f..05ddeb32a 100644 --- a/GeneralStateTests/stSystemOperationsTest/extcodecopy.json +++ b/GeneralStateTests/stSystemOperationsTest/extcodecopy.json @@ -2,87 +2,99 @@ "extcodecopy" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/extcodecopyFiller.json" }, "env" : { - "currentCoinbase" : "0x4401fcaf7d64d53fb1cfc5c9045c32aa919a8c82", + "currentCoinbase" : "4401fcaf7d64d53fb1cfc5c9045c32aa919a8c82", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x58272e28", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0xd30f77155de00f207ad60109897e790f73e9f3431be25717bf3651d91949f041" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "d30f77155de00f207ad60109897e790f73e9f3431be25717bf3651d91949f041" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x32c08fc32999efafc4aed330782b49171c3caf851285f65c06182baa0d8f4aa4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "00000000002147c39fd6b5c19b7b89fc003e6b16" : { + "balance" : "0x2a6bb607", + "nonce" : "0x00", + "storage" : { + } + }, + "4401fcaf7d64d53fb1cfc5c9045c32aa919a8c82" : { + "balance" : "0x06c5a7f85ff0", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x4f6ca0f3404f688d", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x32c08fc32999efafc4aed330782b49171c3caf851285f65c06182baa0d8f4aa4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x19cf4c2d1e51b64210c6fe4b0094f8e592a5ac333234495a948f6a3c694453e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x19cf4c2d1e51b64210c6fe4b0094f8e592a5ac333234495a948f6a3c694453e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x32c08fc32999efafc4aed330782b49171c3caf851285f65c06182baa0d8f4aa4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "00000000002147c39fd6b5c19b7b89fc003e6b16" : { + "balance" : "0x2a6bb607", + "nonce" : "0x00", + "storage" : { + } + }, + "4401fcaf7d64d53fb1cfc5c9045c32aa919a8c82" : { + "balance" : "18122589774504", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "5723115516504122837", + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x05c81eb0", "code" : "0x7f15688566a82f5f946c68028bf626b349e495daa43e33529a76437ac416cd1b7d6e7dae7454bb193b1c28e64a6a935bc373cea0c5cc171fa61277e5604a3bc8aef4de3d38820658600b80797ada6e82e95f6520383f95f5c7dae56b4dc13b6f22ecabfce07c3cff51", "nonce" : "0xfe", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "0x4d6769f8", "code" : "0x5a60106017601160116018601c600f601b601d5f60026013600f601a8d5a5b7679177b5dd41a23db52998c4dcd14e88390dcc9f3ed5783601660145f6013600d601f60016011600e600c600d601f60138c7a58f20fd882eb51408a52e569ce80e93270ab53ae9de3fec5498a5c72ce1fcd11bb1553736959df779a616b738c1f407c12459490afe302da311a673488d09e71041d0761dee4829e3c38e0b1b1787810f2e11e2289983c1ab47cf5ebd38c12f1719232b5f3a7b27a9ea8858a071c4169392ec725646311235cbd9534e5d7cd8cb5e2287738a43f803384f4e62fe6629ea2e609a71759edab5c3a58b87e94c95f710aa6059b0663c9f374ce6ea0a000c5d594c41252d4a74d64896a987cc57c24df2ce8ffb85adcc27dce2d19f7006fbc1c5a7b79a319418fd6c27ddebcf170192262d82c1053333f6115c8b258b81e2e84d723c98dbd4535de7f922723a15827bbcfd07f9e2c5027c7736ed68c61b332059d7ec1bae1c1fd41a361d35b996d9740a588b6abf3293236afb927717328c014846148ce67eaf2b33d90672366dafeaae0714eb39e7fd5076a831d8eb4a3546288a3e1a0087aebe80b6bbfa4041330b05d094a697236fe7654d8a7ce630f83a832620125d781666e898f7fdcfd0031", "nonce" : "0xdd", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x4f6ca7b90ceb5fd4", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -97,8 +109,8 @@ ], "gasPrice" : "0x1cd49878", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x24a39757" ] diff --git a/GeneralStateTests/stSystemOperationsTest/return0.json b/GeneralStateTests/stSystemOperationsTest/return0.json index fc47fa4c4..2e3889b07 100644 --- a/GeneralStateTests/stSystemOperationsTest/return0.json +++ b/GeneralStateTests/stSystemOperationsTest/return0.json @@ -2,81 +2,46 @@ "return0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/return0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa7c787bf470808896308c215e22c7a580a0087bb6db6e8695fb4759537283a83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21018" } } - ], - "EIP158" : [ - { - "hash" : "0xa7c787bf470808896308c215e22c7a580a0087bb6db6e8695fb4759537283a83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa7c787bf470808896308c215e22c7a580a0087bb6db6e8695fb4759537283a83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa7c787bf470808896308c215e22c7a580a0087bb6db6e8695fb4759537283a83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa7c787bf470808896308c215e22c7a580a0087bb6db6e8695fb4759537283a83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x17", - "code" : "0x603760005360016000f3", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "23", + "code" : "{ (MSTORE8 0 55) (RETURN 0 1)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +51,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/return1.json b/GeneralStateTests/stSystemOperationsTest/return1.json index 87d087ab8..65a1d244c 100644 --- a/GeneralStateTests/stSystemOperationsTest/return1.json +++ b/GeneralStateTests/stSystemOperationsTest/return1.json @@ -2,81 +2,46 @@ "return1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/return1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5da89a7173f6b194b2ef83c7cd2f29e943718cba518db29ec7b9b2b92ccbb50a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21018" } } - ], - "EIP158" : [ - { - "hash" : "0x5da89a7173f6b194b2ef83c7cd2f29e943718cba518db29ec7b9b2b92ccbb50a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5da89a7173f6b194b2ef83c7cd2f29e943718cba518db29ec7b9b2b92ccbb50a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5da89a7173f6b194b2ef83c7cd2f29e943718cba518db29ec7b9b2b92ccbb50a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5da89a7173f6b194b2ef83c7cd2f29e943718cba518db29ec7b9b2b92ccbb50a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x17", - "code" : "0x603760005360026000f3", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "23", + "code" : "{ (MSTORE8 0 55) (RETURN 0 2)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +51,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/return2.json b/GeneralStateTests/stSystemOperationsTest/return2.json index 46b7a6ad7..cdf8b9b2b 100644 --- a/GeneralStateTests/stSystemOperationsTest/return2.json +++ b/GeneralStateTests/stSystemOperationsTest/return2.json @@ -2,81 +2,46 @@ "return2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/return2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9e8b9b791e28d533bc6acbafdb895c6b1708daf9580c0d5671507b667906efee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21021" } } - ], - "EIP158" : [ - { - "hash" : "0x9e8b9b791e28d533bc6acbafdb895c6b1708daf9580c0d5671507b667906efee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9e8b9b791e28d533bc6acbafdb895c6b1708daf9580c0d5671507b667906efee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9e8b9b791e28d533bc6acbafdb895c6b1708daf9580c0d5671507b667906efee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9e8b9b791e28d533bc6acbafdb895c6b1708daf9580c0d5671507b667906efee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x17", - "code" : "0x603760005360216000f3", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "23", + "code" : "{ (MSTORE8 0 55) (RETURN 0 33)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +51,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/suicideAddress.json b/GeneralStateTests/stSystemOperationsTest/suicideAddress.json index d834b4482..e9b0cff1b 100644 --- a/GeneralStateTests/stSystemOperationsTest/suicideAddress.json +++ b/GeneralStateTests/stSystemOperationsTest/suicideAddress.json @@ -2,81 +2,69 @@ "suicideAddress" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/suicideAddressFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x518390cc204dd02fd071a3d9f81dfac8916abb6d0302c84a106e60af7f38fc2c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999879496" } } - ], - "EIP158" : [ - { - "hash" : "0x518390cc204dd02fd071a3d9f81dfac8916abb6d0302c84a106e60af7f38fc2c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0db310830a928b7de2a28ec1946219efb4ff64af40820004f8abacf1228b4234", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0db310830a928b7de2a28ec1946219efb4ff64af40820004f8abacf1228b4234", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x518390cc204dd02fd071a3d9f81dfac8916abb6d0302c84a106e60af7f38fc2c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999876996" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x3060005530ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[0]] (ADDRESS) (SELFDESTRUCT (ADDRESS))}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +74,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/suicideCaller.json b/GeneralStateTests/stSystemOperationsTest/suicideCaller.json index ecaff58c4..0d7b1edfc 100644 --- a/GeneralStateTests/stSystemOperationsTest/suicideCaller.json +++ b/GeneralStateTests/stSystemOperationsTest/suicideCaller.json @@ -2,81 +2,71 @@ "suicideCaller" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/suicideCallerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x576dcd5dcb6162373e6ba62f6c42c2fb2c1f47f34987e1acab5a90cea6f717ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1999999999999979496", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x576dcd5dcb6162373e6ba62f6c42c2fb2c1f47f34987e1acab5a90cea6f717ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdf4f742ceccd065ac87e1f9628aefe26e48df34162c43ca000153edf036eb72c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdf4f742ceccd065ac87e1f9628aefe26e48df34162c43ca000153edf036eb72c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x576dcd5dcb6162373e6ba62f6c42c2fb2c1f47f34987e1acab5a90cea6f717ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1999999999999976996", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x3360005533ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[0]] (CALLER) (SELFDESTRUCT (CALLER))}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +76,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/suicideCallerAddresTooBigLeft.json b/GeneralStateTests/stSystemOperationsTest/suicideCallerAddresTooBigLeft.json index 5bfcca322..ad9fea6c5 100644 --- a/GeneralStateTests/stSystemOperationsTest/suicideCallerAddresTooBigLeft.json +++ b/GeneralStateTests/stSystemOperationsTest/suicideCallerAddresTooBigLeft.json @@ -2,81 +2,71 @@ "suicideCallerAddresTooBigLeft" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/suicideCallerAddresTooBigLeftFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x576dcd5dcb6162373e6ba62f6c42c2fb2c1f47f34987e1acab5a90cea6f717ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1999999999999979496", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x576dcd5dcb6162373e6ba62f6c42c2fb2c1f47f34987e1acab5a90cea6f717ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdf4f742ceccd065ac87e1f9628aefe26e48df34162c43ca000153edf036eb72c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdf4f742ceccd065ac87e1f9628aefe26e48df34162c43ca000153edf036eb72c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x576dcd5dcb6162373e6ba62f6c42c2fb2c1f47f34987e1acab5a90cea6f717ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1999999999999976996", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x3360005574aaa94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[0]] (CALLER) (SELFDESTRUCT 0xaaa94f5374fce5edbc8e2a8697c15331677e6ebf0b)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +76,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/suicideCallerAddresTooBigRight.json b/GeneralStateTests/stSystemOperationsTest/suicideCallerAddresTooBigRight.json index 5436ed487..3f8833f87 100644 --- a/GeneralStateTests/stSystemOperationsTest/suicideCallerAddresTooBigRight.json +++ b/GeneralStateTests/stSystemOperationsTest/suicideCallerAddresTooBigRight.json @@ -2,81 +2,46 @@ "suicideCallerAddresTooBigRight" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/suicideCallerAddresTooBigRightFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x86e5b16db62bb628d4758fc198b131a72cad91c42e5b7ba6e34f7dd0040a4c4f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "4f5374fce5edbc8e2a8697c15331677e6ebf0baa" : { + "balance" : "1000000000000100000" } } - ], - "EIP158" : [ - { - "hash" : "0x86e5b16db62bb628d4758fc198b131a72cad91c42e5b7ba6e34f7dd0040a4c4f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x95b1e818532526bdad03840e613d548f511f71b773bcc151be7c1df5aec55bb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x95b1e818532526bdad03840e613d548f511f71b773bcc151be7c1df5aec55bb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x86e5b16db62bb628d4758fc198b131a72cad91c42e5b7ba6e34f7dd0040a4c4f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x3360005574a94f5374fce5edbc8e2a8697c15331677e6ebf0baaff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[0]] (CALLER) (SELFDESTRUCT 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0baa)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +51,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/suicideCoinbase.json b/GeneralStateTests/stSystemOperationsTest/suicideCoinbase.json index 4fde91a5b..4b59444f8 100644 --- a/GeneralStateTests/stSystemOperationsTest/suicideCoinbase.json +++ b/GeneralStateTests/stSystemOperationsTest/suicideCoinbase.json @@ -2,81 +2,65 @@ "suicideCoinbase" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/suicideCoinbaseFiller.json" }, "env" : { - "currentCoinbase" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "currentCoinbase" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6f0998481c651b0b5fe26d002bfd4b3759de8aafa7273b0f458ec594ffb39c51", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1999999999999989498", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x6f0998481c651b0b5fe26d002bfd4b3759de8aafa7273b0f458ec594ffb39c51", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd250e0dc5c48a99a23e6a7fbca13303df995c2f8a049aef6fc3afa0e34df4ed4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd250e0dc5c48a99a23e6a7fbca13303df995c2f8a049aef6fc3afa0e34df4ed4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6f0998481c651b0b5fe26d002bfd4b3759de8aafa7273b0f458ec594ffb39c51", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1999999999999986998", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x73a94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +70,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/suicideNotExistingAccount.json b/GeneralStateTests/stSystemOperationsTest/suicideNotExistingAccount.json index cb7dd2779..3906f1399 100644 --- a/GeneralStateTests/stSystemOperationsTest/suicideNotExistingAccount.json +++ b/GeneralStateTests/stSystemOperationsTest/suicideNotExistingAccount.json @@ -2,81 +2,46 @@ "suicideNotExistingAccount" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/suicideNotExistingAccountFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0a255239a39dd83c975355c293c59afee89ec53443261f213be77c9fcd3517f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "aa1722f3947def4cf144679da39c4c32bdc35681" : { + "balance" : "1000000000000100000" } } - ], - "EIP158" : [ - { - "hash" : "0x0a255239a39dd83c975355c293c59afee89ec53443261f213be77c9fcd3517f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc98d1cc9c8cac043798aba14849c7a9bdff792fd178a331004cf8ac6b4eeaee6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc98d1cc9c8cac043798aba14849c7a9bdff792fd178a331004cf8ac6b4eeaee6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0a255239a39dd83c975355c293c59afee89ec53443261f213be77c9fcd3517f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x73aa1722f3947def4cf144679da39c4c32bdc35681ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT 0xaa1722f3947def4cf144679da39c4c32bdc35681 )}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +51,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/suicideOrigin.json b/GeneralStateTests/stSystemOperationsTest/suicideOrigin.json index f9269e3d0..fe4bbede2 100644 --- a/GeneralStateTests/stSystemOperationsTest/suicideOrigin.json +++ b/GeneralStateTests/stSystemOperationsTest/suicideOrigin.json @@ -2,81 +2,69 @@ "suicideOrigin" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/suicideOriginFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x576dcd5dcb6162373e6ba62f6c42c2fb2c1f47f34987e1acab5a90cea6f717ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1999999999999979496" } } - ], - "EIP158" : [ - { - "hash" : "0x576dcd5dcb6162373e6ba62f6c42c2fb2c1f47f34987e1acab5a90cea6f717ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdf4f742ceccd065ac87e1f9628aefe26e48df34162c43ca000153edf036eb72c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdf4f742ceccd065ac87e1f9628aefe26e48df34162c43ca000153edf036eb72c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x576dcd5dcb6162373e6ba62f6c42c2fb2c1f47f34987e1acab5a90cea6f717ee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1999999999999976996" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x3260005532ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[0]] (ORIGIN) (SELFDESTRUCT (ORIGIN))}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +74,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/suicideSendEtherPostDeath.json b/GeneralStateTests/stSystemOperationsTest/suicideSendEtherPostDeath.json index be7fa274e..e50a97fd8 100644 --- a/GeneralStateTests/stSystemOperationsTest/suicideSendEtherPostDeath.json +++ b/GeneralStateTests/stSystemOperationsTest/suicideSendEtherPostDeath.json @@ -2,80 +2,76 @@ "suicideSendEtherPostDeath" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/suicideSendEtherPostDeathFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x989680", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc53f10f790e3881fb81df07ff8b29693aa11f87177378494b81ee7d437a77468", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "10920" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999889080", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xc53f10f790e3881fb81df07ff8b29693aa11f87177378494b81ee7d437a77468", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9f3c63ff818c14e4b56e5fa1fc03a76725f598bcac256668185ec51dfc1d7f5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9f3c63ff818c14e4b56e5fa1fc03a76725f598bcac256668185ec51dfc1d7f5f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc53f10f790e3881fb81df07ff8b29693aa11f87177378494b81ee7d437a77468", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "14270" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999885730", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "0x0de0b6b3a7640000", "code" : "0x60606040526000357c01000000000000000000000000000000000000000000000000000000009004806335f46994146100445780634d536fe31461005157610042565b005b61004f600450610072565b005b61005c60045061008d565b6040518082815260200191505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff16ff5b565b600060003073ffffffffffffffffffffffffffffffffffffffff166335f46994604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f115610002575050503073ffffffffffffffffffffffffffffffffffffffff163190503373ffffffffffffffffffffffffffffffffffffffff16600082604051809050600060405180830381858888f1935050505050809150610147565b509056", "nonce" : "0x00", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a7640000", - "code" : "", + "code" : "0x", "nonce" : "0x00", "storage" : { } @@ -90,8 +86,8 @@ ], "gasPrice" : "0x01", "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ "0x0186a0" ] diff --git a/GeneralStateTests/stSystemOperationsTest/suicideSendEtherToMe.json b/GeneralStateTests/stSystemOperationsTest/suicideSendEtherToMe.json index 99af4e26b..f2ddebffd 100644 --- a/GeneralStateTests/stSystemOperationsTest/suicideSendEtherToMe.json +++ b/GeneralStateTests/stSystemOperationsTest/suicideSendEtherToMe.json @@ -2,81 +2,71 @@ "suicideSendEtherToMe" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/suicideSendEtherToMeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb7fc4d877fa862ab30973e1cbfe88f8a09d502983844e4d5d4f5ff0bcb388b45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999889499", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xb7fc4d877fa862ab30973e1cbfe88f8a09d502983844e4d5d4f5ff0bcb388b45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9eb527b54a972a8566c46d406fa86b6d8d4efeeb7ba102713b58fec7f0e34f45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9eb527b54a972a8566c46d406fa86b6d8d4efeeb7ba102713b58fec7f0e34f45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb7fc4d877fa862ab30973e1cbfe88f8a09d502983844e4d5d4f5ff0bcb388b45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999886999", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x30ff", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ (SELFDESTRUCT (ADDRESS) )}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +76,14 @@ "" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stSystemOperationsTest/testRandomTest.json b/GeneralStateTests/stSystemOperationsTest/testRandomTest.json index 88405b30a..9cee74392 100644 --- a/GeneralStateTests/stSystemOperationsTest/testRandomTest.json +++ b/GeneralStateTests/stSystemOperationsTest/testRandomTest.json @@ -2,81 +2,49 @@ "testRandomTest" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stSystemOperationsTest/testRandomTestFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3a214e481c7334bd0d5e649795d955ec52badbf5df4988c47c9de6266257a932", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "nonce" : "2", + "storage" : { + "0xebcce5f60530275ee9318ce1eff9e4bfee810172" : "0x03e8" + } } } - ], - "EIP158" : [ - { - "hash" : "0x574a120dbb90647527d2be3cb7de28a73a7eaced54d64994d5d53636ac27f403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3a214e481c7334bd0d5e649795d955ec52badbf5df4988c47c9de6266257a932", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3a214e481c7334bd0d5e649795d955ec52badbf5df4988c47c9de6266257a932", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x574a120dbb90647527d2be3cb7de28a73a7eaced54d64994d5d53636ac27f403", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x0de0b6b3a7640000", + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", "code" : "0x424443444243434383f0155af055", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x0493e0" + "300000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stTransactionTest/ContractStoreClearsOOG.json b/GeneralStateTests/stTransactionTest/ContractStoreClearsOOG.json index 203fadb27..7a0341f95 100644 --- a/GeneralStateTests/stTransactionTest/ContractStoreClearsOOG.json +++ b/GeneralStateTests/stTransactionTest/ContractStoreClearsOOG.json @@ -2,83 +2,62 @@ "ContractStoreClearsOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/ContractStoreClearsOOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0186a0", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd58cdfde7bf06a7f91ab36dc0fb0710ba8a9275390553616ff29f7366882bb26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd58cdfde7bf06a7f91ab36dc0fb0710ba8a9275390553616ff29f7366882bb26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd58cdfde7bf06a7f91ab36dc0fb0710ba8a9275390553616ff29f7366882bb26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd58cdfde7bf06a7f91ab36dc0fb0710ba8a9275390553616ff29f7366882bb26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd58cdfde7bf06a7f91ab36dc0fb0710ba8a9275390553616ff29f7366882bb26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x7530", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "30000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xd2571607e241ecf590ed94b12d87c94babe36db6" : { - "balance" : "0x00", - "code" : "0x600060005560006001556000600255600060035560006004556000600555600060065560006007556000600855600c600955", - "nonce" : "0x00", + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 12)}", + "nonce" : "0", "storage" : { - "0x00" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", "0x02" : "0x0c", "0x03" : "0x0c", @@ -96,14 +75,14 @@ "" ], "gasLimit" : [ - "0x59d8" + "23000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xd2571607e241ecf590ed94b12d87c94babe36db6", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "d2571607e241ecf590ed94b12d87c94babe36db6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/ContractStoreClearsSuccess.json b/GeneralStateTests/stTransactionTest/ContractStoreClearsSuccess.json index 066400e25..6779cb22f 100644 --- a/GeneralStateTests/stTransactionTest/ContractStoreClearsSuccess.json +++ b/GeneralStateTests/stTransactionTest/ContractStoreClearsSuccess.json @@ -2,83 +2,50 @@ "ContractStoreClearsSuccess" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/ContractStoreClearsSuccessFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x11cb0174dafbaca661204a3a104acf1d96d4f100b2d3db8bfec25cc7e595b545", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "10", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x11cb0174dafbaca661204a3a104acf1d96d4f100b2d3db8bfec25cc7e595b545", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x11cb0174dafbaca661204a3a104acf1d96d4f100b2d3db8bfec25cc7e595b545", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x11cb0174dafbaca661204a3a104acf1d96d4f100b2d3db8bfec25cc7e595b545", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x11cb0174dafbaca661204a3a104acf1d96d4f100b2d3db8bfec25cc7e595b545", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0222e0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "140000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xd2571607e241ecf590ed94b12d87c94babe36db6" : { - "balance" : "0x00", - "code" : "0x6000600055600060015560006002556000600355600060045560006005556000600655600060075560006008556000600955", - "nonce" : "0x00", + "d2571607e241ecf590ed94b12d87c94babe36db6" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", "storage" : { - "0x00" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", "0x02" : "0x0c", "0x03" : "0x0c", @@ -96,14 +63,14 @@ "" ], "gasLimit" : [ - "0x01fbd0" + "130000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xd2571607e241ecf590ed94b12d87c94babe36db6", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "d2571607e241ecf590ed94b12d87c94babe36db6", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/CreateMessageReverted.json b/GeneralStateTests/stTransactionTest/CreateMessageReverted.json index 139504049..483fb2808 100644 --- a/GeneralStateTests/stTransactionTest/CreateMessageReverted.json +++ b/GeneralStateTests/stTransactionTest/CreateMessageReverted.json @@ -2,81 +2,50 @@ "CreateMessageReverted" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/CreateMessageRevertedFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xe8d4a51000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6f792258c5a1e152c931e3af3e0ef180ad7ed52c1f84380f2beb660177e22c24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0x6f792258c5a1e152c931e3af3e0ef180ad7ed52c1f84380f2beb660177e22c24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6f792258c5a1e152c931e3af3e0ef180ad7ed52c1f84380f2beb660177e22c24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6f792258c5a1e152c931e3af3e0ef180ad7ed52c1f84380f2beb660177e22c24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6f792258c5a1e152c931e3af3e0ef180ad7ed52c1f84380f2beb660177e22c24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x7530", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "30000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x64600c6000556000526005601b6000f0", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{(MSTORE 0 0x600c600055) (CREATE 0 27 5)}", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x557a" + "21882" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stTransactionTest/CreateMessageSuccess.json b/GeneralStateTests/stTransactionTest/CreateMessageSuccess.json index 4ea8c4f07..cabea9fa0 100644 --- a/GeneralStateTests/stTransactionTest/CreateMessageSuccess.json +++ b/GeneralStateTests/stTransactionTest/CreateMessageSuccess.json @@ -2,81 +2,52 @@ "CreateMessageSuccess" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/CreateMessageSuccessFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xe8d4a51000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x558f7514aaadbe5e4b69005a110606c5bf1f764279c780141c1f1ecf8f53c382", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", + "nonce" : "1" + }, + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "storage" : { + "0x" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0x08c7dbdb0a5e0632c0c52b1bb4f89b154c719aa2acf88a54588cd67416005b3b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x558f7514aaadbe5e4b69005a110606c5bf1f764279c780141c1f1ecf8f53c382", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x558f7514aaadbe5e4b69005a110606c5bf1f764279c780141c1f1ecf8f53c382", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x08c7dbdb0a5e0632c0c52b1bb4f89b154c719aa2acf88a54588cd67416005b3b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x061a80", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "400000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x64600c6000556000526005601b6000f0", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{(MSTORE 0 0x600c600055) (CREATE 0 27 5)}", + "nonce" : "0", "storage" : { } } @@ -86,14 +57,14 @@ "" ], "gasLimit" : [ - "0x02032a" + "131882" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stTransactionTest/CreateTransactionReverted.json b/GeneralStateTests/stTransactionTest/CreateTransactionReverted.json index 679ea507f..948d8666a 100644 --- a/GeneralStateTests/stTransactionTest/CreateTransactionReverted.json +++ b/GeneralStateTests/stTransactionTest/CreateTransactionReverted.json @@ -2,74 +2,40 @@ "CreateTransactionReverted" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/CreateTransactionRevertedFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xe8d4a51000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9b14f6a3389ec380ae31529f0b6c4ba09010cd9553c900c7c0bb47207ff47177", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "132000", + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0x9b14f6a3389ec380ae31529f0b6c4ba09010cd9553c900c7c0bb47207ff47177", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9b14f6a3389ec380ae31529f0b6c4ba09010cd9553c900c7c0bb47207ff47177", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9b14f6a3389ec380ae31529f0b6c4ba09010cd9553c900c7c0bb47207ff47177", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9b14f6a3389ec380ae31529f0b6c4ba09010cd9553c900c7c0bb47207ff47177", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0203a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "132000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +45,14 @@ "0x602280600c6000396000f30060e060020a600035048063f8a8fd6d14601457005b601a6020565b60006000f35b56" ], "gasLimit" : [ - "0x5c7f" + "23679" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stTransactionTest/CreateTransactionSuccess.json b/GeneralStateTests/stTransactionTest/CreateTransactionSuccess.json index fb908077a..b875e2b61 100644 --- a/GeneralStateTests/stTransactionTest/CreateTransactionSuccess.json +++ b/GeneralStateTests/stTransactionTest/CreateTransactionSuccess.json @@ -2,74 +2,101 @@ "CreateTransactionSuccess" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/CreateTransactionSuccessFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xe8d4a51000", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa0b82485d35279240c14e3d39dc992f4fe8af2e630902afe6c45c58f58ee2011", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "100", + "code" : "0x60e060020a600035048063f8a8fd6d14601457005b601a6020565b60006000f35b56", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1059918f27d169135bee2387b01c9b62a0ebbd145c07d0a2651a7cd20af3b2e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "100", + "code" : "0x60e060020a600035048063f8a8fd6d14601457005b601a6020565b60006000f35b56", + "nonce" : "0", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0x7d12ba0d5a88efcfc293ed4a5f877db891be20380c0483f1800f19786c35dce2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "100", + "code" : "0x60e060020a600035048063f8a8fd6d14601457005b601a6020565b60006000f35b56", + "nonce" : "1", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0xa0b82485d35279240c14e3d39dc992f4fe8af2e630902afe6c45c58f58ee2011", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "100", + "code" : "0x60e060020a600035048063f8a8fd6d14601457005b601a6020565b60006000f35b56", + "nonce" : "1", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x1059918f27d169135bee2387b01c9b62a0ebbd145c07d0a2651a7cd20af3b2e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +106,14 @@ "0x602280600c6000396000f30060e060020a600035048063f8a8fd6d14601457005b601a6020565b60006000f35b56" ], "gasLimit" : [ - "0x011170" + "70000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stTransactionTest/EmptyTransaction.json b/GeneralStateTests/stTransactionTest/EmptyTransaction.json index f89522559..4ca8b814e 100644 --- a/GeneralStateTests/stTransactionTest/EmptyTransaction.json +++ b/GeneralStateTests/stTransactionTest/EmptyTransaction.json @@ -2,74 +2,40 @@ "EmptyTransaction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/EmptyTransactionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +45,14 @@ "" ], "gasLimit" : [ - "0x00" + "" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stTransactionTest/EmptyTransaction2.json b/GeneralStateTests/stTransactionTest/EmptyTransaction2.json index 01c4da7df..6873cc82c 100644 --- a/GeneralStateTests/stTransactionTest/EmptyTransaction2.json +++ b/GeneralStateTests/stTransactionTest/EmptyTransaction2.json @@ -2,74 +2,113 @@ "EmptyTransaction2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/EmptyTransaction2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7c9b70b846a70a1731baf76adc6ffc016628cdabb8b5e9b4ab84f5134dc6ac89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "code" : "0x" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x2d2b88bc228443c611081f7db686b82a1beebe9d0fc79ce5e9604666e0b39fd0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "nonce" : "0" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "code" : "0x" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "nonce" : "1" } } - ], - "Frontier" : [ - { - "hash" : "0x7c9b70b846a70a1731baf76adc6ffc016628cdabb8b5e9b4ab84f5134dc6ac89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7c9b70b846a70a1731baf76adc6ffc016628cdabb8b5e9b4ab84f5134dc6ac89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "shouldnotexist" : "1" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "code" : "0x" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x2d2b88bc228443c611081f7db686b82a1beebe9d0fc79ce5e9604666e0b39fd0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "shouldnotexist" : "1" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "code" : "0x" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +118,14 @@ "" ], "gasLimit" : [ - "0xd6d8" + "55000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stTransactionTest/EmptyTransaction3.json b/GeneralStateTests/stTransactionTest/EmptyTransaction3.json index 79d9fa7e1..a2d4d92ee 100644 --- a/GeneralStateTests/stTransactionTest/EmptyTransaction3.json +++ b/GeneralStateTests/stTransactionTest/EmptyTransaction3.json @@ -2,74 +2,92 @@ "EmptyTransaction3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/EmptyTransaction3Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x53f5b84edd82703a225e53e9ae3639729eb8e337098531456998af602b0ded0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21000" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "code" : "0x" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "79000", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x01d55964b2d7eb43d050c308c5835cbc9d0d876a35fd855f063ca4fc424c4e28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcf29b86efa1b7f5f999ef519fcc921062924d5c14d78baf491252fbf5a0d85b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x53f5b84edd82703a225e53e9ae3639729eb8e337098531456998af602b0ded0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "53000" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "code" : "0x" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "47000", + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x01d55964b2d7eb43d050c308c5835cbc9d0d876a35fd855f063ca4fc424c4e28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "53000" + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "code" : "0x" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "47000", + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +97,14 @@ "" ], "gasLimit" : [ - "0xd6d8" + "55000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stTransactionTest/HighGasLimit.json b/GeneralStateTests/stTransactionTest/HighGasLimit.json index 3949e49ec..5e04c5558 100644 --- a/GeneralStateTests/stTransactionTest/HighGasLimit.json +++ b/GeneralStateTests/stTransactionTest/HighGasLimit.json @@ -2,74 +2,42 @@ "HighGasLimit" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/HighGasLimitFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x21c449a88c31cdfc758f8cfcdd080f1bb23d184737c62abd5192d079b5d69a30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "900" } } - ], - "EIP158" : [ - { - "hash" : "0x21c449a88c31cdfc758f8cfcdd080f1bb23d184737c62abd5192d079b5d69a30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x21c449a88c31cdfc758f8cfcdd080f1bb23d184737c62abd5192d079b5d69a30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x21c449a88c31cdfc758f8cfcdd080f1bb23d184737c62abd5192d079b5d69a30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x21c449a88c31cdfc758f8cfcdd080f1bb23d184737c62abd5192d079b5d69a30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +47,14 @@ "0x3240349548983454" ], "gasLimit" : [ - "0x1000000000000000" + "1152921504606846976" ], - "gasPrice" : "0x07", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "7", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0384" + "900" ] } } diff --git a/GeneralStateTests/stTransactionTest/InternalCallHittingGasLimit.json b/GeneralStateTests/stTransactionTest/InternalCallHittingGasLimit.json index 55f0f7f91..7e5cac4ff 100644 --- a/GeneralStateTests/stTransactionTest/InternalCallHittingGasLimit.json +++ b/GeneralStateTests/stTransactionTest/InternalCallHittingGasLimit.json @@ -2,88 +2,55 @@ "InternalCallHittingGasLimit" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/InternalCallHittingGasLimitFiller.json" }, "env" : { - "currentCoinbase" : "0x2adf5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x55f0", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "22000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6930ba06a213125880c1a12a18ad56614bbb8d56d94599781965c83379db8ce2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x6930ba06a213125880c1a12a18ad56614bbb8d56d94599781965c83379db8ce2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6930ba06a213125880c1a12a18ad56614bbb8d56d94599781965c83379db8ce2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6930ba06a213125880c1a12a18ad56614bbb8d56d94599781965c83379db8ce2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6930ba06a213125880c1a12a18ad56614bbb8d56d94599781965c83379db8ce2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", - "code" : "0x6000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b611388f1", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", + "code" : "{ (CALL 5000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6037600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]55}", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0x526c" + "21100" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/InternalCallHittingGasLimit2.json b/GeneralStateTests/stTransactionTest/InternalCallHittingGasLimit2.json index 02f692475..d34419bb7 100644 --- a/GeneralStateTests/stTransactionTest/InternalCallHittingGasLimit2.json +++ b/GeneralStateTests/stTransactionTest/InternalCallHittingGasLimit2.json @@ -2,88 +2,55 @@ "InternalCallHittingGasLimit2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/InternalCallHittingGasLimit2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adf5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xba96", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "47766", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0f98867b36ce229df56a98e1454b81797def675ab7b1ff78b9bd95922be5a07e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x0f98867b36ce229df56a98e1454b81797def675ab7b1ff78b9bd95922be5a07e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1313600c23f63593b77fc8aca5a6fc20ef894a44e323554f65f2939af28d5e27", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1313600c23f63593b77fc8aca5a6fc20ef894a44e323554f65f2939af28d5e27", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0f98867b36ce229df56a98e1454b81797def675ab7b1ff78b9bd95922be5a07e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b6161a8f1", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (CALL 25000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6037600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]55}", + "nonce" : "0", "storage" : { } } @@ -93,14 +60,14 @@ "" ], "gasLimit" : [ - "0xba96" + "47766" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/InternalCallHittingGasLimitSuccess.json b/GeneralStateTests/stTransactionTest/InternalCallHittingGasLimitSuccess.json index f3f395a04..922fa9fb0 100644 --- a/GeneralStateTests/stTransactionTest/InternalCallHittingGasLimitSuccess.json +++ b/GeneralStateTests/stTransactionTest/InternalCallHittingGasLimitSuccess.json @@ -2,88 +2,56 @@ "InternalCallHittingGasLimitSuccess" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/InternalCallHittingGasLimitSuccessFiller.json" }, "env" : { - "currentCoinbase" : "0x2adf5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "2adf5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x035b60", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "220000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2766392b322e4bc9ec7c60c6699445acdc7c66d4fe3cec79f4ddd852f16f8e68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "storage" : { + "0x01" : "0x37" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2766392b322e4bc9ec7c60c6699445acdc7c66d4fe3cec79f4ddd852f16f8e68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x679ac548468089b4ada3dab4ada7c97b8ea6c6bf46bdaf117b7cf0ad1c7c2a83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x679ac548468089b4ada3dab4ada7c97b8ea6c6bf46bdaf117b7cf0ad1c7c2a83", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2766392b322e4bc9ec7c60c6699445acdc7c66d4fe3cec79f4ddd852f16f8e68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600173c94f5374fce5edbc8e2a8697c15331677e6ebf0b6161a8f1", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (CALL 25000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6037600155", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{[[1]]55}", + "nonce" : "0", "storage" : { } } @@ -93,14 +61,14 @@ "" ], "gasLimit" : [ - "0x0249f0" + "150000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/InternlCallStoreClearsOOG.json b/GeneralStateTests/stTransactionTest/InternlCallStoreClearsOOG.json index 198254660..beacd4c63 100644 --- a/GeneralStateTests/stTransactionTest/InternlCallStoreClearsOOG.json +++ b/GeneralStateTests/stTransactionTest/InternlCallStoreClearsOOG.json @@ -2,76 +2,59 @@ "InternlCallStoreClearsOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/InternlCallStoreClearsOOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc9e68239859ea35d4730ef47b0d8c9df5dfceb5d45f75b13c5cd4ad4790c797a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "20" } } - ], - "EIP158" : [ - { - "hash" : "0xc9e68239859ea35d4730ef47b0d8c9df5dfceb5d45f75b13c5cd4ad4790c797a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2ad48fd172154544728a6ab6729ced747f40205158e83444b5e59697fc83cc3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2ad48fd172154544728a6ab6729ced747f40205158e83444b5e59697fc83cc3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc9e68239859ea35d4730ef47b0d8c9df5dfceb5d45f75b13c5cd4ad4790c797a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600055600060015560006002556000600355600060045560006005556000600655600060075560006008556000600955", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", "storage" : { - "0x00" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", "0x02" : "0x0c", "0x03" : "0x0c", @@ -83,17 +66,18 @@ "0x09" : "0x0c" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0a", - "code" : "0x600060006000600060016000619c40f1", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "//" : "gas = 19 going OOG, gas = 20 fine", + "balance" : "10", + "code" : "{ (CALL 40000 0 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -103,14 +87,14 @@ "" ], "gasLimit" : [ - "0x027100" + "160000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/InternlCallStoreClearsSucces.json b/GeneralStateTests/stTransactionTest/InternlCallStoreClearsSucces.json index 65db0730d..a14befd7b 100644 --- a/GeneralStateTests/stTransactionTest/InternlCallStoreClearsSucces.json +++ b/GeneralStateTests/stTransactionTest/InternlCallStoreClearsSucces.json @@ -2,76 +2,49 @@ "InternlCallStoreClearsSucces" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/InternlCallStoreClearsSuccesFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7405ca6ab4131e0ca94db673e5a959548010ef11f7f2bd0b0bd317bea2ffff89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "19" } } - ], - "EIP158" : [ - { - "hash" : "0x7405ca6ab4131e0ca94db673e5a959548010ef11f7f2bd0b0bd317bea2ffff89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2adbd104f00ce42e212bb8d44a4f34c4702a60e7cde64507bba7da169c6dd22a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2adbd104f00ce42e212bb8d44a4f34c4702a60e7cde64507bba7da169c6dd22a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7405ca6ab4131e0ca94db673e5a959548010ef11f7f2bd0b0bd317bea2ffff89", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600055600060015560006002556000600355600060045560006005556000600655600060075560006008556000600955", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", "storage" : { - "0x00" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", "0x02" : "0x0c", "0x03" : "0x0c", @@ -83,17 +56,18 @@ "0x09" : "0x0c" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0a", - "code" : "0x600060006000600060016000620186a0f1", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "//" : "gas = 19 going OOG, gas = 20 fine", + "balance" : "10", + "code" : "{ (CALL 100000 0 1 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -103,14 +77,14 @@ "" ], "gasLimit" : [ - "0x027100" + "160000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/OverflowGasRequire.json b/GeneralStateTests/stTransactionTest/OverflowGasRequire.json index 16545dc1a..e8c55d4df 100644 --- a/GeneralStateTests/stTransactionTest/OverflowGasRequire.json +++ b/GeneralStateTests/stTransactionTest/OverflowGasRequire.json @@ -2,74 +2,40 @@ "OverflowGasRequire" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/OverflowGasRequireFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x21e74bd5b4b29e241d402d6d7483d050bbdfcf2ae943522c2875c3f293e1ce70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0x21e74bd5b4b29e241d402d6d7483d050bbdfcf2ae943522c2875c3f293e1ce70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x21e74bd5b4b29e241d402d6d7483d050bbdfcf2ae943522c2875c3f293e1ce70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x21e74bd5b4b29e241d402d6d7483d050bbdfcf2ae943522c2875c3f293e1ce70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x21e74bd5b4b29e241d402d6d7483d050bbdfcf2ae943522c2875c3f293e1ce70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +45,14 @@ "0x3240349548983454" ], "gasLimit" : [ - "0x0100000000000000000000000000000000000000000000000000" + "1606938044258990275541962092341162602522202993782792835301376" ], - "gasPrice" : "0x0a00000000000000", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "720575940379279360", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stTransactionTest/OverflowGasRequire2.json b/GeneralStateTests/stTransactionTest/OverflowGasRequire2.json index 668368979..38d381839 100644 --- a/GeneralStateTests/stTransactionTest/OverflowGasRequire2.json +++ b/GeneralStateTests/stTransactionTest/OverflowGasRequire2.json @@ -2,74 +2,40 @@ "OverflowGasRequire2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/OverflowGasRequire2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x928134bdccde9e51f4a737d2d227f8109915db01191585aad9341b3de67f83bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "115792089237316195423570985008687907853269984665640564039457584007913127916415", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x7f450a15a566a5af02d0cfd23bada4f0f6963d85c1a20f33eb8dffe2b55262f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x928134bdccde9e51f4a737d2d227f8109915db01191585aad9341b3de67f83bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x928134bdccde9e51f4a737d2d227f8109915db01191585aad9341b3de67f83bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7f450a15a566a5af02d0cfd23bada4f0f6963d85c1a20f33eb8dffe2b55262f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +45,14 @@ "0x3240349548983454" ], "gasLimit" : [ - "0x1000000000000000" + "1152921504606846976" ], - "gasPrice" : "0x50", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "80", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stTransactionTest/RefundOverflow.json b/GeneralStateTests/stTransactionTest/RefundOverflow.json index 8c94ff033..89adcac79 100644 --- a/GeneralStateTests/stTransactionTest/RefundOverflow.json +++ b/GeneralStateTests/stTransactionTest/RefundOverflow.json @@ -2,74 +2,40 @@ "RefundOverflow" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/RefundOverflowFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x50e4efc6066e4158974b1cd159d914e8eda2978d3395f0027146f4a6bb014924", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "400", + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0x50e4efc6066e4158974b1cd159d914e8eda2978d3395f0027146f4a6bb014924", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x50e4efc6066e4158974b1cd159d914e8eda2978d3395f0027146f4a6bb014924", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x50e4efc6066e4158974b1cd159d914e8eda2978d3395f0027146f4a6bb014924", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x50e4efc6066e4158974b1cd159d914e8eda2978d3395f0027146f4a6bb014924", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0190", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "400", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +45,14 @@ "" ], "gasLimit" : [ - "0x066666666666667a" + "461168601842738810" ], - "gasPrice" : "0x14", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "20", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stTransactionTest/RefundOverflow2.json b/GeneralStateTests/stTransactionTest/RefundOverflow2.json index 914bd354c..ec1550df5 100644 --- a/GeneralStateTests/stTransactionTest/RefundOverflow2.json +++ b/GeneralStateTests/stTransactionTest/RefundOverflow2.json @@ -2,74 +2,40 @@ "RefundOverflow2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/RefundOverflow2Filler.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", "currentGasLimit" : "0x7fffffffffffffff", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x50e4efc6066e4158974b1cd159d914e8eda2978d3395f0027146f4a6bb014924", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "400", + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0x50e4efc6066e4158974b1cd159d914e8eda2978d3395f0027146f4a6bb014924", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x50e4efc6066e4158974b1cd159d914e8eda2978d3395f0027146f4a6bb014924", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x50e4efc6066e4158974b1cd159d914e8eda2978d3395f0027146f4a6bb014924", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x50e4efc6066e4158974b1cd159d914e8eda2978d3395f0027146f4a6bb014924", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0190", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "400", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +45,14 @@ "" ], "gasLimit" : [ - "0x066666666666667a" + "461168601842738810" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stTransactionTest/StoreClearsAndInternlCallStoreClearsOOG.json b/GeneralStateTests/stTransactionTest/StoreClearsAndInternlCallStoreClearsOOG.json index 60e590e9f..4889d3ed7 100644 --- a/GeneralStateTests/stTransactionTest/StoreClearsAndInternlCallStoreClearsOOG.json +++ b/GeneralStateTests/stTransactionTest/StoreClearsAndInternlCallStoreClearsOOG.json @@ -2,76 +2,62 @@ "StoreClearsAndInternlCallStoreClearsOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/StoreClearsAndInternlCallStoreClearsOOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe34a15a4c108a728623ec726686e2712d79af48fb40a609d96d421bdaa83e402", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "storage" : { + "0x" : "0x0c", + "0x01" : "0x0c", + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "20", + "storage" : { + "0x04" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe34a15a4c108a728623ec726686e2712d79af48fb40a609d96d421bdaa83e402", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x860acf740a21f4aa3656c5d77e74502a3dba158b1abc35e74b2d0a8143382a7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x860acf740a21f4aa3656c5d77e74502a3dba158b1abc35e74b2d0a8143382a7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe34a15a4c108a728623ec726686e2712d79af48fb40a609d96d421bdaa83e402", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600055600060015560006002556000600355600060045560006005556000600655600060075560006008556000600955", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", "storage" : { - "0x00" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", "0x02" : "0x0c", "0x03" : "0x0c", @@ -83,19 +69,19 @@ "0x09" : "0x0c" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07a120", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "500000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0a", - "code" : "0x6000600055600060015560006002556000600355600060006000600060016000614e20f1", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0) (CALL 20000 0 1 0 0 0 0) }", + "nonce" : "0", "storage" : { - "0x00" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", "0x02" : "0x0c", "0x03" : "0x0c", @@ -108,14 +94,14 @@ "" ], "gasLimit" : [ - "0x030d40" + "200000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/StoreClearsAndInternlCallStoreClearsSuccess.json b/GeneralStateTests/stTransactionTest/StoreClearsAndInternlCallStoreClearsSuccess.json index 79daea0e9..3027280e5 100644 --- a/GeneralStateTests/stTransactionTest/StoreClearsAndInternlCallStoreClearsSuccess.json +++ b/GeneralStateTests/stTransactionTest/StoreClearsAndInternlCallStoreClearsSuccess.json @@ -2,76 +2,49 @@ "StoreClearsAndInternlCallStoreClearsSuccess" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/StoreClearsAndInternlCallStoreClearsSuccessFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x488534cbee9b940581e2e9d39c252750b6b3582e5a159e1593ae1f36e17168db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "19", + "storage" : { + "0x04" : "0x0c" + } } } - ], - "EIP158" : [ - { - "hash" : "0x488534cbee9b940581e2e9d39c252750b6b3582e5a159e1593ae1f36e17168db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb5ae140f33246605ed01f44613b78305993d1edd4b87f62151f09146d9111c24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb5ae140f33246605ed01f44613b78305993d1edd4b87f62151f09146d9111c24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x488534cbee9b940581e2e9d39c252750b6b3582e5a159e1593ae1f36e17168db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6000600055600060015560006002556000600355600060045560006005556000600655600060075560006008556000600955", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", + "nonce" : "0", "storage" : { - "0x00" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", "0x02" : "0x0c", "0x03" : "0x0c", @@ -83,19 +56,20 @@ "0x09" : "0x0c" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x07a120", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "500000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0a", - "code" : "0x600060005560006001556000600255600060035560006000600060006001600061c350f1", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "//" : "gas = 19 going OOG, gas = 20 fine", + "balance" : "10", + "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0) (CALL 50000 0 1 0 0 0 0) }", + "nonce" : "0", "storage" : { - "0x00" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", "0x02" : "0x0c", "0x03" : "0x0c", @@ -108,14 +82,14 @@ "" ], "gasLimit" : [ - "0x030d40" + "200000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/StoreGasOnCreate.json b/GeneralStateTests/stTransactionTest/StoreGasOnCreate.json index c3851963f..811b4a302 100644 --- a/GeneralStateTests/stTransactionTest/StoreGasOnCreate.json +++ b/GeneralStateTests/stTransactionTest/StoreGasOnCreate.json @@ -2,81 +2,67 @@ "StoreGasOnCreate" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/StoreGasOnCreateFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x981251c50c9eaf41a1b1c05b9e396999e16dda2117366dfc6435e930f9024a6b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "storage" : { + "0xfd" : "0x01340b" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf89245b6f80697b4b587dfbe85a9cc1fd2a9ef3b4d8fc4bac922c2c2a4de2974", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xec303faac197a7d9d7602656492d111348e936d7cf5a58ee923b13db4028c53c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xec303faac197a7d9d7602656492d111348e936d7cf5a58ee923b13db4028c53c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf89245b6f80697b4b587dfbe85a9cc1fd2a9ef3b4d8fc4bac922c2c2a4de2974", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "f1ecf98489fa9ed60a664fc4998db699cfa39d40" : { + "storage" : { + "0xfd" : "0x012f3b" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x061a80", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "400000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x635a60fd556000526004601c6000f0", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (MSTORE 0 0x5a60fd55) (CREATE 0 28 4)}", + "nonce" : "0", "storage" : { } } @@ -86,14 +72,14 @@ "" ], "gasLimit" : [ - "0x02032a" + "131882" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesBonusGasAtCall.json b/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesBonusGasAtCall.json index 6de387e73..da859a26c 100644 --- a/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesBonusGasAtCall.json +++ b/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesBonusGasAtCall.json @@ -2,88 +2,76 @@ "SuicidesAndInternlCallSuicidesBonusGasAtCall" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/SuicidesAndInternlCallSuicidesBonusGasAtCallFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x38d59e131e4d4e76ec2c1fe16066a42649618c65eba3cf6c776ab41a09821c62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x38d59e131e4d4e76ec2c1fe16066a42649618c65eba3cf6c776ab41a09821c62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9bdb18aab851bd449403247691c69d81c785cf22e6e8a0150c29cbe778e1c8da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9bdb18aab851bd449403247691c69d81c785cf22e6e8a0150c29cbe778e1c8da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x38d59e131e4d4e76ec2c1fe16066a42649618c65eba3cf6c776ab41a09821c62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6001ff", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0a", - "code" : "0x6000600060006000600160006000f1506000ff", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "code" : "{(CALL 0 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}", + "nonce" : "0", "storage" : { } } @@ -93,14 +81,14 @@ "" ], "gasLimit" : [ - "0xc350" + "50000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesBonusGasAtCallFailed.json b/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesBonusGasAtCallFailed.json index e88818813..194ef4427 100644 --- a/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesBonusGasAtCallFailed.json +++ b/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesBonusGasAtCallFailed.json @@ -2,88 +2,54 @@ "SuicidesAndInternlCallSuicidesBonusGasAtCallFailed" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/SuicidesAndInternlCallSuicidesBonusGasAtCallFailedFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x67e8629b58470a4fe1c51cf03c7f0f6093f6dd3564c02879f0ae10830c179307", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "20", + "code" : "0x6001ff" } } - ], - "EIP158" : [ - { - "hash" : "0x67e8629b58470a4fe1c51cf03c7f0f6093f6dd3564c02879f0ae10830c179307", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7437f919a123aec38b460e95dc8d77c33c92d92dc68efc2fd2d541960f4192ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7437f919a123aec38b460e95dc8d77c33c92d92dc68efc2fd2d541960f4192ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x67e8629b58470a4fe1c51cf03c7f0f6093f6dd3564c02879f0ae10830c179307", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6001ff", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0a", - "code" : "0x6000600060006000600060006000f1506000ff", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "code" : "{(CALL 0 0x0000000000000000000000000000000000000000 0 0 0 0 0) (SELFDESTRUCT 0)}", + "nonce" : "0", "storage" : { } } @@ -93,14 +59,14 @@ "" ], "gasLimit" : [ - "0xc350" + "50000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesOOG.json b/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesOOG.json index c3e6a250f..9aa4fde57 100644 --- a/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesOOG.json +++ b/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesOOG.json @@ -2,88 +2,60 @@ "SuicidesAndInternlCallSuicidesOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/SuicidesAndInternlCallSuicidesOOGFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb9db1ad8faa2ab7375b7e3214d04e444c7bae2eaa9c6555e1506d5421f5b89be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "0x6001ff" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10" } } - ], - "EIP158" : [ - { - "hash" : "0xb9db1ad8faa2ab7375b7e3214d04e444c7bae2eaa9c6555e1506d5421f5b89be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb9db1ad8faa2ab7375b7e3214d04e444c7bae2eaa9c6555e1506d5421f5b89be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb9db1ad8faa2ab7375b7e3214d04e444c7bae2eaa9c6555e1506d5421f5b89be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb9db1ad8faa2ab7375b7e3214d04e444c7bae2eaa9c6555e1506d5421f5b89be", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6001ff", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0a", - "code" : "0x6000600060006000600160006155f0f1506000ff", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10", + "code" : "{(CALL 22000 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}", + "nonce" : "0", "storage" : { } } @@ -93,14 +65,14 @@ "" ], "gasLimit" : [ - "0xc350" + "50000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesSuccess.json b/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesSuccess.json index 6f0f449c5..20e49567c 100644 --- a/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesSuccess.json +++ b/GeneralStateTests/stTransactionTest/SuicidesAndInternlCallSuicidesSuccess.json @@ -2,128 +2,74 @@ "SuicidesAndInternlCallSuicidesSuccess" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/SuicidesAndInternlCallSuicidesSuccessFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x128115aec92c4018e4356912d56025520a6ef7fdaef2498b48c046fc5f1f957d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb09e2c82c72eab1acce2b3a97356325801b519b38bb3812e01a9f2e0b3f053cb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x128115aec92c4018e4356912d56025520a6ef7fdaef2498b48c046fc5f1f957d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb09e2c82c72eab1acce2b3a97356325801b519b38bb3812e01a9f2e0b3f053cb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xedcf939a1838a72b983b33625bb64aafe89e5dc0e6868f13f75aa8b8ed4676b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xedcf939a1838a72b983b33625bb64aafe89e5dc0e6868f13f75aa8b8ed4676b5", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0xedcf939a1838a72b983b33625bb64aafe89e5dc0e6868f13f75aa8b8ed4676b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xedcf939a1838a72b983b33625bb64aafe89e5dc0e6868f13f75aa8b8ed4676b5", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x128115aec92c4018e4356912d56025520a6ef7fdaef2498b48c046fc5f1f957d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : 1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xb09e2c82c72eab1acce2b3a97356325801b519b38bb3812e01a9f2e0b3f053cb", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x00", - "code" : "0x6001ff", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "0", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x02bf20", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "180000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x03e8", - "code" : "0x600060006000600060016000600035f1506000ff", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{(CALL (CALLDATALOAD 0) 0x0000000000000000000000000000000000000000 1 0 0 0 0) (SELFDESTRUCT 0)}", + "nonce" : "0", "storage" : { } } @@ -134,14 +80,14 @@ "0x000000000000000000000000000000000000000000000000000000000000aaf0" ], "gasLimit" : [ - "0x0249f0" + "150000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/SuicidesAndSendMoneyToItselfEtherDestroyed.json b/GeneralStateTests/stTransactionTest/SuicidesAndSendMoneyToItselfEtherDestroyed.json index 96798cfd0..d2ddd1616 100644 --- a/GeneralStateTests/stTransactionTest/SuicidesAndSendMoneyToItselfEtherDestroyed.json +++ b/GeneralStateTests/stTransactionTest/SuicidesAndSendMoneyToItselfEtherDestroyed.json @@ -2,81 +2,71 @@ "SuicidesAndSendMoneyToItselfEtherDestroyed" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/SuicidesAndSendMoneyToItselfEtherDestroyedFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8b093cfb172562c95fdc93897a0c9133270c68b3010ce4d586ce4247b706483f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "111488", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10502" } } - ], - "EIP158" : [ - { - "hash" : "0x8b093cfb172562c95fdc93897a0c9133270c68b3010ce4d586ce4247b706483f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6dd22dec58b209e1234c1fbfab5251329a95e1a708723ea9a5aad999967be8cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6dd22dec58b209e1234c1fbfab5251329a95e1a708723ea9a5aad999967be8cd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8b093cfb172562c95fdc93897a0c9133270c68b3010ce4d586ce4247b706483f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "108988", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "13002" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01dc90", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "122000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x03e8", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{(SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b)}", + "nonce" : "0", "storage" : { } } @@ -86,14 +76,14 @@ "" ], "gasLimit" : [ - "0x7bd4" + "31700" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/SuicidesMixingCoinbase.json b/GeneralStateTests/stTransactionTest/SuicidesMixingCoinbase.json index c30d4490a..85b5724fa 100644 --- a/GeneralStateTests/stTransactionTest/SuicidesMixingCoinbase.json +++ b/GeneralStateTests/stTransactionTest/SuicidesMixingCoinbase.json @@ -2,121 +2,75 @@ "SuicidesMixingCoinbase" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/SuicidesMixingCoinbaseFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xebb113c5ae196dafdbb9c9a8e77c02e7b1e6bb6faf4339ea869bb1d0a6b9559f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x101a8295ac56dc085b0c840487b73794c7b05226580c431e947f56c4424379f4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xebb113c5ae196dafdbb9c9a8e77c02e7b1e6bb6faf4339ea869bb1d0a6b9559f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x101a8295ac56dc085b0c840487b73794c7b05226580c431e947f56c4424379f4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6b09010bb30d1549da181bece2a888b61748c94829410ceb38bccdf8bd226ee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0x6b09010bb30d1549da181bece2a888b61748c94829410ceb38bccdf8bd226ee2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1010" } } - ], - "Homestead" : [ - { - "hash" : "0x6b09010bb30d1549da181bece2a888b61748c94829410ceb38bccdf8bd226ee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6b09010bb30d1549da181bece2a888b61748c94829410ceb38bccdf8bd226ee2", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xebb113c5ae196dafdbb9c9a8e77c02e7b1e6bb6faf4339ea869bb1d0a6b9559f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x101a8295ac56dc085b0c840487b73794c7b05226580c431e947f56c4424379f4", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1010" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x035b60", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "220000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x03e8", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000", + "code" : "{(SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b)}", + "nonce" : "0", "storage" : { } } @@ -126,15 +80,15 @@ "" ], "gasLimit" : [ - "0x54c4", - "0xea60" + "21700", + "60000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/SuicidesStopAfterSuicide.json b/GeneralStateTests/stTransactionTest/SuicidesStopAfterSuicide.json index 1d135204e..3b3125490 100644 --- a/GeneralStateTests/stTransactionTest/SuicidesStopAfterSuicide.json +++ b/GeneralStateTests/stTransactionTest/SuicidesStopAfterSuicide.json @@ -2,88 +2,61 @@ "SuicidesStopAfterSuicide" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/SuicidesStopAfterSuicideFiller.json" }, "env" : { - "currentCoinbase" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0186a0", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x8fa1ffcea85df2b5017dc0f74dc680bd0c308fdd19b0d74c2a8fcb4b99d27f61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "code" : "0x6001ff", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x8fa1ffcea85df2b5017dc0f74dc680bd0c308fdd19b0d74c2a8fcb4b99d27f61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc9bf412e9770d2c1500b0be40f27b91d966320ea211c96f34faba0d4d7fb2c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc9bf412e9770d2c1500b0be40f27b91d966320ea211c96f34faba0d4d7fb2c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8fa1ffcea85df2b5017dc0f74dc680bd0c308fdd19b0d74c2a8fcb4b99d27f61", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x0456", - "code" : "0x6001ff", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1110", + "code" : "{(SELFDESTRUCT 0x0000000000000000000000000000000000000001)}", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x01dc90", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "122000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x2710", - "code" : "0x6000ff", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10000", + "code" : "{(SELFDESTRUCT 0) (CALL 30000 0x0000000000000000000000000000000000000000 0 0 0 0 0) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +66,14 @@ "" ], "gasLimit" : [ - "0x0146f4" + "83700" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "c94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/TransactionDataCosts652.json b/GeneralStateTests/stTransactionTest/TransactionDataCosts652.json index eb4cbfdd8..2b5f1f4a4 100644 --- a/GeneralStateTests/stTransactionTest/TransactionDataCosts652.json +++ b/GeneralStateTests/stTransactionTest/TransactionDataCosts652.json @@ -2,74 +2,39 @@ "TransactionDataCosts652" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/TransactionDataCosts652Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2df913175b2031af6b36c9da0197f325e1c175b774b3338d86319a5bdf9ec257", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "21652" } } - ], - "EIP158" : [ - { - "hash" : "0x8dca95be8393071025319ae78d7804a6ec176d716711c8bff783950d11cad4bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2df913175b2031af6b36c9da0197f325e1c175b774b3338d86319a5bdf9ec257", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2df913175b2031af6b36c9da0197f325e1c175b774b3338d86319a5bdf9ec257", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8dca95be8393071025319ae78d7804a6ec176d716711c8bff783950d11cad4bb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +44,14 @@ "0x00000000000000000000112233445566778f32" ], "gasLimit" : [ - "0x55f0" + "22000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stTransactionTest/TransactionFromCoinbaseHittingBlockGasLimit.json b/GeneralStateTests/stTransactionTest/TransactionFromCoinbaseHittingBlockGasLimit.json index d8bfa8844..905abb2f6 100644 --- a/GeneralStateTests/stTransactionTest/TransactionFromCoinbaseHittingBlockGasLimit.json +++ b/GeneralStateTests/stTransactionTest/TransactionFromCoinbaseHittingBlockGasLimit.json @@ -2,74 +2,39 @@ "TransactionFromCoinbaseHittingBlockGasLimit" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/TransactionFromCoinbaseHittingBlockGasLimitFiller.json" }, "env" : { - "currentCoinbase" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x526c", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "21100", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5438f629c851f45088db1f479003aa8517c0cbe106008db7a44f63ea4a1f3967", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "10" } } - ], - "EIP158" : [ - { - "hash" : "0x5438f629c851f45088db1f479003aa8517c0cbe106008db7a44f63ea4a1f3967", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5438f629c851f45088db1f479003aa8517c0cbe106008db7a44f63ea4a1f3967", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5438f629c851f45088db1f479003aa8517c0cbe106008db7a44f63ea4a1f3967", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5438f629c851f45088db1f479003aa8517c0cbe106008db7a44f63ea4a1f3967", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +44,14 @@ "" ], "gasLimit" : [ - "0x526c" + "21100" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/TransactionFromCoinbaseHittingBlockGasLimit1.json b/GeneralStateTests/stTransactionTest/TransactionFromCoinbaseHittingBlockGasLimit1.json index 2a148af33..cfa6aca06 100644 --- a/GeneralStateTests/stTransactionTest/TransactionFromCoinbaseHittingBlockGasLimit1.json +++ b/GeneralStateTests/stTransactionTest/TransactionFromCoinbaseHittingBlockGasLimit1.json @@ -2,74 +2,40 @@ "TransactionFromCoinbaseHittingBlockGasLimit1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/TransactionFromCoinbaseHittingBlockGasLimit1Filler.json" }, "env" : { - "currentCoinbase" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x526c", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "21100", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +45,14 @@ "" ], "gasLimit" : [ - "0x526d" + "21101" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/TransactionFromCoinbaseNotEnoughFounds.json b/GeneralStateTests/stTransactionTest/TransactionFromCoinbaseNotEnoughFounds.json index 738e7d76a..5d4a9caab 100644 --- a/GeneralStateTests/stTransactionTest/TransactionFromCoinbaseNotEnoughFounds.json +++ b/GeneralStateTests/stTransactionTest/TransactionFromCoinbaseNotEnoughFounds.json @@ -2,74 +2,39 @@ "TransactionFromCoinbaseNotEnoughFounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/TransactionFromCoinbaseNotEnoughFoundsFiller.json" }, "env" : { - "currentCoinbase" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "currentCoinbase" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x01adb0", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "110000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xaaf022c10376f6d4542ba13ab000910f5aea0ea458395b8f074a64006f6e1ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "22000" } } - ], - "EIP158" : [ - { - "hash" : "0xaaf022c10376f6d4542ba13ab000910f5aea0ea458395b8f074a64006f6e1ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaaf022c10376f6d4542ba13ab000910f5aea0ea458395b8f074a64006f6e1ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaaf022c10376f6d4542ba13ab000910f5aea0ea458395b8f074a64006f6e1ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaaf022c10376f6d4542ba13ab000910f5aea0ea458395b8f074a64006f6e1ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x55f0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "22000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +44,14 @@ "" ], "gasLimit" : [ - "0x5460" + "21600" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x1388" + "5000" ] } } diff --git a/GeneralStateTests/stTransactionTest/TransactionNonceCheck.json b/GeneralStateTests/stTransactionTest/TransactionNonceCheck.json index 5b0af16d2..2637daf8c 100644 --- a/GeneralStateTests/stTransactionTest/TransactionNonceCheck.json +++ b/GeneralStateTests/stTransactionTest/TransactionNonceCheck.json @@ -2,74 +2,39 @@ "TransactionNonceCheck" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/TransactionNonceCheckFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfdb4ec6fbe1f71e310dcbd7efaa690f8e6acf00bb5bf7940b39af182cd5f92aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "10" } } - ], - "EIP158" : [ - { - "hash" : "0xfdb4ec6fbe1f71e310dcbd7efaa690f8e6acf00bb5bf7940b39af182cd5f92aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfdb4ec6fbe1f71e310dcbd7efaa690f8e6acf00bb5bf7940b39af182cd5f92aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfdb4ec6fbe1f71e310dcbd7efaa690f8e6acf00bb5bf7940b39af182cd5f92aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfdb4ec6fbe1f71e310dcbd7efaa690f8e6acf00bb5bf7940b39af182cd5f92aa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x0a", + "nonce" : "10", "storage" : { } } @@ -79,14 +44,14 @@ "" ], "gasLimit" : [ - "0x55f0" + "22000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/TransactionNonceCheck2.json b/GeneralStateTests/stTransactionTest/TransactionNonceCheck2.json index 1bf1c7082..dad192aeb 100644 --- a/GeneralStateTests/stTransactionTest/TransactionNonceCheck2.json +++ b/GeneralStateTests/stTransactionTest/TransactionNonceCheck2.json @@ -2,74 +2,39 @@ "TransactionNonceCheck2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/TransactionNonceCheck2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa3e1c133a5a51b03399ed9ad0380f3182e9e18322f232b816dd4b9094f871e1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +44,14 @@ "" ], "gasLimit" : [ - "0x55f0" + "22000" ], - "gasPrice" : "0x01", - "nonce" : "0x0a", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "10", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0a" + "10" ] } } diff --git a/GeneralStateTests/stTransactionTest/TransactionSendingToEmpty.json b/GeneralStateTests/stTransactionTest/TransactionSendingToEmpty.json index e4ee87788..963d6df5c 100644 --- a/GeneralStateTests/stTransactionTest/TransactionSendingToEmpty.json +++ b/GeneralStateTests/stTransactionTest/TransactionSendingToEmpty.json @@ -2,74 +2,63 @@ "TransactionSendingToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/TransactionSendingToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x53f5b84edd82703a225e53e9ae3639729eb8e337098531456998af602b0ded0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "code" : "0x" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x01d55964b2d7eb43d050c308c5835cbc9d0d876a35fd855f063ca4fc424c4e28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcf29b86efa1b7f5f999ef519fcc921062924d5c14d78baf491252fbf5a0d85b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x53f5b84edd82703a225e53e9ae3639729eb8e337098531456998af602b0ded0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "code" : "0x" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x01d55964b2d7eb43d050c308c5835cbc9d0d876a35fd855f063ca4fc424c4e28", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +68,14 @@ "" ], "gasLimit" : [ - "0xcf08" + "53000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "" ] } } diff --git a/GeneralStateTests/stTransactionTest/TransactionSendingToZero.json b/GeneralStateTests/stTransactionTest/TransactionSendingToZero.json index 91f5ecb49..4c9e4419d 100644 --- a/GeneralStateTests/stTransactionTest/TransactionSendingToZero.json +++ b/GeneralStateTests/stTransactionTest/TransactionSendingToZero.json @@ -2,74 +2,42 @@ "TransactionSendingToZero" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/TransactionSendingToZeroFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb7e0e61fec1cd4c8eee3e2f5e571716440f43a55bd2d2068fc276cb20c0bf5f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xb7e0e61fec1cd4c8eee3e2f5e571716440f43a55bd2d2068fc276cb20c0bf5f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb7e0e61fec1cd4c8eee3e2f5e571716440f43a55bd2d2068fc276cb20c0bf5f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb7e0e61fec1cd4c8eee3e2f5e571716440f43a55bd2d2068fc276cb20c0bf5f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb7e0e61fec1cd4c8eee3e2f5e571716440f43a55bd2d2068fc276cb20c0bf5f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +47,14 @@ "" ], "gasLimit" : [ - "0x61a8" + "25000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x0000000000000000000000000000000000000000", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0000000000000000000000000000000000000000", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stTransactionTest/TransactionToAddressh160minusOne.json b/GeneralStateTests/stTransactionTest/TransactionToAddressh160minusOne.json index 135dd40bf..c4484ab9a 100644 --- a/GeneralStateTests/stTransactionTest/TransactionToAddressh160minusOne.json +++ b/GeneralStateTests/stTransactionTest/TransactionToAddressh160minusOne.json @@ -2,74 +2,39 @@ "TransactionToAddressh160minusOne" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/TransactionToAddressh160minusOneFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0186a0", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc406c576c227c1f4e33a5044b87c619a494004546ce997d2b424d70609ac32c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0xc406c576c227c1f4e33a5044b87c619a494004546ce997d2b424d70609ac32c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc406c576c227c1f4e33a5044b87c619a494004546ce997d2b424d70609ac32c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc406c576c227c1f4e33a5044b87c619a494004546ce997d2b424d70609ac32c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc406c576c227c1f4e33a5044b87c619a494004546ce997d2b424d70609ac32c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0f4240", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +44,14 @@ "" ], "gasLimit" : [ - "0x55f0" + "22000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "0xffffffffffffffffffffffffffffffffffffffff", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stTransactionTest/TransactionToItself.json b/GeneralStateTests/stTransactionTest/TransactionToItself.json index 07aedbbbf..7448ca484 100644 --- a/GeneralStateTests/stTransactionTest/TransactionToItself.json +++ b/GeneralStateTests/stTransactionTest/TransactionToItself.json @@ -2,74 +2,40 @@ "TransactionToItself" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/TransactionToItselfFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x387018dfa6e56ba2a1b7fc2641d6b3377fd589b23a4b8bde3966423afbd69cae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "79000", + "nonce" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x387018dfa6e56ba2a1b7fc2641d6b3377fd589b23a4b8bde3966423afbd69cae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x387018dfa6e56ba2a1b7fc2641d6b3377fd589b23a4b8bde3966423afbd69cae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x387018dfa6e56ba2a1b7fc2641d6b3377fd589b23a4b8bde3966423afbd69cae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x387018dfa6e56ba2a1b7fc2641d6b3377fd589b23a4b8bde3966423afbd69cae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0186a0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +45,14 @@ "" ], "gasLimit" : [ - "0x61a8" + "25000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stTransactionTest/TransactionToItselfNotEnoughFounds.json b/GeneralStateTests/stTransactionTest/TransactionToItselfNotEnoughFounds.json index 1a4dc087b..c2a13c327 100644 --- a/GeneralStateTests/stTransactionTest/TransactionToItselfNotEnoughFounds.json +++ b/GeneralStateTests/stTransactionTest/TransactionToItselfNotEnoughFounds.json @@ -2,74 +2,39 @@ "TransactionToItselfNotEnoughFounds" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/TransactionToItselfNotEnoughFoundsFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xaaf022c10376f6d4542ba13ab000910f5aea0ea458395b8f074a64006f6e1ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "22000" } } - ], - "EIP158" : [ - { - "hash" : "0xaaf022c10376f6d4542ba13ab000910f5aea0ea458395b8f074a64006f6e1ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaaf022c10376f6d4542ba13ab000910f5aea0ea458395b8f074a64006f6e1ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaaf022c10376f6d4542ba13ab000910f5aea0ea458395b8f074a64006f6e1ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaaf022c10376f6d4542ba13ab000910f5aea0ea458395b8f074a64006f6e1ec2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x55f0", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "22000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +44,14 @@ "" ], "gasLimit" : [ - "0x5460" + "21600" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x1388" + "5000" ] } } diff --git a/GeneralStateTests/stTransactionTest/UserTransactionGasLimitIsTooLowWhenZeroCost.json b/GeneralStateTests/stTransactionTest/UserTransactionGasLimitIsTooLowWhenZeroCost.json index 1e0263955..830eed242 100644 --- a/GeneralStateTests/stTransactionTest/UserTransactionGasLimitIsTooLowWhenZeroCost.json +++ b/GeneralStateTests/stTransactionTest/UserTransactionGasLimitIsTooLowWhenZeroCost.json @@ -2,74 +2,40 @@ "UserTransactionGasLimitIsTooLowWhenZeroCost" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/UserTransactionGasLimitIsTooLowWhenZeroCostFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x05f5e100", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "100000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5bbf78f4da91159120044b2cee74ebd400cc5a2b5f54e7d9833afa156ad35d6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "33000", + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0x5bbf78f4da91159120044b2cee74ebd400cc5a2b5f54e7d9833afa156ad35d6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5bbf78f4da91159120044b2cee74ebd400cc5a2b5f54e7d9833afa156ad35d6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5bbf78f4da91159120044b2cee74ebd400cc5a2b5f54e7d9833afa156ad35d6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5bbf78f4da91159120044b2cee74ebd400cc5a2b5f54e7d9833afa156ad35d6c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x80e8", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "33000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +45,14 @@ "" ], "gasLimit" : [ - "0x0c" + "12" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0384" + "900" ] } } diff --git a/GeneralStateTests/stTransactionTest/UserTransactionZeroCost.json b/GeneralStateTests/stTransactionTest/UserTransactionZeroCost.json index 67e5d3a1e..48513b1a9 100644 --- a/GeneralStateTests/stTransactionTest/UserTransactionZeroCost.json +++ b/GeneralStateTests/stTransactionTest/UserTransactionZeroCost.json @@ -2,74 +2,91 @@ "UserTransactionZeroCost" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/UserTransactionZeroCostFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa2bff976f733022a4932ccfca0b8049b1569bfa83309e50b1fe698ec3d8e3c74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "42100", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "900" } } - ], - "EIP158" : [ - { - "hash" : "0x6fa96e06aa7cafbd86e0d99b4cbd4b2924eb3e5c8d66eccba3b11a2c93907652", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa2bff976f733022a4932ccfca0b8049b1569bfa83309e50b1fe698ec3d8e3c74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "42100", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "900" } } - ], - "Homestead" : [ - { - "hash" : "0xa2bff976f733022a4932ccfca0b8049b1569bfa83309e50b1fe698ec3d8e3c74", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "42100", + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "900" } } - ], - "Metropolis" : [ - { - "hash" : "0x6fa96e06aa7cafbd86e0d99b4cbd4b2924eb3e5c8d66eccba3b11a2c93907652", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xa7f8", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "43000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +96,14 @@ "" ], "gasLimit" : [ - "0x891c" + "35100" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0384" + "900" ] } } diff --git a/GeneralStateTests/stTransactionTest/UserTransactionZeroCostWithData.json b/GeneralStateTests/stTransactionTest/UserTransactionZeroCostWithData.json index 23d39512c..c55e0f43a 100644 --- a/GeneralStateTests/stTransactionTest/UserTransactionZeroCostWithData.json +++ b/GeneralStateTests/stTransactionTest/UserTransactionZeroCostWithData.json @@ -2,114 +2,88 @@ "UserTransactionZeroCostWithData" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/UserTransactionZeroCostWithDataFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3a5e8a1cf1708fdf3de65990a78901893ff686d889e78b387e039206bb41b1ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3a5e8a1cf1708fdf3de65990a78901893ff686d889e78b387e039206bb41b1ba", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0xa58bfc327c55e66f416e226023e67a47dd01e8f1c9e370379ec936551dd4aeb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa58bfc327c55e66f416e226023e67a47dd01e8f1c9e370379ec936551dd4aeb1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3a5e8a1cf1708fdf3de65990a78901893ff686d889e78b387e039206bb41b1ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x3a5e8a1cf1708fdf3de65990a78901893ff686d889e78b387e039206bb41b1ba", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "900" } } - ], - "Homestead" : [ - { - "hash" : "0x3a5e8a1cf1708fdf3de65990a78901893ff686d889e78b387e039206bb41b1ba", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x3a5e8a1cf1708fdf3de65990a78901893ff686d889e78b387e039206bb41b1ba", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP150" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "nonce" : "0" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "900" } } - ], - "Metropolis" : [ - { - "hash" : "0xa58bfc327c55e66f416e226023e67a47dd01e8f1c9e370379ec936551dd4aeb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xa58bfc327c55e66f416e226023e67a47dd01e8f1c9e370379ec936551dd4aeb1", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP158" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "900" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x020788", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "133000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -119,15 +93,15 @@ "0x3240349548983454" ], "gasLimit" : [ - "0x7f58", - "0xea60" + "32600", + "60000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x0384" + "900" ] } } diff --git a/GeneralStateTests/stTransactionTest/zeroSigTransacrionCreate.json b/GeneralStateTests/stTransactionTest/zeroSigTransacrionCreate.json index 3edccdf2e..5c7703ef2 100644 --- a/GeneralStateTests/stTransactionTest/zeroSigTransacrionCreate.json +++ b/GeneralStateTests/stTransactionTest/zeroSigTransacrionCreate.json @@ -2,514 +2,138 @@ "zeroSigTransacrionCreate" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/zeroSigTransacrionCreateFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "b318d82866cd9f7d7a55dbbf0a80f787b72bf97c" : { + "shouldnotexist" : "1" + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 1 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b318d82866cd9f7d7a55dbbf0a80f787b72bf97c" : { + "shouldnotexist" : "1" + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Frontier" : [ - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 0 + ], + "gas" : [ + 1, + 2 + ], + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b318d82866cd9f7d7a55dbbf0a80f787b72bf97c" : { + "shouldnotexist" : "1" + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Homestead" : [ - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 0 + ], + "gas" : [ + 0, + 3 + ], + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b318d82866cd9f7d7a55dbbf0a80f787b72bf97c" : { + "balance" : "0x00", + "nonce" : "0x01" + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Metropolis" : [ - { - "hash" : "0x0673ca46ef9ac57cee329d3a20161c6dd6b5722b59191335976819b2136e2682", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0673ca46ef9ac57cee329d3a20161c6dd6b5722b59191335976819b2136e2682", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x8d486aa40ba989a61868aa75f97b3b7e722cec7963356ae46dde3e4b48b6b94d", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 2 + ], + "gas" : [ + 3 + ], + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b318d82866cd9f7d7a55dbbf0a80f787b72bf97c" : { + "nonce" : "0x01", + "storage" : { + "0x00" : "0xffffffffffffffffffffffffffffffffffffffff", + "0x01" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ] - }, + } + ], "pre" : { - "0xffffffffffffffffffffffffffffffffffffffff" : { - "balance" : "0x0186a0", + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -521,19 +145,19 @@ "0x3260005533600155" ], "gasLimit" : [ - "0xea60", - "0x4e20", - "0x5208", - "0x01d8a8" + "60000", + "20000", + "21000", + "121000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "r" : "0x00", - "s" : "0x00", + "gasPrice" : "0", + "nonce" : "0", + "r" : "0", + "s" : "0", "to" : "", - "v" : "0x01", + "v" : "1", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stTransactionTest/zeroSigTransacrionCreatePrice0.json b/GeneralStateTests/stTransactionTest/zeroSigTransacrionCreatePrice0.json index e4e621c32..c656e0456 100644 --- a/GeneralStateTests/stTransactionTest/zeroSigTransacrionCreatePrice0.json +++ b/GeneralStateTests/stTransactionTest/zeroSigTransacrionCreatePrice0.json @@ -2,514 +2,139 @@ "zeroSigTransacrionCreatePrice0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/zeroSigTransacrionCreatePrice0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "96b19ced219f86286c413422a6698a7439d1fa52" : { + "shouldnotexist" : "1" + }, + "b318d82866cd9f7d7a55dbbf0a80f787b72bf97c" : { + "shouldnotexist" : "1" + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 1 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b318d82866cd9f7d7a55dbbf0a80f787b72bf97c" : { + "shouldnotexist" : "1" + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Frontier" : [ - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 0 + ], + "gas" : [ + 1, + 2 + ], + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b318d82866cd9f7d7a55dbbf0a80f787b72bf97c" : { + "shouldnotexist" : "1" + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Homestead" : [ - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 0 + ], + "gas" : [ + 0, + 3 + ], + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b318d82866cd9f7d7a55dbbf0a80f787b72bf97c" : { + "balance" : "0x00", + "nonce" : "0x01" + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Metropolis" : [ - { - "hash" : "0xfb2ea6e0ff1e07388976b5a96337d9b1fcb37f5a01559b06823e70a022f1c2c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xfb2ea6e0ff1e07388976b5a96337d9b1fcb37f5a01559b06823e70a022f1c2c9", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xfb2ea6e0ff1e07388976b5a96337d9b1fcb37f5a01559b06823e70a022f1c2c9", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x667bef7fd0ad2f1be7a6f8ab214badcb737770ddd18d70ffc424e9a25a27f031", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xfb2ea6e0ff1e07388976b5a96337d9b1fcb37f5a01559b06823e70a022f1c2c9", - "indexes" : { - "data" : 2, - "gas" : 3, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 2 + ], + "gas" : [ + 0, + 3 + ], + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b318d82866cd9f7d7a55dbbf0a80f787b72bf97c" : { + "balance" : "0x00", + "nonce" : "0x01" + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ] - }, + } + ], "pre" : { - "0xffffffffffffffffffffffffffffffffffffffff" : { - "balance" : "0x64", + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -521,19 +146,19 @@ "0x6000" ], "gasLimit" : [ - "0xea60", - "0x4e20", - "0x5208", - "0x01d8a8" + "60000", + "20000", + "21000", + "121000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "r" : "0x00", - "s" : "0x00", + "gasPrice" : "0", + "nonce" : "0", + "r" : "0", + "s" : "0", "to" : "", - "v" : "0x01", + "v" : "1", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stTransactionTest/zeroSigTransaction.json b/GeneralStateTests/stTransactionTest/zeroSigTransaction.json index 883a767ed..09f472249 100644 --- a/GeneralStateTests/stTransactionTest/zeroSigTransaction.json +++ b/GeneralStateTests/stTransactionTest/zeroSigTransaction.json @@ -2,1001 +2,122 @@ "zeroSigTransaction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/zeroSigTransactionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 2 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : [ + 1, + 2 + ], + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 2 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 2 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Homestead" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 2 + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 0, + 3 + ], + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Metropolis" : [ - { - "hash" : "0xbb025b193860ec94ae49ccf6eb385746db95e92602013b3b70411666fa2007e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xbb025b193860ec94ae49ccf6eb385746db95e92602013b3b70411666fa2007e2", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 - } - }, - { - "hash" : "0xbb025b193860ec94ae49ccf6eb385746db95e92602013b3b70411666fa2007e2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xbb025b193860ec94ae49ccf6eb385746db95e92602013b3b70411666fa2007e2", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 2 + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 0 + ], + "value" : 1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ] - }, + } + ], "pre" : { - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6001600055", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] 1 }", + "nonce" : "0", "storage" : { } }, - "0xffffffffffffffffffffffffffffffffffffffff" : { - "balance" : "0x0186a0", + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -1007,21 +128,21 @@ "0x1122334455667788990011223344556677889910" ], "gasLimit" : [ - "0xea60", - "0x4e20", - "0x5208", - "0x01d8a8" + "60000", + "20000", + "21000", + "121000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "r" : "0x00", - "s" : "0x00", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "v" : "0x01", + "gasPrice" : "0", + "nonce" : "0", + "r" : "0", + "s" : "0", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "v" : "1", "value" : [ - "0x00", - "0x01", - "0x0186a0" + "0", + "1", + "100000" ] } } diff --git a/GeneralStateTests/stTransactionTest/zeroSigTransaction0Price.json b/GeneralStateTests/stTransactionTest/zeroSigTransaction0Price.json index 02d459dd6..0c0b2f929 100644 --- a/GeneralStateTests/stTransactionTest/zeroSigTransaction0Price.json +++ b/GeneralStateTests/stTransactionTest/zeroSigTransaction0Price.json @@ -2,681 +2,123 @@ "zeroSigTransaction0Price" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/zeroSigTransaction0PriceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : [ + 1, + 2 + ], + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Homestead" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 0, + 3 + ], + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Metropolis" : [ - { - "hash" : "0xbb025b193860ec94ae49ccf6eb385746db95e92602013b3b70411666fa2007e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xbb025b193860ec94ae49ccf6eb385746db95e92602013b3b70411666fa2007e2", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xbb025b193860ec94ae49ccf6eb385746db95e92602013b3b70411666fa2007e2", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xbb025b193860ec94ae49ccf6eb385746db95e92602013b3b70411666fa2007e2", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 0, + 3 + ], + "value" : 1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ] - }, + } + ], "pre" : { - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6001600055", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] 1 }", + "nonce" : "0", "storage" : { } }, - "0xffffffffffffffffffffffffffffffffffffffff" : { - "balance" : "0x0186a0", + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -687,20 +129,20 @@ "0x1122334455667788990011223344556677889910" ], "gasLimit" : [ - "0xea60", - "0x4e20", - "0x5208", - "0x01d8a8" + "60000", + "20000", + "21000", + "121000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "r" : "0x00", - "s" : "0x00", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "v" : "0x01", + "gasPrice" : "0", + "nonce" : "0", + "r" : "0", + "s" : "0", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "v" : "1", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stTransactionTest/zeroSigTransactionInvChainID.json b/GeneralStateTests/stTransactionTest/zeroSigTransactionInvChainID.json index 2f8d64f39..38a4b713a 100644 --- a/GeneralStateTests/stTransactionTest/zeroSigTransactionInvChainID.json +++ b/GeneralStateTests/stTransactionTest/zeroSigTransactionInvChainID.json @@ -2,521 +2,51 @@ "zeroSigTransactionInvChainID" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/zeroSigTransactionInvChainIDFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - } - ] - }, + } + ], "pre" : { - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6001600055", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] 1 }", + "nonce" : "0", "storage" : { } }, - "0xffffffffffffffffffffffffffffffffffffffff" : { - "balance" : "0x0186a0", + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -527,19 +57,19 @@ "0x1122334455667788990011223344556677889910" ], "gasLimit" : [ - "0xea60", - "0x5208", - "0x01d8a8" + "60000", + "21000", + "121000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "r" : "0x00", - "s" : "0x00", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "v" : "0x00", + "gasPrice" : "0", + "nonce" : "0", + "r" : "0", + "s" : "0", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "v" : "0", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stTransactionTest/zeroSigTransactionInvNonce.json b/GeneralStateTests/stTransactionTest/zeroSigTransactionInvNonce.json index 3d76bed01..a12362f35 100644 --- a/GeneralStateTests/stTransactionTest/zeroSigTransactionInvNonce.json +++ b/GeneralStateTests/stTransactionTest/zeroSigTransactionInvNonce.json @@ -2,521 +2,74 @@ "zeroSigTransactionInvNonce" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/zeroSigTransactionInvNonceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Metropolis" : [ - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xc60c9d1b3edf32c1506b900ec78a46004a1557be9703689f9e901e1709518e76", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ] - }, + } + ], "pre" : { - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6001600055", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] 1 }", + "nonce" : "0", "storage" : { } }, - "0xffffffffffffffffffffffffffffffffffffffff" : { - "balance" : "0x0186a0", + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -527,19 +80,19 @@ "0x1122334455667788990011223344556677889910" ], "gasLimit" : [ - "0xea60", - "0x5208", - "0x01d8a8" + "60000", + "21000", + "121000" ], - "gasPrice" : "0x00", - "nonce" : "0x0a", - "r" : "0x00", - "s" : "0x00", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "v" : "0x01", + "gasPrice" : "0", + "nonce" : "10", + "r" : "0", + "s" : "0", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "v" : "1", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stTransactionTest/zeroSigTransactionInvNonce2.json b/GeneralStateTests/stTransactionTest/zeroSigTransactionInvNonce2.json index d60b9ea9e..b98a973fc 100644 --- a/GeneralStateTests/stTransactionTest/zeroSigTransactionInvNonce2.json +++ b/GeneralStateTests/stTransactionTest/zeroSigTransactionInvNonce2.json @@ -2,521 +2,74 @@ "zeroSigTransactionInvNonce2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/zeroSigTransactionInvNonce2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - } - ], - "EIP158" : [ - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP158", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe59e520bda82a64dc46cf9880d05f8576e98428c280469c192a2db507ac006c0", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "1" } } - ] - }, + } + ], "pre" : { - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6001600055", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] 1 }", + "nonce" : "0", "storage" : { } }, - "0xffffffffffffffffffffffffffffffffffffffff" : { - "balance" : "0x0186a0", + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", "code" : "", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } } @@ -527,19 +80,19 @@ "0x1122334455667788990011223344556677889910" ], "gasLimit" : [ - "0xea60", - "0x5208", - "0x01d8a8" + "60000", + "21000", + "121000" ], - "gasPrice" : "0x00", - "nonce" : "0x01", - "r" : "0x00", - "s" : "0x00", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "v" : "0x01", + "gasPrice" : "0", + "nonce" : "1", + "r" : "0", + "s" : "0", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "v" : "1", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stTransactionTest/zeroSigTransactionOOG.json b/GeneralStateTests/stTransactionTest/zeroSigTransactionOOG.json index 8fe8e7701..0ecaf37a5 100644 --- a/GeneralStateTests/stTransactionTest/zeroSigTransactionOOG.json +++ b/GeneralStateTests/stTransactionTest/zeroSigTransactionOOG.json @@ -2,681 +2,126 @@ "zeroSigTransactionOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/zeroSigTransactionOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : [ + 1, + 2 + ], + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "EIP158" : [ - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 + }, + { + "indexes" : { + "data" : 0, + "gas" : [ + 1 + ], + "value" : -1 + }, + "network" : [ + "EIP158", + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Homestead" : [ - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 + }, + { + "indexes" : { + "data" : 1, + "gas" : [ + 1, + 2 + ], + "value" : -1 + }, + "network" : [ + "EIP158", + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "nonce" : "0" } } - ], - "Metropolis" : [ - { - "hash" : "0x7bfed3b071d3fde42caf517a24c3a4361124eff0c63743de92b847eeb162d526", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xd506140af993cf273f1e9984a13cd06c1d469640180a5b5a78907e75ae230098", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x7bfed3b071d3fde42caf517a24c3a4361124eff0c63743de92b847eeb162d526", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0x7bfed3b071d3fde42caf517a24c3a4361124eff0c63743de92b847eeb162d526", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x7bfed3b071d3fde42caf517a24c3a4361124eff0c63743de92b847eeb162d526", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xe2830d5ee03749aa8db4754366e73e851f3f7bf3aa3ce258f75a10af526ad0ed", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 3, + 0 + ], + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6001600055", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]] 1 }", + "nonce" : "0", "storage" : { } }, - "0xffffffffffffffffffffffffffffffffffffffff" : { - "balance" : "0x00", + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -687,20 +132,20 @@ "0x1122334455667788990011223344556677889910" ], "gasLimit" : [ - "0xea60", - "0x4e20", - "0x5208", - "0x01d8a8" + "60000", + "20000", + "21000", + "121000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "r" : "0x00", - "s" : "0x00", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", - "v" : "0x01", + "gasPrice" : "0", + "nonce" : "0", + "r" : "0", + "s" : "0", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "v" : "1", "value" : [ - "0x00", - "0x01" + "0", + "1" ] } } diff --git a/GeneralStateTests/stTransactionTest/zeroSigTransactionOrigin.json b/GeneralStateTests/stTransactionTest/zeroSigTransactionOrigin.json index 47deb242c..3f21c6752 100644 --- a/GeneralStateTests/stTransactionTest/zeroSigTransactionOrigin.json +++ b/GeneralStateTests/stTransactionTest/zeroSigTransactionOrigin.json @@ -2,521 +2,109 @@ "zeroSigTransactionOrigin" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/zeroSigTransactionOriginFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 - } - } - ], - "EIP158" : [ - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : [ + 0, + 3 + ], + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0xffffffffffffffffffffffffffffffffffffffff", + "0x01" : "0xffffffffffffffffffffffffffffffffffffffff" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 1, + 2 + ], + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0", + "0x01" : "0" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xf2399d4632dfd83a0e73d9612af1e7b9c251d135bc3aa2762a337f6f058bc780", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xf2399d4632dfd83a0e73d9612af1e7b9c251d135bc3aa2762a337f6f058bc780", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xd3c4d7538844e1ee5ffe42c00f13827eeee3fe619c9bd89b5dbbad7b713e106f", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0186a0", - "code" : "0x3260005533600155", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "100000", + "code" : "{ [[0]] (ORIGIN) [[1]] (CALLER) }", + "nonce" : "0", "storage" : { } }, - "0xffffffffffffffffffffffffffffffffffffffff" : { - "balance" : "0x0186a0", + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -526,21 +114,21 @@ "" ], "gasLimit" : [ - "0x011170", - "0x4e20", - "0x5208", - "0x01d8a8" + "70000", + "20000", + "21000", + "121000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "r" : "0x00", - "s" : "0x00", - "to" : "0x1000000000000000000000000000000000000000", - "v" : "0x01", + "gasPrice" : "0", + "nonce" : "0", + "r" : "0", + "s" : "0", + "to" : "1000000000000000000000000000000000000000", + "v" : "1", "value" : [ - "0x00", - "0x01", - "0x0186a0" + "0", + "1", + "100000" ] } } diff --git a/GeneralStateTests/stTransactionTest/zeroSigTransactionToZero.json b/GeneralStateTests/stTransactionTest/zeroSigTransactionToZero.json index c3f130520..2dc753cac 100644 --- a/GeneralStateTests/stTransactionTest/zeroSigTransactionToZero.json +++ b/GeneralStateTests/stTransactionTest/zeroSigTransactionToZero.json @@ -2,994 +2,65 @@ "zeroSigTransactionToZero" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/zeroSigTransactionToZeroFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 2 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 2 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 2 - } - } - ], - "Homestead" : [ - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 2 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 0, - "gas" : 3, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 2 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 0 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 1 - } - }, - { - "hash" : "0xebdc9f1983a0ddb5c876542cf78eea10f684f4220f47be93c7505e3c3c7b6a0c", - "indexes" : { - "data" : 1, - "gas" : 3, - "value" : 2 - } - } - ] - }, + } + ], "pre" : { - "0xffffffffffffffffffffffffffffffffffffffff" : { - "balance" : "0x0186a0", + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -1000,21 +71,21 @@ "0x1122334455667788990011223344556677889910" ], "gasLimit" : [ - "0xea60", - "0x4e20", - "0x5208", - "0x01d8a8" + "60000", + "20000", + "21000", + "121000" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "r" : "0x00", - "s" : "0x00", - "to" : "0xffffffffffffffffffffffffffffffffffffffff", - "v" : "0x01", + "gasPrice" : "0", + "nonce" : "0", + "r" : "0", + "s" : "0", + "to" : "ffffffffffffffffffffffffffffffffffffffff", + "v" : "1", "value" : [ - "0x00", - "0x01", - "0x0186a0" + "0", + "1", + "100000" ] } } diff --git a/GeneralStateTests/stTransactionTest/zeroSigTransactionToZero2.json b/GeneralStateTests/stTransactionTest/zeroSigTransactionToZero2.json index 553806994..3ce7ea3aa 100644 --- a/GeneralStateTests/stTransactionTest/zeroSigTransactionToZero2.json +++ b/GeneralStateTests/stTransactionTest/zeroSigTransactionToZero2.json @@ -2,782 +2,260 @@ "zeroSigTransactionToZero2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransactionTest/zeroSigTransactionToZero2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 1 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : 1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00" + } + }, + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00" + } + }, + "3000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 1 + }, + { + "indexes" : { + "data" : [ + 0 + ], + "gas" : [ + 0 + ], + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0xffffffffffffffffffffffffffffffffffffffff", + "0x03" : "0xa000000000000000000000000000000000000000" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Frontier" : [ - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 1 + }, + { + "indexes" : { + "data" : [ + 1 + ], + "gas" : [ + 0 + ], + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0xffffffffffffffffffffffffffffffffffffffff", + "0x03" : "0xa000000000000000000000000000000000000000" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 1 + }, + { + "indexes" : { + "data" : [ + 2 + ], + "gas" : [ + 0 + ], + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "3000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x01", + "0x02" : "0xffffffffffffffffffffffffffffffffffffffff", + "0x03" : "0xa000000000000000000000000000000000000000" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x01" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xb6b2051acd54464e50d02d05cb0ab705337e273629d075b4d692ba91dccfd946", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 0, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0x2b9305b474b366b3d49b618a7861f3c08bfe13881dcb0b5416dd37842730ad82", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 1, - "gas" : 2, - "value" : 1 - } - }, - { - "hash" : "0xbb83b7336c217b045b81eea2fdf484d903403c3d5f06f99c6ebdc5e2d07e9df5", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 0 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 1, - "value" : 1 - } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 1, + 2 + ], + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "1000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00" + } + }, + "2000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00" + } + }, + "3000000000000000000000000000000000000000" : { + "storage" : { + "0x01" : "0x00" + } + }, + "a000000000000000000000000000000000000000" : { + "storage" : { + "0x00" : "0x00" + } + }, + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } } - }, - { - "hash" : "0x0328f2088fa252690e8de17ac980d00d786ebe12ffdf2940bbf76aebb69998af", - "indexes" : { - "data" : 2, - "gas" : 2, - "value" : 1 + } + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x1000000000000000000000000000000000000000" : { - "balance" : "0x0186a0", - "code" : "0x60006000600060003473ffffffffffffffffffffffffffffffffffffffff5af16001553260025533600355", - "nonce" : "0x00", + "1000000000000000000000000000000000000000" : { + "balance" : "100000", + "code" : "{ [[1]] (CALL (GAS) 0xffffffffffffffffffffffffffffffffffffffff (CALLVALUE) 0 0 0 0) [[2]] (ORIGIN) [[3]] (CALLER) }", + "nonce" : "0", "storage" : { } }, - "0x2000000000000000000000000000000000000000" : { - "balance" : "0x0186a0", - "code" : "0x60006000600060003473ffffffffffffffffffffffffffffffffffffffff5af26001553260025533600355", - "nonce" : "0x00", + "2000000000000000000000000000000000000000" : { + "balance" : "100000", + "code" : "{ [[1]] (CALLCODE (GAS) 0xffffffffffffffffffffffffffffffffffffffff (CALLVALUE) 0 0 0 0) [[2]] (ORIGIN) [[3]] (CALLER) }", + "nonce" : "0", "storage" : { } }, - "0x3000000000000000000000000000000000000000" : { - "balance" : "0x0186a0", - "code" : "0x600060006000600073ffffffffffffffffffffffffffffffffffffffff5af46001553260025533600355", - "nonce" : "0x00", + "3000000000000000000000000000000000000000" : { + "balance" : "100000", + "code" : "{ [[1]] (DELEGATECALL (GAS) 0xffffffffffffffffffffffffffffffffffffffff 0 0 0 0) [[2]] (ORIGIN) [[3]] (CALLER) }", + "nonce" : "0", "storage" : { } }, - "0xa000000000000000000000000000000000000000" : { - "balance" : "0x0186a0", - "code" : "0x6000600060006000346000355af1600055", - "nonce" : "0x00", + "a000000000000000000000000000000000000000" : { + "balance" : "100000", + "code" : "{ [[0]](CALL (GAS) (CALLDATALOAD 0) (CALLVALUE) 0 0 0 0) }", + "nonce" : "0", "storage" : { } }, - "0xffffffffffffffffffffffffffffffffffffffff" : { - "balance" : "0x0186a0", + "ffffffffffffffffffffffffffffffffffffffff" : { + "balance" : "100000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -789,19 +267,19 @@ "0x0000000000000000000000003000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x0927c0", - "0x4e20", - "0x00" + "600000", + "20000", + "0" ], - "gasPrice" : "0x00", - "nonce" : "0x00", - "r" : "0x00", - "s" : "0x00", - "to" : "0xa000000000000000000000000000000000000000", - "v" : "0x01", + "gasPrice" : "0", + "nonce" : "0", + "r" : "0", + "s" : "0", + "to" : "a000000000000000000000000000000000000000", + "v" : "1", "value" : [ - "0x00", - "0x64" + "0", + "100" ] } } diff --git a/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsAfter.json b/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsAfter.json index cae69da76..b1705fc6a 100644 --- a/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsAfter.json +++ b/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsAfter.json @@ -2,74 +2,86 @@ "createNameRegistratorPerTxsAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransitionTest/createNameRegistratorPerTxsAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x118c31", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1150001", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa8d7d1b8699bdceade31abacca281e2570461a3083f2767cbaad1ed08581cf2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x90fb2086df06776e9e04c413551df4b1aafcaeda3b3c5e754e16e65f75671bde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe0911f5b8035d9192581b3a82ddb0a32955e880088c49e92936789be2310ef90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x01", + "storage" : { + "0x01" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xa8d7d1b8699bdceade31abacca281e2570461a3083f2767cbaad1ed08581cf2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x01", + "storage" : { + "0x01" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x90fb2086df06776e9e04c413551df4b1aafcaeda3b3c5e754e16e65f75671bde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -81,12 +93,12 @@ "gasLimit" : [ "0x1314e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsAt.json b/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsAt.json index dafe64a76..3c67eb70d 100644 --- a/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsAt.json +++ b/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsAt.json @@ -2,74 +2,86 @@ "createNameRegistratorPerTxsAt" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransitionTest/createNameRegistratorPerTxsAtFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa8d7d1b8699bdceade31abacca281e2570461a3083f2767cbaad1ed08581cf2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x90fb2086df06776e9e04c413551df4b1aafcaeda3b3c5e754e16e65f75671bde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe0911f5b8035d9192581b3a82ddb0a32955e880088c49e92936789be2310ef90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x01", + "storage" : { + "0x01" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xa8d7d1b8699bdceade31abacca281e2570461a3083f2767cbaad1ed08581cf2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x01", + "storage" : { + "0x01" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x90fb2086df06776e9e04c413551df4b1aafcaeda3b3c5e754e16e65f75671bde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -81,12 +93,12 @@ "gasLimit" : [ "0x1314e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsBefore.json b/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsBefore.json index 5ecc5d94d..245a5af24 100644 --- a/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsBefore.json +++ b/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsBefore.json @@ -2,74 +2,86 @@ "createNameRegistratorPerTxsBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransitionTest/createNameRegistratorPerTxsBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x118c2f", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1149999", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa8d7d1b8699bdceade31abacca281e2570461a3083f2767cbaad1ed08581cf2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x90fb2086df06776e9e04c413551df4b1aafcaeda3b3c5e754e16e65f75671bde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe0911f5b8035d9192581b3a82ddb0a32955e880088c49e92936789be2310ef90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x01", + "storage" : { + "0x01" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xa8d7d1b8699bdceade31abacca281e2570461a3083f2767cbaad1ed08581cf2b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x396000f3006000355415600957005b60", + "nonce" : "0x01", + "storage" : { + "0x01" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x90fb2086df06776e9e04c413551df4b1aafcaeda3b3c5e754e16e65f75671bde", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -81,12 +93,12 @@ "gasLimit" : [ "0x1314e" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasAfter.json b/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasAfter.json index 6c0fe140d..56eda0181 100644 --- a/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasAfter.json +++ b/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasAfter.json @@ -2,74 +2,65 @@ "createNameRegistratorPerTxsNotEnoughGasAfter" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasAfterFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x118c31", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1150001", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6dcd1874a8295fa628ca7c100e9fa6248e74b92afd9a7b8511879078dfc2f007", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -81,12 +72,12 @@ "gasLimit" : [ "0xb44d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasAt.json b/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasAt.json index 0d61addd9..361574a9c 100644 --- a/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasAt.json +++ b/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasAt.json @@ -2,74 +2,61 @@ "createNameRegistratorPerTxsNotEnoughGasAt" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasAtFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6dcd1874a8295fa628ca7c100e9fa6248e74b92afd9a7b8511879078dfc2f007", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -81,12 +68,12 @@ "gasLimit" : [ "0xb44d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasBefore.json b/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasBefore.json index 8f639c7c2..5ff66d991 100644 --- a/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasBefore.json +++ b/GeneralStateTests/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasBefore.json @@ -2,74 +2,61 @@ "createNameRegistratorPerTxsNotEnoughGasBefore" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransitionTest/createNameRegistratorPerTxsNotEnoughGasBeforeFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x02540be400", - "currentNumber" : "0x118c2f", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000000", + "currentNumber" : "1149999", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x0186a0", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6dcd1874a8295fa628ca7c100e9fa6248e74b92afd9a7b8511879078dfc2f007", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0x517f2cdf6adb1a644878c390ffab4e130f1bed4b498ef7ce58c5addd98d61018", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -81,12 +68,12 @@ "gasLimit" : [ "0xb44d" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x0186a0" + "100000" ] } } diff --git a/GeneralStateTests/stTransitionTest/delegatecallAfterTransition.json b/GeneralStateTests/stTransitionTest/delegatecallAfterTransition.json index b19b4811b..ac0d4949a 100644 --- a/GeneralStateTests/stTransitionTest/delegatecallAfterTransition.json +++ b/GeneralStateTests/stTransitionTest/delegatecallAfterTransition.json @@ -2,88 +2,76 @@ "delegatecallAfterTransition" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransitionTest/delegatecallAfterTransitionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x118c31", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1150001", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6130e3b78ce4b97ac76cb8dbfdbddfd077dc718d645273fabda84a910ee3c8ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6130e3b78ce4b97ac76cb8dbfdbddfd077dc718d645273fabda84a910ee3c8ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x34d7901155216d65e87ee1875a09b467b9391bd0a3a704619dfc6ae70b573f71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc771b92f1bfbf013423eeb94a8cba0f29e4420925b3b59e5722d9eb5c8ca5e13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6130e3b78ce4b97ac76cb8dbfdbddfd077dc718d645273fabda84a910ee3c8ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x01" : "0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600260006040600073945304eb96065b2a98b57a48a06ae28d285a71b56207a120f4600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 500000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x3360015534600255", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{[[ 1 ]] (CALLER) [[ 2 ]] (CALLVALUE) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +81,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stTransitionTest/delegatecallAtTransition.json b/GeneralStateTests/stTransitionTest/delegatecallAtTransition.json index eb85cf277..d9477c161 100644 --- a/GeneralStateTests/stTransitionTest/delegatecallAtTransition.json +++ b/GeneralStateTests/stTransitionTest/delegatecallAtTransition.json @@ -2,88 +2,74 @@ "delegatecallAtTransition" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransitionTest/delegatecallAtTransitionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6130e3b78ce4b97ac76cb8dbfdbddfd077dc718d645273fabda84a910ee3c8ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x6130e3b78ce4b97ac76cb8dbfdbddfd077dc718d645273fabda84a910ee3c8ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x34d7901155216d65e87ee1875a09b467b9391bd0a3a704619dfc6ae70b573f71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc771b92f1bfbf013423eeb94a8cba0f29e4420925b3b59e5722d9eb5c8ca5e13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6130e3b78ce4b97ac76cb8dbfdbddfd077dc718d645273fabda84a910ee3c8ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x01" : "0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600260006040600073945304eb96065b2a98b57a48a06ae28d285a71b56207a120f4600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 500000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x3360015534600255", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{[[ 1 ]] (CALLER) [[ 2 ]] (CALLVALUE) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +79,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stTransitionTest/delegatecallBeforeTransition.json b/GeneralStateTests/stTransitionTest/delegatecallBeforeTransition.json index 8925ad80c..fffd0f25b 100644 --- a/GeneralStateTests/stTransitionTest/delegatecallBeforeTransition.json +++ b/GeneralStateTests/stTransitionTest/delegatecallBeforeTransition.json @@ -2,88 +2,72 @@ "delegatecallBeforeTransition" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stTransitionTest/delegatecallBeforeTransitionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x01c9c380", - "currentNumber" : "0x118c2f", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "30000000", + "currentNumber" : "1149999", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6130e3b78ce4b97ac76cb8dbfdbddfd077dc718d645273fabda84a910ee3c8ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : "Frontier", + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x6130e3b78ce4b97ac76cb8dbfdbddfd077dc718d645273fabda84a910ee3c8ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x34d7901155216d65e87ee1875a09b467b9391bd0a3a704619dfc6ae70b573f71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc771b92f1bfbf013423eeb94a8cba0f29e4420925b3b59e5722d9eb5c8ca5e13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6130e3b78ce4b97ac76cb8dbfdbddfd077dc718d645273fabda84a910ee3c8ac", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } } } - ] - }, + } + ], "pre" : { - "0x095e7baea6a6c7c4c2dfeb977efac326af552d87" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "0x600260006040600073945304eb96065b2a98b57a48a06ae28d285a71b56207a120f4600055", - "nonce" : "0x00", + "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { + "balance" : "1000000000000000000", + "code" : "{ [[ 0 ]] (DELEGATECALL 500000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 0 64 0 2 ) }", + "nonce" : "0", "storage" : { } }, - "0x945304eb96065b2a98b57a48a06ae28d285a71b5" : { - "balance" : "0x17", - "code" : "0x3360015534600255", - "nonce" : "0x00", + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "balance" : "23", + "code" : "{[[ 1 ]] (CALLER) [[ 2 ]] (CALLVALUE) }", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +77,14 @@ "" ], "gasLimit" : [ - "0x2dc6c0" + "3000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stWalletTest/dayLimitConstruction.json b/GeneralStateTests/stWalletTest/dayLimitConstruction.json index 7bb115bdd..c3f22786b 100644 --- a/GeneralStateTests/stWalletTest/dayLimitConstruction.json +++ b/GeneralStateTests/stWalletTest/dayLimitConstruction.json @@ -2,113 +2,121 @@ "dayLimitConstruction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/dayLimitConstructionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa7ed609d610d1a11fd22807e6c8bb8a2e6764838af4c0a183e90d5424ad2ee7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa7ed609d610d1a11fd22807e6c8bb8a2e6764838af4c0a183e90d5424ad2ee7e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x56e9417d578f0432f2ddf356c7cedadaf71ea194494d8f288ca2ea7fe39fda32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x56e9417d578f0432f2ddf356c7cedadaf71ea194494d8f288ca2ea7fe39fda32", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0ee86fc01d7944c33b3b8babbc4f94d9043ce11d7524cf7d7dcd528e8a830815", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0x0ee86fc01d7944c33b3b8babbc4f94d9043ce11d7524cf7d7dcd528e8a830815", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xa7ed609d610d1a11fd22807e6c8bb8a2e6764838af4c0a183e90d5424ad2ee7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 0, + 1 + ], + "value" : -1 }, - { - "hash" : "0xa7ed609d610d1a11fd22807e6c8bb8a2e6764838af4c0a183e90d5424ad2ee7e", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x56e9417d578f0432f2ddf356c7cedadaf71ea194494d8f288ca2ea7fe39fda32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 0, + 1 + ], + "value" : -1 }, - { - "hash" : "0x56e9417d578f0432f2ddf356c7cedadaf71ea194494d8f288ca2ea7fe39fda32", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -119,15 +127,15 @@ "606060409081526001600081815581805533600160a060020a0316600381905581526101026020529190912055620151804204610107556109b4806100456000396000f300606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe" ], "gasLimit" : [ - "0x0c77bb", - "0x12923b" + "817083", + "1217083" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/dayLimitConstructionOOG.json b/GeneralStateTests/stWalletTest/dayLimitConstructionOOG.json index 9d56adc7e..159289695 100644 --- a/GeneralStateTests/stWalletTest/dayLimitConstructionOOG.json +++ b/GeneralStateTests/stWalletTest/dayLimitConstructionOOG.json @@ -2,73 +2,78 @@ "dayLimitConstructionOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/dayLimitConstructionOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7757eb985d0d319cd645a63d5ce9cecbfb8bb4ea3d481d3c1a8a171d8804c78c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "273283", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999394984", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7757eb985d0d319cd645a63d5ce9cecbfb8bb4ea3d481d3c1a8a171d8804c78c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xadcf2b13c275760d72cf61dc682be74826170608f8ef2b352b3612dbe45aaec7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7757eb985d0d319cd645a63d5ce9cecbfb8bb4ea3d481d3c1a8a171d8804c78c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158", + "Metropolis" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x04661a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a75a8a75", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x7757eb985d0d319cd645a63d5ce9cecbfb8bb4ea3d481d3c1a8a171d8804c78c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -81,12 +86,12 @@ "gasLimit" : [ "0x04661a" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/dayLimitConstructionPartial.json b/GeneralStateTests/stWalletTest/dayLimitConstructionPartial.json index d8a050f8f..04f273a89 100644 --- a/GeneralStateTests/stWalletTest/dayLimitConstructionPartial.json +++ b/GeneralStateTests/stWalletTest/dayLimitConstructionPartial.json @@ -2,73 +2,113 @@ "dayLimitConstructionPartial" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/dayLimitConstructionPartialFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa7ed609d610d1a11fd22807e6c8bb8a2e6764838af4c0a183e90d5424ad2ee7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x56e9417d578f0432f2ddf356c7cedadaf71ea194494d8f288ca2ea7fe39fda32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0ee86fc01d7944c33b3b8babbc4f94d9043ce11d7524cf7d7dcd528e8a830815", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xa7ed609d610d1a11fd22807e6c8bb8a2e6764838af4c0a183e90d5424ad2ee7e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x56e9417d578f0432f2ddf356c7cedadaf71ea194494d8f288ca2ea7fe39fda32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -79,14 +119,14 @@ "606060409081526001600081815581805533600160a060020a0316600381905581526101026020529190912055620151804204610107556109b4806100456000396000f300606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe" ], "gasLimit" : [ - "0x0c77ba" + "817082" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/dayLimitResetSpentToday.json b/GeneralStateTests/stWalletTest/dayLimitResetSpentToday.json index 0064e4af0..3463f94f0 100644 --- a/GeneralStateTests/stWalletTest/dayLimitResetSpentToday.json +++ b/GeneralStateTests/stWalletTest/dayLimitResetSpentToday.json @@ -2,78 +2,59 @@ "dayLimitResetSpentToday" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/dayLimitResetSpentTodayFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf2f751b7fb481f1517fb6e83bdf398b0c46c90686e2a53512a6a3cbb1de60fab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0xc8", + "code" : "0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x02", + "0x0105" : "0x02", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xe51a9621a6a56da7a889ea18c1ecb980c9b527c28ec7f2fc745d671e3d8edbc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4ad9988542011fbe14fb626fecde5583903b89c44cc4e03f6f3bd494e3c4b9f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4ad9988542011fbe14fb626fecde5583903b89c44cc4e03f6f3bd494e3c4b9f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe51a9621a6a56da7a889ea18c1ecb980c9b527c28ec7f2fc745d671e3d8edbc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -95,12 +76,12 @@ "gasLimit" : [ "0x09b335" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/dayLimitSetDailyLimit.json b/GeneralStateTests/stWalletTest/dayLimitSetDailyLimit.json index 825f3b45d..f8e7a2ce8 100644 --- a/GeneralStateTests/stWalletTest/dayLimitSetDailyLimit.json +++ b/GeneralStateTests/stWalletTest/dayLimitSetDailyLimit.json @@ -2,78 +2,59 @@ "dayLimitSetDailyLimit" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/dayLimitSetDailyLimitFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2d9807af3717e5ebfabb1350898a88667b4d1f113d61b5a6b7c9cdc880f19081", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0xc8", + "code" : "0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x01", + "0x0105" : "0x02", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x470dee92b65693a8152fdc185281a5e090432f7ba1f7874f078281b7dffaac9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6fa926895143a89f95f052e222c85f40b4bdedea3505ae25e1c2a7651f356157", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6fa926895143a89f95f052e222c85f40b4bdedea3505ae25e1c2a7651f356157", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x470dee92b65693a8152fdc185281a5e090432f7ba1f7874f078281b7dffaac9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -93,12 +74,12 @@ "gasLimit" : [ "0x09b335" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/dayLimitSetDailyLimitNoData.json b/GeneralStateTests/stWalletTest/dayLimitSetDailyLimitNoData.json index 4d8541af8..a7cd85b4e 100644 --- a/GeneralStateTests/stWalletTest/dayLimitSetDailyLimitNoData.json +++ b/GeneralStateTests/stWalletTest/dayLimitSetDailyLimitNoData.json @@ -2,78 +2,58 @@ "dayLimitSetDailyLimitNoData" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/dayLimitSetDailyLimitNoDataFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x96040ba023f020260739b09631662b263039782070ce1d40482d4afea7d00613", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0xc8", + "code" : "0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x01", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfa2a0c4ee3c6c9adfc9086c327c2416b81562244c7636a8350572de57eb0e688", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcd7b898d9ab81bcd8bbae47b2ecc07c4e45e719eeb232f72458911ed71a8033c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcd7b898d9ab81bcd8bbae47b2ecc07c4e45e719eeb232f72458911ed71a8033c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfa2a0c4ee3c6c9adfc9086c327c2416b81562244c7636a8350572de57eb0e688", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100985760e060020a6000350463173825d9811461009a5780632f54bf6e146100f65780634123cb6b1461011a5780635c52c2f5146101235780637065cb4814610154578063746c917114610188578063b20d30a914610191578063b75c7dc6146101c5578063ba51a6df146101f5578063c2cf732614610229578063f00d4b5d14610269578063f1736d86146102a2575b005b6100986004356000600036436040518084848082843750505090910190815260405190819003602001902090506105b9815b600160a060020a0333166000908152610102602052604081205481808083811415610719576108b0565b6102ac6004355b600160a060020a0316600090815261010260205260408120541190565b6102ac60015481565b6100986000364360405180848480828437505050909101908152604051908190036020019020905061070b816100cc565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610531816100cc565b6102ac60005481565b610098600435600036436040518084848082843750505090910190815260405190819003602001902090506106ff816100cc565b610098600435600160a060020a03331660009081526101026020526040812054908080838114156102be57610340565b61009860043560003643604051808484808284375050509091019081526040519081900360200190209050610678816100cc565b6102ac600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156106d1576106f5565b6100986004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506103ca816100cc565b6102ac6101055481565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156103405781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156103c3576103d8836100fd565b156103e357506103c5565b600160a060020a03841660009081526101026020526040812054925082141561040c57506103c5565b6103475b6101045460005b8181101561085f576101048054829081101561000257600091825260008051602061099483398151915201541461048a5761010480546101039160009184908110156100025760008051602061099483398151915201548252506020919091526040812081815560018101829055600201555b600101610417565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561052c5761053f826100fd565b1561054a575061052e565b610552610410565b60015460fa90106105675761056561057c565b505b60015460fa9010610492575061052e565b6106365b600060015b600154811015610899575b600154811080156105ac5750600281610100811015610002570154600014155b156108b95760010161058c565b156103c557600160a060020a0383166000908152610102602052604081205492508214156105e7575061052c565b6001600160005054036000600050541115610602575061052c565b600060028361010081101561000257508301819055600160a060020a03841681526101026020526040812055610578610410565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561052c5760015482111561068d575061052e565b600082905561069a610410565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106f057600094506106f5565b600194505b5050505092915050565b1561052c575061010555565b1561052e5760006101065550565b60008681526101036020526040812080549094509092508214156107a2578154835560018381018390556101048054918201808255828015829011610771578183600052602060002091820191016107719190610885565b5050506002840181905561010480548892908110156100025760009190915260008051602061099483398151915201555b506001820154600284900a908116600014156108b05760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a182546001901161089d57600086815261010360205260409020600201546101048054909190811015610002576040600090812060008051602061099483398151915292909201819055808255600180830182905560029092015595506108b09050565b61010480546000808355919091526103c590600080516020610994833981519152908101905b808211156108995760008155600101610885565b5090565b8254600019018355600183018054821790555b50505050919050565b5b600180541180156108dc57506001546002906101008110156100025701546000145b156108f057600180546000190190556108ba565b600154811080156109135750600154600290610100811015610002570154600014155b801561092d57506002816101008110156100025701546000145b1561098e57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61058156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -93,12 +73,12 @@ "gasLimit" : [ "0x09b335" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedAddOwner.json b/GeneralStateTests/stWalletTest/multiOwnedAddOwner.json index 74d5dcf6a..2abd82ac7 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedAddOwner.json +++ b/GeneralStateTests/stWalletTest/multiOwnedAddOwner.json @@ -2,71 +2,51 @@ "multiOwnedAddOwner" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedAddOwnerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x21751242b027dcf541e1cd60966343230eed1cd15237d565a0ab2105547ee99d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x02", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc2cce9d7b2f2a11dd0bb6f8d5a1a1bba962b8ad4231e4b7c811cdf1bfffe7971", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc2117e5cdd27515659ead4b260e4e13e081aa9c368500a1f69d2b403ffa2899", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc2117e5cdd27515659ead4b260e4e13e081aa9c368500a1f69d2b403ffa2899", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc2cce9d7b2f2a11dd0bb6f8d5a1a1bba962b8ad4231e4b7c811cdf1bfffe7971", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +57,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +70,14 @@ "0x7065cb480000000000000000000000003fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedAddOwnerAddMyself.json b/GeneralStateTests/stWalletTest/multiOwnedAddOwnerAddMyself.json index 9b3e9ba9e..b99b7c7a3 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedAddOwnerAddMyself.json +++ b/GeneralStateTests/stWalletTest/multiOwnedAddOwnerAddMyself.json @@ -2,71 +2,50 @@ "multiOwnedAddOwnerAddMyself" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedAddOwnerAddMyselfFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x26571ae1ea2375908bf22dbf1cc78035899424046731bb4d4e96fed3cebc811e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x26e722fe6f5f192b22ef8f3dc1f4e747f34bbf510f573efb6af738ab92ff120b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9bc4a93f4bd04e46cd43627a33734e4f7d647573586dad53050e554383c2ae91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9bc4a93f4bd04e46cd43627a33734e4f7d647573586dad53050e554383c2ae91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x26e722fe6f5f192b22ef8f3dc1f4e747f34bbf510f573efb6af738ab92ff120b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +56,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +69,14 @@ "0x7065cb48000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedChangeOwner.json b/GeneralStateTests/stWalletTest/multiOwnedChangeOwner.json index e1fd83a08..f48671920 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedChangeOwner.json +++ b/GeneralStateTests/stWalletTest/multiOwnedChangeOwner.json @@ -2,71 +2,49 @@ "multiOwnedChangeOwner" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedChangeOwnerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd3148e6d6aaa2f41a172553339875a3e03ad3c2188ea101e25fe46acd3c71767", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa", + "0x62ce4f671906be9a217487bb98e428b08e12100fb0007df10572ca00206e7d73" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x04a24c8abe2a280f58fb589c896e7ddf11ae087033cc92cb2c8ba138b80b3dcb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb959e0b6275adbf856ba834353002b770a1c7c98363bccba63898c2e18284c62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb959e0b6275adbf856ba834353002b770a1c7c98363bccba63898c2e18284c62", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x04a24c8abe2a280f58fb589c896e7ddf11ae087033cc92cb2c8ba138b80b3dcb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +55,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +68,14 @@ "0xf00d4b5d000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedChangeOwnerNoArgument.json b/GeneralStateTests/stWalletTest/multiOwnedChangeOwnerNoArgument.json index 22ab7ec48..6bd946a45 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedChangeOwnerNoArgument.json +++ b/GeneralStateTests/stWalletTest/multiOwnedChangeOwnerNoArgument.json @@ -2,71 +2,50 @@ "multiOwnedChangeOwnerNoArgument" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedChangeOwnerNoArgumentFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x556ebd705e6dc4fdb6266e20354eacf8f4079c575bb55d0f11166fd76efaee9f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x461884afb67e38da536946c0d744de98acf65d209ec82ff35b5eb68f5a3b68b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xae77c9fe506655b4133a7d7bbd471286c2fbbab4d0cb0943faa434c696e1ddd4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xae77c9fe506655b4133a7d7bbd471286c2fbbab4d0cb0943faa434c696e1ddd4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x461884afb67e38da536946c0d744de98acf65d209ec82ff35b5eb68f5a3b68b1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +56,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -92,12 +71,12 @@ "gasLimit" : [ "0x0bc2b7" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedChangeOwner_fromNotOwner.json b/GeneralStateTests/stWalletTest/multiOwnedChangeOwner_fromNotOwner.json index 81d0f3884..70c08a06e 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedChangeOwner_fromNotOwner.json +++ b/GeneralStateTests/stWalletTest/multiOwnedChangeOwner_fromNotOwner.json @@ -2,71 +2,50 @@ "multiOwnedChangeOwner_fromNotOwner" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedChangeOwner_fromNotOwnerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7d7233bf2c13cfa192ce9dc2bc8101313971fe6ea493c2403ae2acb91b8d73e6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xed869e9a7d2bc63013cb9a23173ece41d4437d4e4608e513069304529cd54c4e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb8ac095c7d8380da01a4ad2a200455baea9773de8b07897d223165ef141f5eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbb8ac095c7d8380da01a4ad2a200455baea9773de8b07897d223165ef141f5eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xed869e9a7d2bc63013cb9a23173ece41d4437d4e4608e513069304529cd54c4e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +56,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +69,14 @@ "0xf00d4b5d000000000000000000000000b94f5374fce5edbc8e2a8697c15331677e6ebf0b000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedChangeOwner_toIsOwner.json b/GeneralStateTests/stWalletTest/multiOwnedChangeOwner_toIsOwner.json index 62f564a34..c23802a2e 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedChangeOwner_toIsOwner.json +++ b/GeneralStateTests/stWalletTest/multiOwnedChangeOwner_toIsOwner.json @@ -2,71 +2,50 @@ "multiOwnedChangeOwner_toIsOwner" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedChangeOwner_toIsOwnerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6c66eaf6153b3633e255fb22efd2b9b0607586f04f0179779a40336f98fcbdce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x88cbbea3a252ac70dd8fc4838a95d40945f8e0ad4d977c6cbb4f31aa0f237d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6b669ca265f30b8349f0a36c4af860e8008edd124e5166ad63f97c8697226e0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6b669ca265f30b8349f0a36c4af860e8008edd124e5166ad63f97c8697226e0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x88cbbea3a252ac70dd8fc4838a95d40945f8e0ad4d977c6cbb4f31aa0f237d84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +56,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +69,14 @@ "0xf00d4b5d000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedChangeRequirementTo0.json b/GeneralStateTests/stWalletTest/multiOwnedChangeRequirementTo0.json index ac172cb13..03b93fe11 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedChangeRequirementTo0.json +++ b/GeneralStateTests/stWalletTest/multiOwnedChangeRequirementTo0.json @@ -2,71 +2,48 @@ "multiOwnedChangeRequirementTo0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedChangeRequirementTo0Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1c1c1b9de665348f9df4250e5805e8d6bbee0eb689e973b8c451a1bd1882dee2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5708c053b70f81b7197a90d1094c79693e8dffe395d9f14d75a67bfb5408a267", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x00819cf5a27d02c97ea9e06d6add41f90e30bed280b6f62a0faf242c3ea41823", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x00819cf5a27d02c97ea9e06d6add41f90e30bed280b6f62a0faf242c3ea41823", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5708c053b70f81b7197a90d1094c79693e8dffe395d9f14d75a67bfb5408a267", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +54,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +67,14 @@ "0xba51a6df0000000000000000000000000000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedChangeRequirementTo1.json b/GeneralStateTests/stWalletTest/multiOwnedChangeRequirementTo1.json index 31e17590d..b300770a4 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedChangeRequirementTo1.json +++ b/GeneralStateTests/stWalletTest/multiOwnedChangeRequirementTo1.json @@ -2,71 +2,49 @@ "multiOwnedChangeRequirementTo1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedChangeRequirementTo1Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd320f3b38ce4d0c378d452d0b09330a4f627fdd0d921c2f5fa283ba11f7916da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8fe39e19833a3cbd557d97d2246fcfda845ed17ce543fd726f983e3eb6772cb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5796296f1c94dfd59b308a26a6d04d618dd8d020a8ddd5793bac79ae88803710", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5796296f1c94dfd59b308a26a6d04d618dd8d020a8ddd5793bac79ae88803710", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8fe39e19833a3cbd557d97d2246fcfda845ed17ce543fd726f983e3eb6772cb1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +55,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +68,14 @@ "0xba51a6df0000000000000000000000000000000000000000000000000000000000000001" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedChangeRequirementTo2.json b/GeneralStateTests/stWalletTest/multiOwnedChangeRequirementTo2.json index de5b691a9..567fa2bb8 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedChangeRequirementTo2.json +++ b/GeneralStateTests/stWalletTest/multiOwnedChangeRequirementTo2.json @@ -2,71 +2,50 @@ "multiOwnedChangeRequirementTo2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedChangeRequirementTo2Filler.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x52a2b577fd97dd0add6284b1b1fd4c1c69791802b3be0e14ea4e0bf1aac340e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8092af9e8eac2d2444cc28eed24647661679b8998ffd0d845f7edec40a16d7cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xddee2147dfb84cf38f57c3c8ba42493fa4351b9d2de570cd34eb86701ae9b746", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xddee2147dfb84cf38f57c3c8ba42493fa4351b9d2de570cd34eb86701ae9b746", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8092af9e8eac2d2444cc28eed24647661679b8998ffd0d845f7edec40a16d7cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +56,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +69,14 @@ "0xba51a6df0000000000000000000000000000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedConstructionCorrect.json b/GeneralStateTests/stWalletTest/multiOwnedConstructionCorrect.json index 192411e92..782e33b29 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedConstructionCorrect.json +++ b/GeneralStateTests/stWalletTest/multiOwnedConstructionCorrect.json @@ -2,74 +2,113 @@ "multiOwnedConstructionCorrect" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedConstructionCorrectFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x2f6e2b63729f951a32bcb3e6b501be8af00422a9e5ef159a36ebed07559ecd06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x64", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xeecebde57798579723cf00394572c98e266d03475bc637b711b56a00a5c6a944", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2c79742f647cfc503543cc26b3c3991376cb43e8160e97b22f913f497bf62597", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x64", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "Homestead" : [ - { - "hash" : "0x2f6e2b63729f951a32bcb3e6b501be8af00422a9e5ef159a36ebed07559ecd06", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x64", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xeecebde57798579723cf00394572c98e266d03475bc637b711b56a00a5c6a944", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -79,14 +118,14 @@ "606060409081526001600081815581805533600160a060020a0316600381905581526101026020529182205561090a90819061003b90396000f300606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedConstructionNotEnoughGas.json b/GeneralStateTests/stWalletTest/multiOwnedConstructionNotEnoughGas.json index 6339af718..45e9a0ff9 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedConstructionNotEnoughGas.json +++ b/GeneralStateTests/stWalletTest/multiOwnedConstructionNotEnoughGas.json @@ -2,74 +2,50 @@ "multiOwnedConstructionNotEnoughGas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedConstructionNotEnoughGasFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x0f4240", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "1000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x799a7f96e856c4257fc35908b7cdf9cc6d7dff1f4d7b563e6bda658b33692b32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x03e9c1", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a760163f", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x799a7f96e856c4257fc35908b7cdf9cc6d7dff1f4d7b563e6bda658b33692b32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x799a7f96e856c4257fc35908b7cdf9cc6d7dff1f4d7b563e6bda658b33692b32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x799a7f96e856c4257fc35908b7cdf9cc6d7dff1f4d7b563e6bda658b33692b32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x799a7f96e856c4257fc35908b7cdf9cc6d7dff1f4d7b563e6bda658b33692b32", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -81,12 +57,12 @@ "gasLimit" : [ "0x03e9c1" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedConstructionNotEnoughGasPartial.json b/GeneralStateTests/stWalletTest/multiOwnedConstructionNotEnoughGasPartial.json index e314d969f..5974f035a 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedConstructionNotEnoughGasPartial.json +++ b/GeneralStateTests/stWalletTest/multiOwnedConstructionNotEnoughGasPartial.json @@ -2,74 +2,78 @@ "multiOwnedConstructionNotEnoughGasPartial" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedConstructionNotEnoughGasPartialFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xcfd7da3fc0b4dac858df3ccf35e973cca001723aab28149354c3d279f58b16c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0x64", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a759060a", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xcfd7da3fc0b4dac858df3ccf35e973cca001723aab28149354c3d279f58b16c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2c79742f647cfc503543cc26b3c3991376cb43e8160e97b22f913f497bf62597", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcfd7da3fc0b4dac858df3ccf35e973cca001723aab28149354c3d279f58b16c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "shouldnotexist" : "1" + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999248751", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xcfd7da3fc0b4dac858df3ccf35e973cca001723aab28149354c3d279f58b16c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } @@ -79,14 +83,14 @@ "606060409081526001600081815581805533600160a060020a0316600381905581526101026020529182205561090a90819061003b90396000f300606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe" ], "gasLimit" : [ - "0x0b7691" + "751249" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedIsOwnerFalse.json b/GeneralStateTests/stWalletTest/multiOwnedIsOwnerFalse.json index f1dc54247..26dd8c803 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedIsOwnerFalse.json +++ b/GeneralStateTests/stWalletTest/multiOwnedIsOwnerFalse.json @@ -2,71 +2,49 @@ "multiOwnedIsOwnerFalse" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedIsOwnerFalseFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7195e4d36a906fdc0346931d809e55e1d27921817d7780d4098bf164f2dedaf1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4f7f5592be43176a0029d4d375b52afee2dc907ebb0e33d67fc1437c94b71e26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x78202c41fe9c698c04704fd5763dc752c7104b00b31ad5b65bfc00904797857a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x78202c41fe9c698c04704fd5763dc752c7104b00b31ad5b65bfc00904797857a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4f7f5592be43176a0029d4d375b52afee2dc907ebb0e33d67fc1437c94b71e26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +55,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +68,14 @@ "0x2f54bf6e000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedIsOwnerTrue.json b/GeneralStateTests/stWalletTest/multiOwnedIsOwnerTrue.json index 7017a4f2a..2bb74d52a 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedIsOwnerTrue.json +++ b/GeneralStateTests/stWalletTest/multiOwnedIsOwnerTrue.json @@ -2,71 +2,49 @@ "multiOwnedIsOwnerTrue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedIsOwnerTrueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7195e4d36a906fdc0346931d809e55e1d27921817d7780d4098bf164f2dedaf1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4f7f5592be43176a0029d4d375b52afee2dc907ebb0e33d67fc1437c94b71e26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x78202c41fe9c698c04704fd5763dc752c7104b00b31ad5b65bfc00904797857a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x78202c41fe9c698c04704fd5763dc752c7104b00b31ad5b65bfc00904797857a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4f7f5592be43176a0029d4d375b52afee2dc907ebb0e33d67fc1437c94b71e26", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +55,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +68,14 @@ "0x2f54bf6e000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedRemoveOwner.json b/GeneralStateTests/stWalletTest/multiOwnedRemoveOwner.json index 4824a9b2e..9ddd30683 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedRemoveOwner.json +++ b/GeneralStateTests/stWalletTest/multiOwnedRemoveOwner.json @@ -2,71 +2,49 @@ "multiOwnedRemoveOwner" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedRemoveOwnerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x67a01a2bbf3822cbb3179a05685218cbaee903a73c4b47b29de0af4d9122d621", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x7c01000000000000000000000000000000000000000000000000000000006000350463173825d981146100655780632f54bf6e146100b75780637065cb48146100e8578063b75c7dc614610105578063ba51a6df14610142578063f00d4b5d1461015f57005b6101816004356000604060003680828437909120905061046d815b73ffffffffffffffffffffffffffffffffffffffff3316600090815261010260205260408120548180808381141561058f57610586565b6101876004355b73ffffffffffffffffffffffffffffffffffffffff16600090815261010260205260408120541190565b610181600435604060003680828437909120905061037c81610080565b61018160043573ffffffffffffffffffffffffffffffffffffffff3316600090815261010260205260408120549080808381141561019157610213565b610181600435604060003680828437909120905061053381610080565b6101816004356024356000604060003680828437909120905061028681610080565b60006000f35b8060005260206000f35b5050506000828152610103602052604081206001810154600284900a929083168190111561021357815460018084018054919092018455849003905573ffffffffffffffffffffffffffffffffffffffff3316604090815260608690527fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b9080a15b5050505050565b015573ffffffffffffffffffffffffffffffffffffffff84811660008181526101026020526040808220829055928616808252908390208590559082526060527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9080a15b505b505050565b1561027f57610294836100be565b1561029f5750610281565b73ffffffffffffffffffffffffffffffffffffffff84166000908152610102602052604081205492508214156102d55750610281565b6102f75b6101045460005b8181101561080c5761010480548290811061085457005b73ffffffffffffffffffffffffffffffffffffffff8316600283610100811061021a57005b015560015473ffffffffffffffffffffffffffffffffffffffff831660008181526101026020908152604091829020939093559081527f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c39190a15b505b50565b156103775761038a826100be565b156103955750610379565b61039d6102d9565b60015460fa901015156103b4576103b26103cb565b505b60015460fa901015156103f55750610379565b6104255b600060015b6001548110156106f7575b600154811080156107535750600281610100811061074c57005b6001805481019081905573ffffffffffffffffffffffffffffffffffffffff831690600290610100811061031c57005b5073ffffffffffffffffffffffffffffffffffffffff831660409081527f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da90602090a1505050565b156102815773ffffffffffffffffffffffffffffffffffffffff83166000908152610102602052604081205492508214156104a85750610377565b60016001600050540360006000505411156104c35750610377565b600060028361010081106104d357005b015573ffffffffffffffffffffffffffffffffffffffff8316600090815261010260205260408120556103c76102d9565b60408281527facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da90602090a15050565b15610377576001548211156105485750610379565b60008290556105046102d9565b82547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018355600183018054821790555b50505050919050565b600086815261010360205260408120805490945090925082141561061a5781548355600183810183905561010480549182018082558280158290116106a6578286527f4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe9081019082015b808211156106a457600081556001016105f9565b6000918252602090912001555b506001820154600284900a908116600014156105865773ffffffffffffffffffffffffffffffffffffffff3316604090815260608790527fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda9080a182546001901115156105555760008681526101036020526101048054604090922060020154909181106106c057005b505b505050600284018190556101048054889290811061060d57005b6000918252602080832090910182905587825261010390526040812081815560018181018390556002909101919091559450610586565b5090565b01546000145b1561076057600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b60018054118015610701575060015460029061010081106106fb57005b0154600014155b1561072f576001016103db565b600154811080156107845750600154600290610100811061077d57005b0154600014155b801561079f5750600281610100811061079957005b01546000145b156107b85760015460029061010081106107bd57005b01555b6103d0565b015460028261010081106107cd57005b015580610102600060028361010081106107e357005b01548152602081019190915260400160009081209190915560015460029061010081106107b557005b61010480546000808355919091527f4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe908101905b8082111561027f5760008155600101610840565b60009182526020822001541415156108a6576101048054610103916000918490811061087c57005b60009182526020808320909101548352820192909252604001812081815560018101829055600201555b6001016102e056", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbc471eeda0238882c1cadfd7e4897334569f78832484e9715a2e396d5ddc7815", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x903a211d8c345457d3133cf3e7638df74a3205edc8137c42636c05dbcc7bbe65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x903a211d8c345457d3133cf3e7638df74a3205edc8137c42636c05dbcc7bbe65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbc471eeda0238882c1cadfd7e4897334569f78832484e9715a2e396d5ddc7815", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x7c01000000000000000000000000000000000000000000000000000000006000350463173825d981146100655780632f54bf6e146100b75780637065cb48146100e8578063b75c7dc614610105578063ba51a6df14610142578063f00d4b5d1461015f57005b6101816004356000604060003680828437909120905061046d815b73ffffffffffffffffffffffffffffffffffffffff3316600090815261010260205260408120548180808381141561058f57610586565b6101876004355b73ffffffffffffffffffffffffffffffffffffffff16600090815261010260205260408120541190565b610181600435604060003680828437909120905061037c81610080565b61018160043573ffffffffffffffffffffffffffffffffffffffff3316600090815261010260205260408120549080808381141561019157610213565b610181600435604060003680828437909120905061053381610080565b6101816004356024356000604060003680828437909120905061028681610080565b60006000f35b8060005260206000f35b5050506000828152610103602052604081206001810154600284900a929083168190111561021357815460018084018054919092018455849003905573ffffffffffffffffffffffffffffffffffffffff3316604090815260608690527fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b9080a15b5050505050565b015573ffffffffffffffffffffffffffffffffffffffff84811660008181526101026020526040808220829055928616808252908390208590559082526060527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9080a15b505b505050565b1561027f57610294836100be565b1561029f5750610281565b73ffffffffffffffffffffffffffffffffffffffff84166000908152610102602052604081205492508214156102d55750610281565b6102f75b6101045460005b8181101561080c5761010480548290811061085457005b73ffffffffffffffffffffffffffffffffffffffff8316600283610100811061021a57005b015560015473ffffffffffffffffffffffffffffffffffffffff831660008181526101026020908152604091829020939093559081527f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c39190a15b505b50565b156103775761038a826100be565b156103955750610379565b61039d6102d9565b60015460fa901015156103b4576103b26103cb565b505b60015460fa901015156103f55750610379565b6104255b600060015b6001548110156106f7575b600154811080156107535750600281610100811061074c57005b6001805481019081905573ffffffffffffffffffffffffffffffffffffffff831690600290610100811061031c57005b5073ffffffffffffffffffffffffffffffffffffffff831660409081527f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da90602090a1505050565b156102815773ffffffffffffffffffffffffffffffffffffffff83166000908152610102602052604081205492508214156104a85750610377565b60016001600050540360006000505411156104c35750610377565b600060028361010081106104d357005b015573ffffffffffffffffffffffffffffffffffffffff8316600090815261010260205260408120556103c76102d9565b60408281527facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da90602090a15050565b15610377576001548211156105485750610379565b60008290556105046102d9565b82547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018355600183018054821790555b50505050919050565b600086815261010360205260408120805490945090925082141561061a5781548355600183810183905561010480549182018082558280158290116106a6578286527f4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe9081019082015b808211156106a457600081556001016105f9565b6000918252602090912001555b506001820154600284900a908116600014156105865773ffffffffffffffffffffffffffffffffffffffff3316604090815260608790527fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda9080a182546001901115156105555760008681526101036020526101048054604090922060020154909181106106c057005b505b505050600284018190556101048054889290811061060d57005b6000918252602080832090910182905587825261010390526040812081815560018181018390556002909101919091559450610586565b5090565b01546000145b1561076057600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b60018054118015610701575060015460029061010081106106fb57005b0154600014155b1561072f576001016103db565b600154811080156107845750600154600290610100811061077d57005b0154600014155b801561079f5750600281610100811061079957005b01546000145b156107b85760015460029061010081106107bd57005b01555b6103d0565b015460028261010081106107cd57005b015580610102600060028361010081106107e357005b01548152602081019190915260400160009081209190915560015460029061010081106107b557005b61010480546000808355919091527f4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe908101905b8082111561027f5760008155600101610840565b60009182526020822001541415156108a6576101048054610103916000918490811061087c57005b60009182526020808320909101548352820192909252604001812081815560018101829055600201555b6001016102e056", "nonce" : "0x00", @@ -79,9 +57,9 @@ "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -92,14 +70,14 @@ "0x173825d9000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedRemoveOwnerByNonOwner.json b/GeneralStateTests/stWalletTest/multiOwnedRemoveOwnerByNonOwner.json index 8a9a415ee..e22a322c0 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedRemoveOwnerByNonOwner.json +++ b/GeneralStateTests/stWalletTest/multiOwnedRemoveOwnerByNonOwner.json @@ -2,78 +2,134 @@ "multiOwnedRemoveOwnerByNonOwner" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedRemoveOwnerByNonOwnerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6e6f58709e4b66c0df01499e6f7433dc54d7a6140f8f0a92b517b0babd036756", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "999999999999645060", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfa675da31c7250893f5a2e2aa7d89c0c3ad18b03d237c5c339ff8a4bd3c278ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x70910649f40918bc471890021c07e53f3be6113d5ecbadf909d5d7515b9ba3fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x70910649f40918bc471890021c07e53f3be6113d5ecbadf909d5d7515b9ba3fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "999999999999644910", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xfa675da31c7250893f5a2e2aa7d89c0c3ad18b03d237c5c339ff8a4bd3c278ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "999999999999644830", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -84,9 +140,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -97,14 +153,14 @@ "0x173825d9000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0xa95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedRemoveOwner_mySelf.json b/GeneralStateTests/stWalletTest/multiOwnedRemoveOwner_mySelf.json index f7dada52e..561eb6a01 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedRemoveOwner_mySelf.json +++ b/GeneralStateTests/stWalletTest/multiOwnedRemoveOwner_mySelf.json @@ -2,71 +2,50 @@ "multiOwnedRemoveOwner_mySelf" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedRemoveOwner_mySelfFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x982e4ff5074f3331cc081c99474650921f41829ea515cdbb036453865ffb237d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x63fd77f981b9e01643abe7a66f465eeb8f273b30b717a04e5ef9cd469328ac6b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xebb6196d6dd09398503826c0d8fd687bb0f59fa8bbad2763d5e79c7a98aa02e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xebb6196d6dd09398503826c0d8fd687bb0f59fa8bbad2763d5e79c7a98aa02e8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x63fd77f981b9e01643abe7a66f465eeb8f273b30b717a04e5ef9cd469328ac6b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +56,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +69,14 @@ "0x173825d9000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedRemoveOwner_ownerIsNotOwner.json b/GeneralStateTests/stWalletTest/multiOwnedRemoveOwner_ownerIsNotOwner.json index 5f57c7497..a2c4c0ac7 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedRemoveOwner_ownerIsNotOwner.json +++ b/GeneralStateTests/stWalletTest/multiOwnedRemoveOwner_ownerIsNotOwner.json @@ -2,71 +2,50 @@ "multiOwnedRemoveOwner_ownerIsNotOwner" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedRemoveOwner_ownerIsNotOwnerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x66decb6aab1b1844ea6b70583e6b1f69cc2be7d909c3d3cbfcd3b68ac744dd70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xb4897c497efaf2519fafc2f139cb0738b019ff01ae14c79c7488129250934cdb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0e2fad3bad0d907ef33e2855f0120cdedf6445aa0b148e39d258e16f01a77912", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0e2fad3bad0d907ef33e2855f0120cdedf6445aa0b148e39d258e16f01a77912", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb4897c497efaf2519fafc2f139cb0738b019ff01ae14c79c7488129250934cdb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +56,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +69,14 @@ "0x173825d9000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/multiOwnedRevokeNothing.json b/GeneralStateTests/stWalletTest/multiOwnedRevokeNothing.json index 3067aedf1..dfc92ee8a 100644 --- a/GeneralStateTests/stWalletTest/multiOwnedRevokeNothing.json +++ b/GeneralStateTests/stWalletTest/multiOwnedRevokeNothing.json @@ -2,71 +2,49 @@ "multiOwnedRevokeNothing" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/multiOwnedRevokeNothingFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdb7f36cbcd9ac9c98e8868f2f0b071c94d0dcd842266b692162e3b951f328370", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "balance" : "0xc8", + "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7d5794558d5ddb7239e0d69b38782b20417b592d598e5ac00128cb16ca585b4f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x50c50131200c75046b151bbc695591bbca013d7351f354307ff31c645453dee5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x50c50131200c75046b151bbc695591bbca013d7351f354307ff31c645453dee5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7d5794558d5ddb7239e0d69b38782b20417b592d598e5ac00128cb16ca585b4f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { + "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : { "balance" : "0x64", "code" : "0x606060405236156100775760e060020a6000350463173825d981146100795780632f54bf6e146100d55780634123cb6b146100f95780637065cb4814610102578063746c917114610136578063b75c7dc61461013f578063ba51a6df1461016f578063c2cf7326146101a3578063f00d4b5d146101e3575b005b610077600435600060003643604051808484808284375050509091019081526040519081900360200190209050610529815b600160a060020a033316600090815261010260205260408120548180808381141561066f57610806565b61021c6004355b600160a060020a0316600090815261010260205260408120541190565b61021c60015481565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506104a1816100ab565b61021c60005481565b610077600435600160a060020a033316600090815261010260205260408120549080808381141561022e576102b0565b610077600435600036436040518084848082843750505090910190815260405190819003602001902090506105e8816100ab565b61021c600435602435600082815261010360209081526040808320600160a060020a03851684526101029092528220548290818181141561064157610665565b61007760043560243560006000364360405180848480828437505050909101908152604051908190036020019020905061033a816100ab565b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a92908316819011156102b05781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a038316600283610100811015610002570155600160a060020a0384811660008181526101026020908152604080832083905593871680835291849020869055835192835282015281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b1561033357610348836100dc565b156103535750610335565b600160a060020a03841660009081526101026020526040812054925082141561037c5750610335565b6102b75b6101045460005b818110156107b557610104805482908110156100025760009182526000805160206108ea8339815191520154146103fa576101048054610103916000918490811015610002576000805160206108ea83398151915201548252506020919091526040812081815560018101829055600201555b600101610387565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b1561049c576104af826100dc565b156104ba575061049e565b6104c2610380565b60015460fa90106104d7576104d56104ec565b505b60015460fa9010610402575061049e565b6105a65b600060015b6001548110156107ef575b6001548110801561051c5750600281610100811015610002570154600014155b1561080f576001016104fc565b1561033557600160a060020a038316600090815261010260205260408120549250821415610557575061049c565b6001600160005054036000600050541115610572575061049c565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556104e8610380565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b1561049c576001548211156105fd575061049e565b600082905561060a610380565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156106605760009450610665565b600194505b5050505092915050565b60008681526101036020526040812080549094509092508214156106f85781548355600183810183905561010480549182018082558280158290116106c7578183600052602060002091820191016106c791906107db565b505050600284018190556101048054889290811015610002576000919091526000805160206108ea83398151915201555b506001820154600284900a908116600014156108065760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a18254600190116107f35760008681526101036020526040902060020154610104805490919081101561000257604060009081206000805160206108ea83398151915292909201819055808255600180830182905560029092015595506108069050565b6101048054600080835591909152610335906000805160206108ea833981519152908101905b808211156107ef57600081556001016107db565b5090565b8254600019018355600183018054821790555b50505050919050565b5b6001805411801561083257506001546002906101008110156100025701546000145b156108465760018054600019019055610810565b600154811080156108695750600154600290610100811015610002570154600014155b801561088357506002816101008110156100025701546000145b156108e457600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b6104f156004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -77,9 +55,9 @@ "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -90,14 +68,14 @@ "0xb75c7dc66e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "6295ee1b4f6dd65047762f924ecd367c17eabf8f", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/walletAddOwnerRemovePendingTransaction.json b/GeneralStateTests/stWalletTest/walletAddOwnerRemovePendingTransaction.json index 0e95bef5a..d93ae2bed 100644 --- a/GeneralStateTests/stWalletTest/walletAddOwnerRemovePendingTransaction.json +++ b/GeneralStateTests/stWalletTest/walletAddOwnerRemovePendingTransaction.json @@ -2,85 +2,156 @@ "walletAddOwnerRemovePendingTransaction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletAddOwnerRemovePendingTransactionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x76d400e242aa18890d5586152e67f7d432b0cc9c2abdc84cef5686d1a8ee3661", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999887403", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x03", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x05" : "0xbbb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x3412a0f379bad2d2f891e4db16a42d964dd63a031e22596f10b4dab2aaa1d252" : "0x03", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ], - "EIP158" : [ - { - "hash" : "0x2c52ac094e626f3acf90b21fe87fadde57108829d05d14a86a5c5328560baf91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x98626a984091a07fe7e604b0cd371fa5911ab2b5f91f2742f8b62e805c1a8172", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x98626a984091a07fe7e604b0cd371fa5911ab2b5f91f2742f8b62e805c1a8172", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999885078", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x03", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x05" : "0xbbb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x3412a0f379bad2d2f891e4db16a42d964dd63a031e22596f10b4dab2aaa1d252" : "0x03", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x2c52ac094e626f3acf90b21fe87fadde57108829d05d14a86a5c5328560baf91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999884878", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x03", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x05" : "0xbbb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x3412a0f379bad2d2f891e4db16a42d964dd63a031e22596f10b4dab2aaa1d252" : "0x03", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ] - }, + } + ], "pre" : { - "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { - "balance" : "0x5af3107a4000", - "code" : "", - "nonce" : "0x00", + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "100000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -106,14 +177,14 @@ "0x7065cb48000000000000000000000000bbb1cd2cd96c6d5c0b5eb3322d807b34482481d4" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0xa95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stWalletTest/walletChangeOwnerRemovePendingTransaction.json b/GeneralStateTests/stWalletTest/walletChangeOwnerRemovePendingTransaction.json index bd38d9967..2ab8048cf 100644 --- a/GeneralStateTests/stWalletTest/walletChangeOwnerRemovePendingTransaction.json +++ b/GeneralStateTests/stWalletTest/walletChangeOwnerRemovePendingTransaction.json @@ -2,85 +2,150 @@ "walletChangeOwnerRemovePendingTransaction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletChangeOwnerRemovePendingTransactionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb0d9066f15757dfad94b553598d8e1691ea7735d19d8a0623d3d33982d677b70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999894002", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x02", + "0x0107" : "0x0c22e4", + "0x03" : "0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x62ce4f671906be9a217487bb98e428b08e12100fb0007df10572ca00206e7d73" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc341907f27b95bf7d430f8649f81aeb19aec69a69b80323e2a7e98b373024376", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xea51b03ea74536aa00f33d9f3f49aa80765a1cf6b92773050599ef904595ec9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xea51b03ea74536aa00f33d9f3f49aa80765a1cf6b92773050599ef904595ec9b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999891902", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x02", + "0x0107" : "0x0c22e4", + "0x03" : "0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x62ce4f671906be9a217487bb98e428b08e12100fb0007df10572ca00206e7d73" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xc341907f27b95bf7d430f8649f81aeb19aec69a69b80323e2a7e98b373024376", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999891702", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x02", + "0x0107" : "0x0c22e4", + "0x03" : "0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x62ce4f671906be9a217487bb98e428b08e12100fb0007df10572ca00206e7d73" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ] - }, + } + ], "pre" : { - "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { - "balance" : "0x5af3107a4000", - "code" : "", - "nonce" : "0x00", + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "100000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -106,14 +171,14 @@ "0xf00d4b5d000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0xa95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stWalletTest/walletChangeRequirementRemovePendingTransaction.json b/GeneralStateTests/stWalletTest/walletChangeRequirementRemovePendingTransaction.json index 561121848..4f93c0d43 100644 --- a/GeneralStateTests/stWalletTest/walletChangeRequirementRemovePendingTransaction.json +++ b/GeneralStateTests/stWalletTest/walletChangeRequirementRemovePendingTransaction.json @@ -2,85 +2,150 @@ "walletChangeRequirementRemovePendingTransaction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletChangeRequirementRemovePendingTransactionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x69b8a269709ee68ff09702d3478d9c1faca7139c6da635517fdd22e7339c7c30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999908286", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x02", + "0x01" : "0x02", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ], - "EIP158" : [ - { - "hash" : "0x31860009e5b38e2bbbeafa52f4ce78c9e130e00d25f73de18d5de9bd93207340", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4b7e636d5c533eaf803b61cb48b5b2ee5e3bf8e1b5f78cb4a79b57fe6c51adbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4b7e636d5c533eaf803b61cb48b5b2ee5e3bf8e1b5f78cb4a79b57fe6c51adbf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999906261", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x02", + "0x01" : "0x02", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x31860009e5b38e2bbbeafa52f4ce78c9e130e00d25f73de18d5de9bd93207340", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999906141", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x02", + "0x01" : "0x02", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ] - }, + } + ], "pre" : { - "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { - "balance" : "0x5af3107a4000", - "code" : "", - "nonce" : "0x00", + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "100000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -106,14 +171,14 @@ "0xba51a6df0000000000000000000000000000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0xa95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stWalletTest/walletConfirm.json b/GeneralStateTests/stWalletTest/walletConfirm.json index cae6adf29..2dc96a84a 100644 --- a/GeneralStateTests/stWalletTest/walletConfirm.json +++ b/GeneralStateTests/stWalletTest/walletConfirm.json @@ -2,85 +2,174 @@ "walletConfirm" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletConfirmFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x23966adcfcae0a0ddd28591c9f959c808aca30107336bb03277f749820f9734f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999951667", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebaaa" : { + "balance" : "0x09", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x5b", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x02", + "0x01" : "0x02", + "0x0104" : "0x01", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ], - "EIP158" : [ - { - "hash" : "0x11645d1f9235d0092b8cb36f8066e1245abfa79f7f1c14520888bce3713e1fad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6b821fa015e316cdd77bbdbc43091249669a29b9a2e217a54484cf4718439be2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6b821fa015e316cdd77bbdbc43091249669a29b9a2e217a54484cf4718439be2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999950212", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebaaa" : { + "balance" : "0x09", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x5b", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x02", + "0x01" : "0x02", + "0x0104" : "0x01", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x11645d1f9235d0092b8cb36f8066e1245abfa79f7f1c14520888bce3713e1fad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999950052", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "aaaf5374fce5edbc8e2a8697c15331677e6ebaaa" : { + "balance" : "0x09", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x5b", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x02", + "0x01" : "0x02", + "0x0104" : "0x01", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ] - }, + } + ], "pre" : { - "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { - "balance" : "0x5af3107a4000", - "code" : "", - "nonce" : "0x00", + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "100000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -106,14 +195,14 @@ "0x797af6276877e4536b661640954061cdbc3a9761fb5245c340fcb1721307cd9d5f285c96" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0xa95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stWalletTest/walletConstruction.json b/GeneralStateTests/stWalletTest/walletConstruction.json index 1a1219df1..9bc3a4def 100644 --- a/GeneralStateTests/stWalletTest/walletConstruction.json +++ b/GeneralStateTests/stWalletTest/walletConstruction.json @@ -2,113 +2,121 @@ "walletConstruction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletConstructionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf5df26e4920624deca65021964db05a0d6146ef3f6531a03c8a4ace37056f0d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf5df26e4920624deca65021964db05a0d6146ef3f6531a03c8a4ace37056f0d5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5d21e551199cf86e3d13645ec7f518611d676a76432196c10f2a8b8c5bf921f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5d21e551199cf86e3d13645ec7f518611d676a76432196c10f2a8b8c5bf921f9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xde273086f158a587a95f50228ec572815ee6b876800301869ae414bf74d6c095", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 }, - { - "hash" : "0xde273086f158a587a95f50228ec572815ee6b876800301869ae414bf74d6c095", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xf5df26e4920624deca65021964db05a0d6146ef3f6531a03c8a4ace37056f0d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 0, + 1 + ], + "value" : -1 }, - { - "hash" : "0xf5df26e4920624deca65021964db05a0d6146ef3f6531a03c8a4ace37056f0d5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x5d21e551199cf86e3d13645ec7f518611d676a76432196c10f2a8b8c5bf921f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : [ + 0, + 1 + ], + "value" : -1 }, - { - "hash" : "0x5d21e551199cf86e3d13645ec7f518611d676a76432196c10f2a8b8c5bf921f9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -119,15 +127,15 @@ "6060604052604051602080611014833960806040818152925160016000818155818055600160a060020a03331660038190558152610102909452938320939093556201518042046101075582917f102d25c49d33fcdb8976a3f2744e0785c98d9e43b88364859e6aec4ae82eff5c91a250610f958061007f6000396000f300606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe" ], "gasLimit" : [ - "0x12b13f", - "0x1bd8ff" + "1225023", + "1825023" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/walletConstructionOOG.json b/GeneralStateTests/stWalletTest/walletConstructionOOG.json index 75da0a2f6..77cd688d9 100644 --- a/GeneralStateTests/stWalletTest/walletConstructionOOG.json +++ b/GeneralStateTests/stWalletTest/walletConstructionOOG.json @@ -2,113 +2,137 @@ "walletConstructionOOG" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletConstructionOOGFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x3296236c5948e5ce60a0dbd635fe6d1c30887f61ffb60efa0ec858a5d5b07628", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf5df26e4920624deca65021964db05a0d6146ef3f6531a03c8a4ace37056f0d5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x3296236c5948e5ce60a0dbd635fe6d1c30887f61ffb60efa0ec858a5d5b07628", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5d21e551199cf86e3d13645ec7f518611d676a76432196c10f2a8b8c5bf921f9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbb177d808c1e3345f197c1690948a45da1b91056b93473a31f0f106be4b31683", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 }, - { - "hash" : "0xde273086f158a587a95f50228ec572815ee6b876800301869ae414bf74d6c095", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Frontier" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "380223", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999999288044", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0x3296236c5948e5ce60a0dbd635fe6d1c30887f61ffb60efa0ec858a5d5b07628", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0xf5df26e4920624deca65021964db05a0d6146ef3f6531a03c8a4ace37056f0d5", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "EIP158" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "1210063", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999998458204", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "1", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x3296236c5948e5ce60a0dbd635fe6d1c30887f61ffb60efa0ec858a5d5b07628", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 }, - { - "hash" : "0x5d21e551199cf86e3d13645ec7f518611d676a76432196c10f2a8b8c5bf921f9", - "indexes" : { - "data" : 0, - "gas" : 1, - "value" : 0 + "network" : [ + "Metropolis" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "1210063", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "999999999998458204", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "1", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -119,15 +143,15 @@ "6060604052604051602080611014833960806040818152925160016000818155818055600160a060020a03331660038190558152610102909452938320939093556201518042046101075582917f102d25c49d33fcdb8976a3f2744e0785c98d9e43b88364859e6aec4ae82eff5c91a250610f958061007f6000396000f300606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe" ], "gasLimit" : [ - "0x0684d6", - "0x12b13e" + "427222", + "1225022" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/walletConstructionPartial.json b/GeneralStateTests/stWalletTest/walletConstructionPartial.json index 8a1bfb4b7..e1fd71e18 100644 --- a/GeneralStateTests/stWalletTest/walletConstructionPartial.json +++ b/GeneralStateTests/stWalletTest/walletConstructionPartial.json @@ -2,73 +2,112 @@ "walletConstructionPartial" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletConstructionPartialFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf5df26e4920624deca65021964db05a0d6146ef3f6531a03c8a4ace37056f0d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x5d21e551199cf86e3d13645ec7f518611d676a76432196c10f2a8b8c5bf921f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xde273086f158a587a95f50228ec572815ee6b876800301869ae414bf74d6c095", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xf5df26e4920624deca65021964db05a0d6146ef3f6531a03c8a4ace37056f0d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x01", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x5d21e551199cf86e3d13645ec7f518611d676a76432196c10f2a8b8c5bf921f9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } @@ -79,14 +118,14 @@ "6060604052604051602080611014833960806040818152925160016000818155818055600160a060020a03331660038190558152610102909452938320939093556201518042046101075582917f102d25c49d33fcdb8976a3f2744e0785c98d9e43b88364859e6aec4ae82eff5c91a250610f958061007f6000396000f300606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe" ], "gasLimit" : [ - "0x21f37e" + "2225022" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/walletDefault.json b/GeneralStateTests/stWalletTest/walletDefault.json index 0307f236d..1dffe51dd 100644 --- a/GeneralStateTests/stWalletTest/walletDefault.json +++ b/GeneralStateTests/stWalletTest/walletDefault.json @@ -2,78 +2,57 @@ "walletDefault" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletDefaultFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb9ea431e30a83fb32f66ebd5ebf4f8f1a550e0e1471304ebfe6b3025ec8203c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0xc8", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0106" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x567dbc211151e1d9af70a3678402f013b9f04ac62ecc881fb254f7cacf07cb48", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb9ea431e30a83fb32f66ebd5ebf4f8f1a550e0e1471304ebfe6b3025ec8203c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb9ea431e30a83fb32f66ebd5ebf4f8f1a550e0e1471304ebfe6b3025ec8203c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x567dbc211151e1d9af70a3678402f013b9f04ac62ecc881fb254f7cacf07cb48", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -91,14 +70,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/walletDefaultWithOutValue.json b/GeneralStateTests/stWalletTest/walletDefaultWithOutValue.json index 53bf06e25..f41764346 100644 --- a/GeneralStateTests/stWalletTest/walletDefaultWithOutValue.json +++ b/GeneralStateTests/stWalletTest/walletDefaultWithOutValue.json @@ -2,78 +2,66 @@ "walletDefaultWithOutValue" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletDefaultWithOutValueFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xbaca1ba6b75451d3a02f5204972c745a9f7568362fdeb65f4516af9949c2e03d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x5252", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a75e9e3d", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0106" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xbaca1ba6b75451d3a02f5204972c745a9f7568362fdeb65f4516af9949c2e03d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbaca1ba6b75451d3a02f5204972c745a9f7568362fdeb65f4516af9949c2e03d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbaca1ba6b75451d3a02f5204972c745a9f7568362fdeb65f4516af9949c2e03d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbaca1ba6b75451d3a02f5204972c745a9f7568362fdeb65f4516af9949c2e03d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -91,14 +79,14 @@ "" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stWalletTest/walletExecuteOverDailyLimitMultiOwner.json b/GeneralStateTests/stWalletTest/walletExecuteOverDailyLimitMultiOwner.json index 7bbc01685..7309fd07a 100644 --- a/GeneralStateTests/stWalletTest/walletExecuteOverDailyLimitMultiOwner.json +++ b/GeneralStateTests/stWalletTest/walletExecuteOverDailyLimitMultiOwner.json @@ -2,78 +2,65 @@ "walletExecuteOverDailyLimitMultiOwner" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletExecuteOverDailyLimitMultiOwnerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf36bbfa8ef75d0827091e979ab45f88aca100449e23efa61baa1ea9187450db2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x02", + "0x01" : "0x02", + "0x0104" : "0x01", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x04" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0x4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe" : "0x28e0e8f21c16f43aaa1e26147fb1cc74296cd3823267fa5bebc02e090063c36d", + "0x5fd43ee7113b9859f7cab1408959b063a9b2e07b4c9ec4098b2768db95a4cba7" : "0x01", + "0x5fd43ee7113b9859f7cab1408959b063a9b2e07b4c9ec4098b2768db95a4cba8" : "0x02", + "0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043e" : "0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa", + "0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043f" : "0x09", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x02" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4e98ab6f78c177e5a950cbae526866c7bf2f2245aa27e5d47cffcc513b49d3f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x47c3b7b4a9488688b0e7fdface2c118672bc9cd9cf7d56316b0d7c42b4530b18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x47c3b7b4a9488688b0e7fdface2c118672bc9cd9cf7d56316b0d7c42b4530b18", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4e98ab6f78c177e5a950cbae526866c7bf2f2245aa27e5d47cffcc513b49d3f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -92,14 +79,14 @@ "0xb61d27f6000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa00000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000060" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stWalletTest/walletExecuteOverDailyLimitOnlyOneOwner.json b/GeneralStateTests/stWalletTest/walletExecuteOverDailyLimitOnlyOneOwner.json index e07a76794..9f2cc9cfa 100644 --- a/GeneralStateTests/stWalletTest/walletExecuteOverDailyLimitOnlyOneOwner.json +++ b/GeneralStateTests/stWalletTest/walletExecuteOverDailyLimitOnlyOneOwner.json @@ -2,78 +2,61 @@ "walletExecuteOverDailyLimitOnlyOneOwner" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletExecuteOverDailyLimitOnlyOneOwnerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4560f9f796eadd8b25fa6aab7820c620399268377eb5183d45cecf11d3861005", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x01", + "0x0105" : "0x04", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043e" : "0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa", + "0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043f" : "0x09", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc35acda0bf3e60848029418fa6e7f4b9f7de0d0b72ca136aa8cc19e866ab78d0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2d54afeef9b30b0a8ccfb4c8017300d86f54e74ee22d348a0954ed60e24ddbf5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2d54afeef9b30b0a8ccfb4c8017300d86f54e74ee22d348a0954ed60e24ddbf5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc35acda0bf3e60848029418fa6e7f4b9f7de0d0b72ca136aa8cc19e866ab78d0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -91,14 +74,14 @@ "0xb61d27f6000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa00000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000060" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stWalletTest/walletExecuteOverDailyLimitOnlyOneOwnerNew.json b/GeneralStateTests/stWalletTest/walletExecuteOverDailyLimitOnlyOneOwnerNew.json index 1ebc63d18..2eb7760b0 100644 --- a/GeneralStateTests/stWalletTest/walletExecuteOverDailyLimitOnlyOneOwnerNew.json +++ b/GeneralStateTests/stWalletTest/walletExecuteOverDailyLimitOnlyOneOwnerNew.json @@ -2,78 +2,61 @@ "walletExecuteOverDailyLimitOnlyOneOwnerNew" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletExecuteOverDailyLimitOnlyOneOwnerNewFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfb4f90b233539bf0aba711d7b1070b31421272a0a34c9f3c9cf5d531ee110ba3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x01", + "0x0106" : "0x04", + "0x0107" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043e" : "0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa", + "0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043f" : "0x09", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x467ed06f47f9361f8b3112e8c5958013d8e1e4cae54784a1e5b56a079c611b85", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0d1e55d5b34a8dc8c28112c2c69d85d4bf22320367238cb469de61bde0041fc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0d1e55d5b34a8dc8c28112c2c69d85d4bf22320367238cb469de61bde0041fc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x467ed06f47f9361f8b3112e8c5958013d8e1e4cae54784a1e5b56a079c611b85", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -92,14 +75,14 @@ "0xb61d27f6000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa00000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000060" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stWalletTest/walletExecuteUnderDailyLimit.json b/GeneralStateTests/stWalletTest/walletExecuteUnderDailyLimit.json index 5c0a8ecd7..ba58e46ce 100644 --- a/GeneralStateTests/stWalletTest/walletExecuteUnderDailyLimit.json +++ b/GeneralStateTests/stWalletTest/walletExecuteUnderDailyLimit.json @@ -2,78 +2,62 @@ "walletExecuteUnderDailyLimit" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletExecuteUnderDailyLimitFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0c610f77ce142f0eaf4e1d797b2b747c59bf319e28dc79af20dac4b69b5d5927", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "100", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0104" : "0x01", + "0x0105" : "0xff", + "0x0106" : "0x0c22e4", + "0x0107" : "0", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043e" : "0xaaaf5374fce5edbc8e2a8697c15331677e6ebaaa", + "0x69d836d8d4229a4b7482679c45208e1a6079c5be2775a4a87ca2d168319c043f" : "0x09", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x689518c4f1ed3b9c2d585a105cd224aa01e5b951ec744d4fdb5d5b19ab6e8d63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x34221d1e5aed8f56e27a05cc9f59135b04a8889f4c36e58df32027e4445c00ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x34221d1e5aed8f56e27a05cc9f59135b04a8889f4c36e58df32027e4445c00ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x689518c4f1ed3b9c2d585a105cd224aa01e5b951ec744d4fdb5d5b19ab6e8d63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -92,14 +76,14 @@ "0xb61d27f6000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa00000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000060" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stWalletTest/walletKill.json b/GeneralStateTests/stWalletTest/walletKill.json index 1786579aa..80be94212 100644 --- a/GeneralStateTests/stWalletTest/walletKill.json +++ b/GeneralStateTests/stWalletTest/walletKill.json @@ -2,78 +2,48 @@ "walletKill" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletKillFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe19510e88eed6b272878d76ed78088a0e0a109f9a5af5700eb52f08546378de5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x464315f22436999a8774d41d9e577131c7ee0424b1a1aa021b0097cfd96cdc02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x643277f079b24449f5de421c86bbe3804c2dfedd8d50c874fc9acaf64b024182", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x643277f079b24449f5de421c86bbe3804c2dfedd8d50c874fc9acaf64b024182", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x464315f22436999a8774d41d9e577131c7ee0424b1a1aa021b0097cfd96cdc02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -91,14 +61,14 @@ "0xcbf0b0c0000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x01" + "1" ] } } diff --git a/GeneralStateTests/stWalletTest/walletKillNotByOwner.json b/GeneralStateTests/stWalletTest/walletKillNotByOwner.json index 439ede107..2610d318e 100644 --- a/GeneralStateTests/stWalletTest/walletKillNotByOwner.json +++ b/GeneralStateTests/stWalletTest/walletKillNotByOwner.json @@ -2,85 +2,144 @@ "walletKillNotByOwner" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletKillNotByOwnerFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xd41e7b0dc1039a6838820818d456d9e63ec1fe11d97f5b5bb59e51e1ededa22b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "999999999999644789", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0xc8", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0106" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x4f551222d047d6b7a8765fc08ab6a88517d721607987744a9183e55c45029c5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5c1ee1546c12ccaec136dd49ccedb05aec712596fb162ae68fc811c65dbcf728", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5c1ee1546c12ccaec136dd49ccedb05aec712596fb162ae68fc811c65dbcf728", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "999999999999644639", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0xc8", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0106" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x4f551222d047d6b7a8765fc08ab6a88517d721607987744a9183e55c45029c5a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "999999999999644559", + "code" : "0x", + "nonce" : "0x02", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0xc8", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0106" : "0x0c22e4", + "0x03" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x6e369836487c234b9e553ef3f787c2d8865520739d340c67b3d251a33986e58d" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -98,14 +157,14 @@ "0xcbf0b0c0000000000000000000000000aaaf5374fce5edbc8e2a8697c15331677e6ebaaa" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0xa95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/walletKillToWallet.json b/GeneralStateTests/stWalletTest/walletKillToWallet.json index 242ec71a7..dbc7f64b6 100644 --- a/GeneralStateTests/stWalletTest/walletKillToWallet.json +++ b/GeneralStateTests/stWalletTest/walletKillToWallet.json @@ -2,78 +2,48 @@ "walletKillToWallet" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletKillToWalletFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7fb2b50700b86b0902528b7f8532fb33a3e4b57e0aa686c9ad32bb54492275bc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x02", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x90380da4746fbe31e21ac989ec926f1508f96ae3adf04c225af816fc95f1b07d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1064d7bc4ba273295cd7b34976d0fb20c8fdc1e198bde003ea11616894526243", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1064d7bc4ba273295cd7b34976d0fb20c8fdc1e198bde003ea11616894526243", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x90380da4746fbe31e21ac989ec926f1508f96ae3adf04c225af816fc95f1b07d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -91,14 +61,14 @@ "0xcbf0b0c0000000000000000000000000ec0e71ad0a90ffe1909d27dac207f7680abba42d" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x64" + "100" ] } } diff --git a/GeneralStateTests/stWalletTest/walletRemoveOwnerRemovePendingTransaction.json b/GeneralStateTests/stWalletTest/walletRemoveOwnerRemovePendingTransaction.json index a0a0f842c..cd3d7f295 100644 --- a/GeneralStateTests/stWalletTest/walletRemoveOwnerRemovePendingTransaction.json +++ b/GeneralStateTests/stWalletTest/walletRemoveOwnerRemovePendingTransaction.json @@ -2,85 +2,144 @@ "walletRemoveOwnerRemovePendingTransaction" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stWalletTest/walletRemoveOwnerRemovePendingTransactionFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x20000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x08dc2f434c12e5a7f22af2849eb01339216e01e4fd0c194a759a3d7dab122265", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "0x5af310788442", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0x0c22e4", + "0x03" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xd1f22189317089339421e4f708541e7f8c465614f3f76ad96923bad6ca5ee99b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa588fafdd0d941311a310b96122773d21f666cd405c5f364febe26599e0f3f2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa588fafdd0d941311a310b96122773d21f666cd405c5f364febe26599e0f3f2e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999882352", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0x0c22e4", + "0x03" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xd1f22189317089339421e4f708541e7f8c465614f3f76ad96923bad6ca5ee99b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "99999999882172", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01", + "storage" : { + } + }, + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "balance" : "0x64", + "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0107" : "0x0c22e4", + "0x03" : "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4", + "0xd3e69d8c7f41f7aeaf8130ddc53047aeee8cb46a73d6bae86b7e7d6bf8312e6b" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0x3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { - "balance" : "0x5af3107a4000", - "code" : "", - "nonce" : "0x00", + "3fb1cd2cd96c6d5c0b5eb3322d807b34482481d4" : { + "balance" : "100000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "0x0de0b6b3a75ef08f", - "code" : "", + "code" : "0x", "nonce" : "0x01", "storage" : { } }, - "0xec0e71ad0a90ffe1909d27dac207f7680abba42d" : { + "ec0e71ad0a90ffe1909d27dac207f7680abba42d" : { "balance" : "0x64", "code" : "0x606060405236156100b95760e060020a6000350463173825d9811461010b5780632f54bf6e146101675780634123cb6b1461018f5780635c52c2f5146101985780637065cb48146101c9578063746c9171146101fd578063797af62714610206578063b20d30a914610219578063b61d27f61461024d578063b75c7dc61461026e578063ba51a6df1461029e578063c2cf7326146102d2578063cbf0b0c014610312578063f00d4b5d14610346578063f1736d861461037f575b61038960003411156101095760408051600160a060020a033316815234602082015281517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c929181900390910190a15b565b610389600435600060003643604051808484808284375050509091019081526040519081900360200190209050610693815b600160a060020a0333166000908152610102602052604081205481808083811415610c1357610d6c565b61038b6004355b600160a060020a03811660009081526101026020526040812054115b919050565b61038b60015481565b610389600036436040518084848082843750505090910190815260405190819003602001902090506107e58161013d565b6103896004356000364360405180848480828437505050909101908152604051908190036020019020905061060b8161013d565b61038b60005481565b61038b6004355b600081610a4b8161013d565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107d98161013d565b61038b6004803590602480359160443591820191013560006108043361016e565b610389600435600160a060020a033316600090815261010260205260408120549080808381141561039d5761041f565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107528161013d565b61038b600435602435600082815261010360209081526040808320600160a060020a0385168452610102909252822054829081818114156107ab576107cf565b610389600435600036436040518084848082843750505090910190815260405190819003602001902090506107f38161013d565b6103896004356024356000600036436040518084848082843750505090910190815260405190819003602001902090506104ac8161013d565b61038b6101055481565b005b60408051918252519081900360200190f35b5050506000828152610103602052604081206001810154600284900a929083168190111561041f5781546001838101805492909101845590849003905560408051600160a060020a03331681526020810187905281517fc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b929181900390910190a15b5050505050565b600160a060020a03831660028361010081101561000257508301819055600160a060020a03851660008181526101026020908152604080832083905584835291829020869055815192835282019290925281517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c929181900390910190a15b505b505050565b156104a5576104ba8361016e565b156104c557506104a7565b600160a060020a0384166000908152610102602052604081205492508214156104ee57506104a7565b6104265b6101045460005b81811015610eba57610104805461010891600091849081101561000257600080516020610f7583398151915201548252506020918252604081208054600160a060020a0319168155600181018290556002810180548382559083528383209193610f3f92601f9290920104810190610a33565b60018054810190819055600160a060020a038316906002906101008110156100025790900160005081905550600160005054610102600050600084600160a060020a03168152602001908152602001600020600050819055507f994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3826040518082600160a060020a0316815260200191505060405180910390a15b505b50565b15610606576106198261016e565b156106245750610608565b61062c6104f2565b60015460fa90106106415761063f610656565b505b60015460fa901061056c5750610608565b6107105b600060015b600154811015610a47575b600154811080156106865750600281610100811015610002570154600014155b15610d7557600101610666565b156104a757600160a060020a0383166000908152610102602052604081205492508214156106c15750610606565b60016001600050540360006000505411156106dc5750610606565b600060028361010081101561000257508301819055600160a060020a038416815261010260205260408120556106526104f2565b5060408051600160a060020a038516815290517f58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da9181900360200190a1505050565b15610606576001548211156107675750610608565b60008290556107746104f2565b6040805183815290517facbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da9181900360200190a15050565b506001830154600282900a908116600014156107ca57600094506107cf565b600194505b5050505092915050565b15610606575061010555565b156106085760006101065550565b156106065781600160a060020a0316ff5b15610a2357610818846000610e4f3361016e565b156108d4577f92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd00433858786866040518086600160a060020a0316815260200185815260200184600160a060020a031681526020018060200182810382528484828181526020019250808284378201915050965050505050505060405180910390a184600160a060020a03168484846040518083838082843750505090810191506000908083038185876185025a03f15060009350610a2392505050565b6000364360405180848480828437505050909101908152604051908190036020019020915061090490508161020d565b158015610927575060008181526101086020526040812054600160a060020a0316145b15610a235760008181526101086020908152604082208054600160a060020a03191688178155600181018790556002018054858255818452928290209092601f01919091048101908490868215610a2b579182015b82811115610a2b57823582600050559160200191906001019061097c565b50600050507f1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf328133868887876040518087815260200186600160a060020a0316815260200185815260200184600160a060020a03168152602001806020018281038252848482818152602001925080828437820191505097505050505050505060405180910390a15b949350505050565b5061099a9291505b80821115610a475760008155600101610a33565b5090565b15610c005760008381526101086020526040812054600160a060020a031614610c0057604080516000918220805460018201546002929092018054600160a060020a0392909216949293909291819084908015610acd57820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b50509250505060006040518083038185876185025a03f1505050600084815261010860209081526040805181842080546001820154600160a060020a033381811686529685018c905294840181905293166060830181905260a06080840181815260029390930180549185018290527fe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a985095968b969294929390929160c083019085908015610ba257820191906000526020600020905b815481529060010190602001808311610b8557829003601f168201915b505097505050505050505060405180910390a160008381526101086020908152604082208054600160a060020a031916815560018101839055600281018054848255908452828420919392610c0692601f9290920104810190610a33565b50919050565b505050600191505061018a565b6000868152610103602052604081208054909450909250821415610c9c578154835560018381018390556101048054918201808255828015829011610c6b57818360005260206000209182019101610c6b9190610a33565b50505060028401819055610104805488929081101561000257600091909152600080516020610f7583398151915201555b506001820154600284900a90811660001415610d6c5760408051600160a060020a03331681526020810188905281517fe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda929181900390910190a1825460019011610d59576000868152610103602052604090206002015461010480549091908110156100025760406000908120600080516020610f758339815191529290920181905580825560018083018290556002909201559550610d6c9050565b8254600019018355600183018054821790555b50505050919050565b5b60018054118015610d9857506001546002906101008110156100025701546000145b15610dac5760018054600019019055610d76565b60015481108015610dcf5750600154600290610100811015610002570154600014155b8015610de957506002816101008110156100025701546000145b15610e4a57600154600290610100811015610002578101549082610100811015610002578101919091558190610102906000908361010081101561000257810154825260209290925260408120929092556001546101008110156100025701555b61065b565b1561018a5761010754610e655b62015180420490565b1115610e7e57600061010655610e79610e5c565b610107555b6101065480830110801590610e9c5750610106546101055490830111155b15610eb25750610106805482019055600161018a565b50600061018a565b6106066101045460005b81811015610f4a5761010480548290811015610002576000918252600080516020610f75833981519152015414610f3757610104805461010391600091849081101561000257600080516020610f7583398151915201548252506020919091526040812081815560018101829055600201555b600101610ec4565b5050506001016104f9565b61010480546000808355919091526104a790600080516020610f7583398151915290810190610a3356004c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe", "nonce" : "0x00", @@ -106,14 +165,14 @@ "0x173825d9000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0xa95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", - "to" : "0xec0e71ad0a90ffe1909d27dac207f7680abba42d", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "a95defe70ebea7804f9c3be42d20d24375e2a92b9d9666b832069c5f3cd423dd", + "to" : "ec0e71ad0a90ffe1909d27dac207f7680abba42d", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_OOGRevert.json index 3f1fd3b71..9ec2d1d36 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_OOGRevert.json @@ -2,81 +2,56 @@ "ZeroValue_CALLCODE_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_CALLCODE_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7c671ee761d8ff44053165bcd055417cde367f7776a09e89d8784733c2cc8455", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x7c671ee761d8ff44053165bcd055417cde367f7776a09e89d8784733c2cc8455", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7c671ee761d8ff44053165bcd055417cde367f7776a09e89d8784733c2cc8455", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7c671ee761d8ff44053165bcd055417cde367f7776a09e89d8784733c2cc8455", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7c671ee761d8ff44053165bcd055417cde367f7776a09e89d8784733c2cc8455", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f2600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +61,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_ToEmpty_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_ToEmpty_OOGRevert.json index c7ac66ee9..7da9fdbfb 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_ToEmpty_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_ToEmpty_OOGRevert.json @@ -2,88 +2,67 @@ "ZeroValue_CALLCODE_ToEmpty_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_CALLCODE_ToEmpty_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x630c80a1c9136dc756e603afbed948f4e6dfb1a597251f0cf140db05b07d61f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x630c80a1c9136dc756e603afbed948f4e6dfb1a597251f0cf140db05b07d61f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x630c80a1c9136dc756e603afbed948f4e6dfb1a597251f0cf140db05b07d61f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x630c80a1c9136dc756e603afbed948f4e6dfb1a597251f0cf140db05b07d61f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x630c80a1c9136dc756e603afbed948f4e6dfb1a597251f0cf140db05b07d61f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f2600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +72,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_ToNonZeroBalance_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_ToNonZeroBalance_OOGRevert.json index e53071e7d..3f345a40e 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_ToNonZeroBalance_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_ToNonZeroBalance_OOGRevert.json @@ -2,88 +2,63 @@ "ZeroValue_CALLCODE_ToNonZeroBalance_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_CALLCODE_ToNonZeroBalance_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc31305ac8b8b15aadad1f343c288bdd42726b6902055ec3c0a977ccc039a9c6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0xc31305ac8b8b15aadad1f343c288bdd42726b6902055ec3c0a977ccc039a9c6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc31305ac8b8b15aadad1f343c288bdd42726b6902055ec3c0a977ccc039a9c6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc31305ac8b8b15aadad1f343c288bdd42726b6902055ec3c0a977ccc039a9c6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc31305ac8b8b15aadad1f343c288bdd42726b6902055ec3c0a977ccc039a9c6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f2600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +68,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_ToOneStorageKey_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_ToOneStorageKey_OOGRevert.json index df3f32722..7861cc914 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_ToOneStorageKey_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALLCODE_ToOneStorageKey_OOGRevert.json @@ -2,88 +2,65 @@ "ZeroValue_CALLCODE_ToOneStorageKey_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_CALLCODE_ToOneStorageKey_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x95715d1fa0904eb8f52873eaf933dc12e00d41faea8b4ea8c66a8ccacb473658", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x95715d1fa0904eb8f52873eaf933dc12e00d41faea8b4ea8c66a8ccacb473658", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x95715d1fa0904eb8f52873eaf933dc12e00d41faea8b4ea8c66a8ccacb473658", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x95715d1fa0904eb8f52873eaf933dc12e00d41faea8b4ea8c66a8ccacb473658", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x95715d1fa0904eb8f52873eaf933dc12e00d41faea8b4ea8c66a8ccacb473658", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f2600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -94,14 +71,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_OOGRevert.json index 36dd2f953..ea1fc0841 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_OOGRevert.json @@ -2,81 +2,56 @@ "ZeroValue_CALL_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_CALL_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xb622f77cc366ee38e0e60445d264976e17e146db1b41d2587ab15155387a907d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xb622f77cc366ee38e0e60445d264976e17e146db1b41d2587ab15155387a907d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb622f77cc366ee38e0e60445d264976e17e146db1b41d2587ab15155387a907d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb622f77cc366ee38e0e60445d264976e17e146db1b41d2587ab15155387a907d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb622f77cc366ee38e0e60445d264976e17e146db1b41d2587ab15155387a907d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +61,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_ToEmpty_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_ToEmpty_OOGRevert.json index 81534d386..48f7e4204 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_ToEmpty_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_ToEmpty_OOGRevert.json @@ -2,88 +2,64 @@ "ZeroValue_CALL_ToEmpty_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_CALL_ToEmpty_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x20834488e0d6128d6814ee000f67af658e4420093a5c2f19a57296f4ce292808", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x20834488e0d6128d6814ee000f67af658e4420093a5c2f19a57296f4ce292808", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x20834488e0d6128d6814ee000f67af658e4420093a5c2f19a57296f4ce292808", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x20834488e0d6128d6814ee000f67af658e4420093a5c2f19a57296f4ce292808", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x20834488e0d6128d6814ee000f67af658e4420093a5c2f19a57296f4ce292808", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +69,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_ToNonZeroBalance_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_ToNonZeroBalance_OOGRevert.json index 524a1554f..8e5733cca 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_ToNonZeroBalance_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_ToNonZeroBalance_OOGRevert.json @@ -2,88 +2,63 @@ "ZeroValue_CALL_ToNonZeroBalance_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_CALL_ToNonZeroBalance_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa97a6631a53210bde93e99773769869061c90aa80ac6ea87af91bd09210a8f82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0xa97a6631a53210bde93e99773769869061c90aa80ac6ea87af91bd09210a8f82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa97a6631a53210bde93e99773769869061c90aa80ac6ea87af91bd09210a8f82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa97a6631a53210bde93e99773769869061c90aa80ac6ea87af91bd09210a8f82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa97a6631a53210bde93e99773769869061c90aa80ac6ea87af91bd09210a8f82", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +68,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_ToOneStorageKey_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_ToOneStorageKey_OOGRevert.json index 46bdd229b..a8ebe711a 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_ToOneStorageKey_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_CALL_ToOneStorageKey_OOGRevert.json @@ -2,88 +2,65 @@ "ZeroValue_CALL_ToOneStorageKey_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_CALL_ToOneStorageKey_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfc6851b42397111254a685a51d674177f3ed4657d3390b60490eb367a32fda30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfc6851b42397111254a685a51d674177f3ed4657d3390b60490eb367a32fda30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfc6851b42397111254a685a51d674177f3ed4657d3390b60490eb367a32fda30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfc6851b42397111254a685a51d674177f3ed4657d3390b60490eb367a32fda30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfc6851b42397111254a685a51d674177f3ed4657d3390b60490eb367a32fda30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f1600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -94,14 +71,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_OOGRevert.json index a64d50a53..15566f635 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_OOGRevert.json @@ -2,81 +2,56 @@ "ZeroValue_DELEGATECALL_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_DELEGATECALL_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x7aeb2d877345123a802a775949e0e09fc84eb42f280a82f162f02d3581783a3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x7aeb2d877345123a802a775949e0e09fc84eb42f280a82f162f02d3581783a3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7aeb2d877345123a802a775949e0e09fc84eb42f280a82f162f02d3581783a3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7aeb2d877345123a802a775949e0e09fc84eb42f280a82f162f02d3581783a3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7aeb2d877345123a802a775949e0e09fc84eb42f280a82f162f02d3581783a3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f4600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]](GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +61,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToEmpty_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToEmpty_OOGRevert.json index 9d021bfeb..685dc5acc 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToEmpty_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToEmpty_OOGRevert.json @@ -2,88 +2,67 @@ "ZeroValue_DELEGATECALL_ToEmpty_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToEmpty_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x00743d3d0f3b1da4daab567b97c575568527aace98aad552a1bedd1e416629eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x00743d3d0f3b1da4daab567b97c575568527aace98aad552a1bedd1e416629eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x00743d3d0f3b1da4daab567b97c575568527aace98aad552a1bedd1e416629eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x00743d3d0f3b1da4daab567b97c575568527aace98aad552a1bedd1e416629eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x00743d3d0f3b1da4daab567b97c575568527aace98aad552a1bedd1e416629eb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f4600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +72,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToNonZeroBalance_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToNonZeroBalance_OOGRevert.json index 2a7464d9c..18c1b08a1 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToNonZeroBalance_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToNonZeroBalance_OOGRevert.json @@ -2,88 +2,63 @@ "ZeroValue_DELEGATECALL_ToNonZeroBalance_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToNonZeroBalance_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xe33cea28773e30d763ef33cc10b0b5a73c994857fda9b76404d77d2600d12ce2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0xe33cea28773e30d763ef33cc10b0b5a73c994857fda9b76404d77d2600d12ce2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe33cea28773e30d763ef33cc10b0b5a73c994857fda9b76404d77d2600d12ce2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe33cea28773e30d763ef33cc10b0b5a73c994857fda9b76404d77d2600d12ce2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe33cea28773e30d763ef33cc10b0b5a73c994857fda9b76404d77d2600d12ce2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f4600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +68,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToOneStorageKey_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToOneStorageKey_OOGRevert.json index f4b72620c..c58cc781b 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToOneStorageKey_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToOneStorageKey_OOGRevert.json @@ -2,88 +2,65 @@ "ZeroValue_DELEGATECALL_ToOneStorageKey_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_DELEGATECALL_ToOneStorageKey_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x58cbbcf521298087f5ad12f5b5c77963c083e1a9981460b60f722b384fa4cf75", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x64" : "0x00" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x58cbbcf521298087f5ad12f5b5c77963c083e1a9981460b60f722b384fa4cf75", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x58cbbcf521298087f5ad12f5b5c77963c083e1a9981460b60f722b384fa4cf75", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x58cbbcf521298087f5ad12f5b5c77963c083e1a9981460b60f722b384fa4cf75", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x58cbbcf521298087f5ad12f5b5c77963c083e1a9981460b60f722b384fa4cf75", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f4600155600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -94,14 +71,14 @@ "" ], "gasLimit" : [ - "0x020f58" + "135000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_OOGRevert.json index b4985ece0..9a8ac0dae 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_OOGRevert.json @@ -2,88 +2,61 @@ "ZeroValue_SUICIDE_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_SUICIDE_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9ac3a307c3b5591373262bbdc17452a09280a93ac00d9291e412dcde8be6bd6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9ac3a307c3b5591373262bbdc17452a09280a93ac00d9291e412dcde8be6bd6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9ac3a307c3b5591373262bbdc17452a09280a93ac00d9291e412dcde8be6bd6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9ac3a307c3b5591373262bbdc17452a09280a93ac00d9291e412dcde8be6bd6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9ac3a307c3b5591373262bbdc17452a09280a93ac00d9291e412dcde8be6bd6e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b619c40f150600c600255600c600355600c6004555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (CALL 40000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 [[100]](GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } } @@ -93,14 +66,14 @@ "" ], "gasLimit" : [ - "0x0186a0" + "100000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_ToEmpty_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_ToEmpty_OOGRevert.json index 008562826..c585873ab 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_ToEmpty_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_ToEmpty_OOGRevert.json @@ -2,95 +2,68 @@ "ZeroValue_SUICIDE_ToEmpty_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_SUICIDE_ToEmpty_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x6576a4dd9ba26496b2487aad51843d033e6310d300efc8ac05ed12e8ac3bc1b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x6576a4dd9ba26496b2487aad51843d033e6310d300efc8ac05ed12e8ac3bc1b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6576a4dd9ba26496b2487aad51843d033e6310d300efc8ac05ed12e8ac3bc1b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6576a4dd9ba26496b2487aad51843d033e6310d300efc8ac05ed12e8ac3bc1b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6576a4dd9ba26496b2487aad51843d033e6310d300efc8ac05ed12e8ac3bc1b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600073d94f5374fce5edbc8e2a8697c15331677e6ebf0b61c350f150600c600255600c600355600c600455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (CALL 50000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } } @@ -100,14 +73,14 @@ "" ], "gasLimit" : [ - "0x0124f8" + "75000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevert.json index e1decfe2f..8b64033fe 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevert.json @@ -2,95 +2,67 @@ "ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_SUICIDE_ToNonZeroBalance_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfea0a0ec7aaebcf60ee31c12bab3a8d0c83528d6c2745d02640e8b697c529a98", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0xfea0a0ec7aaebcf60ee31c12bab3a8d0c83528d6c2745d02640e8b697c529a98", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfea0a0ec7aaebcf60ee31c12bab3a8d0c83528d6c2745d02640e8b697c529a98", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfea0a0ec7aaebcf60ee31c12bab3a8d0c83528d6c2745d02640e8b697c529a98", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfea0a0ec7aaebcf60ee31c12bab3a8d0c83528d6c2745d02640e8b697c529a98", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600073d94f5374fce5edbc8e2a8697c15331677e6ebf0b61c350f150600c600255600c600355600c600455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (CALL 50000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } } @@ -100,14 +72,14 @@ "" ], "gasLimit" : [ - "0x0124f8" + "75000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_ToOneStorageKey_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_ToOneStorageKey_OOGRevert.json index a4d52d0ba..da89bae05 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_ToOneStorageKey_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_SUICIDE_ToOneStorageKey_OOGRevert.json @@ -2,97 +2,72 @@ "ZeroValue_SUICIDE_ToOneStorageKey_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_SUICIDE_ToOneStorageKey_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x495b5fecb621447ae3999b739863351849b934844896fce657781b3b8888a4b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "1" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x495b5fecb621447ae3999b739863351849b934844896fce657781b3b8888a4b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x495b5fecb621447ae3999b739863351849b934844896fce657781b3b8888a4b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x495b5fecb621447ae3999b739863351849b934844896fce657781b3b8888a4b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x495b5fecb621447ae3999b739863351849b934844896fce657781b3b8888a4b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000600060006000600073d94f5374fce5edbc8e2a8697c15331677e6ebf0b61c350f150600c600255600c600355600c600455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (CALL 50000 0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]]12 [[3]]12 [[4]]12 }", + "nonce" : "0", "storage" : { "0x00" : "0x01" } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } }, - "0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -103,14 +78,14 @@ "" ], "gasLimit" : [ - "0x0124f8" + "75000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_OOGRevert.json index 51cca1339..42004c582 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_OOGRevert.json @@ -2,74 +2,42 @@ "ZeroValue_TransactionCALL_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_TransactionCALL_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x00" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +47,14 @@ "" ], "gasLimit" : [ - "0x4e20" + "20000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_ToEmpty_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_ToEmpty_OOGRevert.json index c830784c4..95c80d727 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_ToEmpty_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_ToEmpty_OOGRevert.json @@ -2,81 +2,50 @@ "ZeroValue_TransactionCALL_ToEmpty_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_TransactionCALL_ToEmpty_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x137accfabce83c4f192c91b88d6e5e5e6e58afa387137b16170fafd5114d8d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x137accfabce83c4f192c91b88d6e5e5e6e58afa387137b16170fafd5114d8d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x137accfabce83c4f192c91b88d6e5e5e6e58afa387137b16170fafd5114d8d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x137accfabce83c4f192c91b88d6e5e5e6e58afa387137b16170fafd5114d8d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x137accfabce83c4f192c91b88d6e5e5e6e58afa387137b16170fafd5114d8d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "" ], "gasLimit" : [ - "0x4e20" + "20000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_ToNonZeroBalance_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_ToNonZeroBalance_OOGRevert.json index 1b30ef464..195e45c92 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_ToNonZeroBalance_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_ToNonZeroBalance_OOGRevert.json @@ -2,81 +2,49 @@ "ZeroValue_TransactionCALL_ToNonZeroBalance_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_TransactionCALL_ToNonZeroBalance_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4575ff9537549d145650ffcb340dfba8c6fe2b4b0a45169a126195ba47f15e29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0x4575ff9537549d145650ffcb340dfba8c6fe2b4b0a45169a126195ba47f15e29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4575ff9537549d145650ffcb340dfba8c6fe2b4b0a45169a126195ba47f15e29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4575ff9537549d145650ffcb340dfba8c6fe2b4b0a45169a126195ba47f15e29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4575ff9537549d145650ffcb340dfba8c6fe2b4b0a45169a126195ba47f15e29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "" ], "gasLimit" : [ - "0x4e20" + "20000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_ToOneStorageKey_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_ToOneStorageKey_OOGRevert.json index 0c7278825..d584d61fe 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_ToOneStorageKey_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALL_ToOneStorageKey_OOGRevert.json @@ -2,81 +2,51 @@ "ZeroValue_TransactionCALL_ToOneStorageKey_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_TransactionCALL_ToOneStorageKey_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x25a66260e106e4aabf890c1bc398ad84d91a5da434f7fe39c2664c2cb1b39e99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x25a66260e106e4aabf890c1bc398ad84d91a5da434f7fe39c2664c2cb1b39e99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x25a66260e106e4aabf890c1bc398ad84d91a5da434f7fe39c2664c2cb1b39e99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x25a66260e106e4aabf890c1bc398ad84d91a5da434f7fe39c2664c2cb1b39e99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x25a66260e106e4aabf890c1bc398ad84d91a5da434f7fe39c2664c2cb1b39e99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -87,14 +57,14 @@ "" ], "gasLimit" : [ - "0x4e20" + "20000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_OOGRevert.json index d29738d04..da45ef5e5 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_OOGRevert.json @@ -2,74 +2,42 @@ "ZeroValue_TransactionCALLwithData_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x00" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x17ca3d673553cbfcf5de4a99ea08088763bbf64aa67ae17a485f585bcc01d3f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +47,14 @@ "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" ], "gasLimit" : [ - "0xea60" + "60000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToEmpty_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToEmpty_OOGRevert.json index 0a44b26dc..cf4c49869 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToEmpty_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToEmpty_OOGRevert.json @@ -2,81 +2,50 @@ "ZeroValue_TransactionCALLwithData_ToEmpty_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToEmpty_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x137accfabce83c4f192c91b88d6e5e5e6e58afa387137b16170fafd5114d8d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x137accfabce83c4f192c91b88d6e5e5e6e58afa387137b16170fafd5114d8d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x137accfabce83c4f192c91b88d6e5e5e6e58afa387137b16170fafd5114d8d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x137accfabce83c4f192c91b88d6e5e5e6e58afa387137b16170fafd5114d8d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x137accfabce83c4f192c91b88d6e5e5e6e58afa387137b16170fafd5114d8d45", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +55,14 @@ "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" ], "gasLimit" : [ - "0xea60" + "60000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToNonZeroBalance_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToNonZeroBalance_OOGRevert.json index b1cf4d673..d39f22199 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToNonZeroBalance_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToNonZeroBalance_OOGRevert.json @@ -2,81 +2,49 @@ "ZeroValue_TransactionCALLwithData_ToNonZeroBalance_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToNonZeroBalance_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x4575ff9537549d145650ffcb340dfba8c6fe2b4b0a45169a126195ba47f15e29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0x4575ff9537549d145650ffcb340dfba8c6fe2b4b0a45169a126195ba47f15e29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4575ff9537549d145650ffcb340dfba8c6fe2b4b0a45169a126195ba47f15e29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4575ff9537549d145650ffcb340dfba8c6fe2b4b0a45169a126195ba47f15e29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4575ff9537549d145650ffcb340dfba8c6fe2b4b0a45169a126195ba47f15e29", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +54,14 @@ "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" ], "gasLimit" : [ - "0xea60" + "60000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToOneStorageKey_OOGRevert.json b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToOneStorageKey_OOGRevert.json index 239bf7cd4..f072d8e05 100644 --- a/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToOneStorageKey_OOGRevert.json +++ b/GeneralStateTests/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToOneStorageKey_OOGRevert.json @@ -2,81 +2,51 @@ "ZeroValue_TransactionCALLwithData_ToOneStorageKey_OOGRevert" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsRevert/ZeroValue_TransactionCALLwithData_ToOneStorageKey_OOGRevertFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x25a66260e106e4aabf890c1bc398ad84d91a5da434f7fe39c2664c2cb1b39e99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "ALL" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x25a66260e106e4aabf890c1bc398ad84d91a5da434f7fe39c2664c2cb1b39e99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x25a66260e106e4aabf890c1bc398ad84d91a5da434f7fe39c2664c2cb1b39e99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x25a66260e106e4aabf890c1bc398ad84d91a5da434f7fe39c2664c2cb1b39e99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x25a66260e106e4aabf890c1bc398ad84d91a5da434f7fe39c2664c2cb1b39e99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -87,14 +57,14 @@ "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d845a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" ], "gasLimit" : [ - "0x0124f8" + "75000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL.json index ebbf86bd2..e1ee5b78a 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL.json @@ -2,81 +2,107 @@ "ZeroValue_CALL" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_CALLFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdfacd1d7556cf17b7c9375eea01cac37b8b207ab4b246db055b6347cf856419d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x08369d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xb808ff569ab264aa525f0c349cb50074245f20286d9bb7d6180b2304008e96df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x61f7fa4930e73b4e1f5423909928473dec0f0d70875373680109967f15b52303", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x61f7fa4930e73b4e1f5423909928473dec0f0d70875373680109967f15b52303", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07d4f5" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xb808ff569ab264aa525f0c349cb50074245f20286d9bb7d6180b2304008e96df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x07d789" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f16001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] (GAS) }", + "comment" : " Zero-value call to nonexistent account: should (i) charge only 700 gas, (ii) not create an account", + "nonce" : "0", "storage" : { } } @@ -86,14 +112,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE.json index fc07b4384..ba780e304 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE.json @@ -2,81 +2,78 @@ "ZeroValue_CALLCODE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_CALLCODEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1531bd9ebfed425c01ab97871c2f5415683b614160c0de07e95ca46a3f8222e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x08369d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x1531bd9ebfed425c01ab97871c2f5415683b614160c0de07e95ca46a3f8222e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0a4c2fa1b508e3612c10290e2b44da1d0600ea0e820312e1115ba01752768e30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0a4c2fa1b508e3612c10290e2b44da1d0600ea0e820312e1115ba01752768e30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1531bd9ebfed425c01ab97871c2f5415683b614160c0de07e95ca46a3f8222e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083931" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f26001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] (GAS) }", + "comment" : " Zero-value call to nonexistent account: should (i) charge only 700 gas, (ii) not create an account", + "nonce" : "0", "storage" : { } } @@ -86,14 +83,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE_ToEmpty.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE_ToEmpty.json index 99483d30c..9dd07bdc9 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE_ToEmpty.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE_ToEmpty.json @@ -2,88 +2,92 @@ "ZeroValue_CALLCODE_ToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_CALLCODE_ToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1c57ca04dea8d4f09c81c54593838c45cf059d13dcfb9f9d70dca2bc1ad285e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x08369d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1c57ca04dea8d4f09c81c54593838c45cf059d13dcfb9f9d70dca2bc1ad285e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfa0fd787f0cc5744ae24855e4b55d9c814880b4e0b319adf5bd143b769fd2759", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfa0fd787f0cc5744ae24855e4b55d9c814880b4e0b319adf5bd143b769fd2759", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1c57ca04dea8d4f09c81c54593838c45cf059d13dcfb9f9d70dca2bc1ad285e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083931" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f26001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +97,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE_ToNonZeroBalance.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE_ToNonZeroBalance.json index 41b112b7c..10596ff68 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE_ToNonZeroBalance.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE_ToNonZeroBalance.json @@ -2,88 +2,84 @@ "ZeroValue_CALLCODE_ToNonZeroBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_CALLCODE_ToNonZeroBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x163b02c31b242f2b5281a276f808990f7004c5b50d017838b51d26895d496742", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x08369d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0x163b02c31b242f2b5281a276f808990f7004c5b50d017838b51d26895d496742", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf206b067c1e166803ecb77d2ed7cfc21ce5a38121c1e50df7123dd3df120e0a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf206b067c1e166803ecb77d2ed7cfc21ce5a38121c1e50df7123dd3df120e0a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x163b02c31b242f2b5281a276f808990f7004c5b50d017838b51d26895d496742", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083931" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f26001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +89,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE_ToOneStorageKey.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE_ToOneStorageKey.json index 60937a8a4..1be94b61b 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE_ToOneStorageKey.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALLCODE_ToOneStorageKey.json @@ -2,88 +2,88 @@ "ZeroValue_CALLCODE_ToOneStorageKey" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_CALLCODE_ToOneStorageKeyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xc06118bf09f1b8f7cff1c7640ddee0147caa17c484d6b0c1b94a96f39034b38e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x08369d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xc06118bf09f1b8f7cff1c7640ddee0147caa17c484d6b0c1b94a96f39034b38e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x009c8b80e40f842626dcf0b4d7a05bd54a039f3e21c50a05edea2144d30169cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x009c8b80e40f842626dcf0b4d7a05bd54a039f3e21c50a05edea2144d30169cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc06118bf09f1b8f7cff1c7640ddee0147caa17c484d6b0c1b94a96f39034b38e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083931" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f26001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALLCODE 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -94,14 +94,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL_ToEmpty.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL_ToEmpty.json index 13d7bbaab..3cd36d488 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL_ToEmpty.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL_ToEmpty.json @@ -2,88 +2,114 @@ "ZeroValue_CALL_ToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_CALL_ToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1e91deccdb8f3af8f85ed11bc5cf3f2deea60b114a04a0bd34829e26da45eece", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x08369d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xb808ff569ab264aa525f0c349cb50074245f20286d9bb7d6180b2304008e96df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf6a72a25e46d8dc29d154d9beb4546d71235a5c4a088d26ef0f2b5c703dd9e57", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf6a72a25e46d8dc29d154d9beb4546d71235a5c4a088d26ef0f2b5c703dd9e57", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x08369d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xb808ff569ab264aa525f0c349cb50074245f20286d9bb7d6180b2304008e96df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083931" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f16001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] (GAS) }", + "comment" : " Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +119,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL_ToNonZeroBalance.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL_ToNonZeroBalance.json index 5aa522cc0..c441121a3 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL_ToNonZeroBalance.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL_ToNonZeroBalance.json @@ -2,88 +2,85 @@ "ZeroValue_CALL_ToNonZeroBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_CALL_ToNonZeroBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xffc52cb4d510f33372bc113a57c816df81c51806dd9e65cc221fca292a5ec0c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x08369d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0xffc52cb4d510f33372bc113a57c816df81c51806dd9e65cc221fca292a5ec0c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x65c98cc8bec8d2874e5cfbdc4d945214f7d47ab09442a3938f8270b478102182", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x65c98cc8bec8d2874e5cfbdc4d945214f7d47ab09442a3938f8270b478102182", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xffc52cb4d510f33372bc113a57c816df81c51806dd9e65cc221fca292a5ec0c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083931" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f16001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] (GAS) }", + "comment" : " Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +90,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL_ToOneStorageKey.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL_ToOneStorageKey.json index 1d506fbda..34439250a 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL_ToOneStorageKey.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_CALL_ToOneStorageKey.json @@ -2,88 +2,116 @@ "ZeroValue_CALL_ToOneStorageKey" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_CALL_ToOneStorageKeyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x01395d03b9f31ec90c2d7d4a100b2e947d06276261708ce7a935b6fd1307743b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x08369d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xb808ff569ab264aa525f0c349cb50074245f20286d9bb7d6180b2304008e96df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x71736a4f0de8af6d14f42ccca3faff1536604a48ca3e97376f9962f0344e0e85", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x71736a4f0de8af6d14f42ccca3faff1536604a48ca3e97376f9962f0344e0e85", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x08369d" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + "0x00" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xb808ff569ab264aa525f0c349cb50074245f20286d9bb7d6180b2304008e96df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083931" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "", + "nonce" : "0", + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a6000556000600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f16001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (CALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[100]] (GAS) }", + "comment" : " Zero-value call to empty account: should (i) charge only 700 gas, (ii) delete an account", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -94,14 +122,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL.json index c85bc2191..86de0864e 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL.json @@ -2,81 +2,98 @@ "ZeroValue_DELEGATECALL" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_DELEGATECALLFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfc6b89839d9f355e819b53cb0a689c082319d3a1209e9beb0a34ff30af987600", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xfc6b89839d9f355e819b53cb0a689c082319d3a1209e9beb0a34ff30af987600", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5499d1bed1bcab78441cfb64cc6918016069aa1de79479a11113e98d9cde7fa9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x521bc80cdaf4081a8429a79e37d0bc6528f0fac7c0ac195da4a1dbd41cd1abb8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x64" : "0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "Metropolis" : [ - { - "hash" : "0xfc6b89839d9f355e819b53cb0a689c082319d3a1209e9beb0a34ff30af987600", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083934" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f46001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +103,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToEmpty.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToEmpty.json index aacdd0047..812ed2c3a 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToEmpty.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToEmpty.json @@ -2,88 +2,117 @@ "ZeroValue_DELEGATECALL_ToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_DELEGATECALL_ToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x55b364749bffbe4de6de27bd1befab41b9afbe7513c559b376a03a27cb0af916", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x55b364749bffbe4de6de27bd1befab41b9afbe7513c559b376a03a27cb0af916", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2679e492e89edbb16b20be31663b8d783e92a85db08be2e2fcddfe0beb6ba088", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdd53adf5f25628ca817be7df8e5a57b5446689ed145a4ac46abf3a45013fe2af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x64" : "0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0x55b364749bffbe4de6de27bd1befab41b9afbe7513c559b376a03a27cb0af916", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083934" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f46001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +122,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToNonZeroBalance.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToNonZeroBalance.json index 0e9f3013e..82243753c 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToNonZeroBalance.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToNonZeroBalance.json @@ -2,88 +2,105 @@ "ZeroValue_DELEGATECALL_ToNonZeroBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_DELEGATECALL_ToNonZeroBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa0ffd8374aa4f0219c79796004e4d128297c960bee088d569ee4fd59303e5bb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0xa0ffd8374aa4f0219c79796004e4d128297c960bee088d569ee4fd59303e5bb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x490c7a4c7f7de525caa617975740e598c8b5d67fdf0b1299a85cbabd29b42d0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf5814da69510fc59eb19ff9a78e870ed05d7e529ac9ccbe17a7a46db4e4369a0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x64" : "0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "Metropolis" : [ - { - "hash" : "0xa0ffd8374aa4f0219c79796004e4d128297c960bee088d569ee4fd59303e5bb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083934" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f46001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +110,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToOneStorageKey.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToOneStorageKey.json index 438f14c0c..e7f99cf1a 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToOneStorageKey.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_DELEGATECALL_ToOneStorageKey.json @@ -2,88 +2,111 @@ "ZeroValue_DELEGATECALL_ToOneStorageKey" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_DELEGATECALL_ToOneStorageKeyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xf17cfda7d19e3648d3bd315a3e888f89f7002b6413cc8dd4de6e433612d6d0d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x0836a0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xf17cfda7d19e3648d3bd315a3e888f89f7002b6413cc8dd4de6e433612d6d0d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb910ee1c13f68cb2c31ebf954a3682dacc4b2bc55eb576f6c42f44d9853d7e80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6baf84679c6338c00371b0e3246c4feaf08e07db41e1e0d191069ae5611645e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0", + "0x01" : "0", + "0x64" : "0" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xf17cfda7d19e3648d3bd315a3e888f89f7002b6413cc8dd4de6e433612d6d0d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x08d5b6", + "0x01" : "0x01", + "0x64" : "0x083934" + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x5a600055600060006000600073c94f5374fce5edbc8e2a8697c15331677e6ebf0b61ea60f46001555a606455", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ [[0]](GAS) [[1]] (DELEGATECALL 60000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[100]] (GAS) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -94,14 +117,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE.json index c76d935ca..31a1838a1 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE.json @@ -2,81 +2,73 @@ "ZeroValue_SUICIDE" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_SUICIDEFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x38f336065869eadc6334a266aa91a7a00f90e339c44cdd6c1f91b1a1eefb39e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x19073b15de72bfe440d768fa8b5b8dbcb1396e79414580eae82b8dc88b7dc7c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x538fd2955fc945ed3aee393e714e9e9e7bb829abc6faa1ba1faff59e2692d2f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x538fd2955fc945ed3aee393e714e9e9e7bb829abc6faa1ba1faff59e2692d2f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x19073b15de72bfe440d768fa8b5b8dbcb1396e79414580eae82b8dc88b7dc7c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } } @@ -86,14 +78,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE_ToEmpty.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE_ToEmpty.json index 97dcb83e7..7410ec5f1 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE_ToEmpty.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE_ToEmpty.json @@ -2,88 +2,80 @@ "ZeroValue_SUICIDE_ToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_SUICIDE_ToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xaebf7d55408775cbde696a6532f08e2563f6c92e233df623981a9633a8dfd44a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x19073b15de72bfe440d768fa8b5b8dbcb1396e79414580eae82b8dc88b7dc7c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x538fd2955fc945ed3aee393e714e9e9e7bb829abc6faa1ba1faff59e2692d2f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x538fd2955fc945ed3aee393e714e9e9e7bb829abc6faa1ba1faff59e2692d2f3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x19073b15de72bfe440d768fa8b5b8dbcb1396e79414580eae82b8dc88b7dc7c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +85,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE_ToNonZeroBalance.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE_ToNonZeroBalance.json index 596fbfc72..df34e9548 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE_ToNonZeroBalance.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE_ToNonZeroBalance.json @@ -2,88 +2,76 @@ "ZeroValue_SUICIDE_ToNonZeroBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_SUICIDE_ToNonZeroBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xa244bf2d8d80e6f9ae1907c208d9b0fa44ff56e067b68390aa23e2cf9fb41b92", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0xa244bf2d8d80e6f9ae1907c208d9b0fa44ff56e067b68390aa23e2cf9fb41b92", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x36edb47a1f2f613fe89c9b8f565b07f95d808bcaf466512c5aa796cc9e195166", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x36edb47a1f2f613fe89c9b8f565b07f95d808bcaf466512c5aa796cc9e195166", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa244bf2d8d80e6f9ae1907c208d9b0fa44ff56e067b68390aa23e2cf9fb41b92", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -93,14 +81,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE_ToOneStorageKey.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE_ToOneStorageKey.json index 77952cc95..94e36d03e 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE_ToOneStorageKey.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_SUICIDE_ToOneStorageKey.json @@ -2,89 +2,79 @@ "ZeroValue_SUICIDE_ToOneStorageKey" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_SUICIDE_ToOneStorageKeyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x78353ce80f19042d29504768c99fd8698ed4c336428c38589611245af4858cef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0x19073b15de72bfe440d768fa8b5b8dbcb1396e79414580eae82b8dc88b7dc7c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7b1fa134637ab17a607e811c226549ee1d5d95f4a29cd09828821dd009c895ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7b1fa134637ab17a607e811c226549ee1d5d95f4a29cd09828821dd009c895ca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x19073b15de72bfe440d768fa8b5b8dbcb1396e79414580eae82b8dc88b7dc7c7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x73c94f5374fce5edbc8e2a8697c15331677e6ebf0bff", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "{ (SELFDESTRUCT 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b) }", + "nonce" : "0", "storage" : { "0x00" : "0x01" } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -95,14 +85,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL.json index 58fbac831..54b7ded2f 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL.json @@ -2,74 +2,66 @@ "ZeroValue_TransactionCALL" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_TransactionCALLFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0436e8afb8caf453484516db354270cf53a5ad1f669b249dad4985f25892fa8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xf886f738424bc64f81fa276afb6217080d775bfcbb8c51348287ab4674f282a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0436e8afb8caf453484516db354270cf53a5ad1f669b249dad4985f25892fa8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0436e8afb8caf453484516db354270cf53a5ad1f669b249dad4985f25892fa8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xf886f738424bc64f81fa276afb6217080d775bfcbb8c51348287ab4674f282a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +71,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL_ToEmpty.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL_ToEmpty.json index ce4c01077..64d767875 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL_ToEmpty.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL_ToEmpty.json @@ -2,81 +2,67 @@ "ZeroValue_TransactionCALL_ToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_TransactionCALL_ToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x0436e8afb8caf453484516db354270cf53a5ad1f669b249dad4985f25892fa8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xf886f738424bc64f81fa276afb6217080d775bfcbb8c51348287ab4674f282a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0436e8afb8caf453484516db354270cf53a5ad1f669b249dad4985f25892fa8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0436e8afb8caf453484516db354270cf53a5ad1f669b249dad4985f25892fa8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf886f738424bc64f81fa276afb6217080d775bfcbb8c51348287ab4674f282a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +72,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL_ToNonZeroBalance.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL_ToNonZeroBalance.json index fe149d764..9912f01a8 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL_ToNonZeroBalance.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL_ToNonZeroBalance.json @@ -2,81 +2,63 @@ "ZeroValue_TransactionCALL_ToNonZeroBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_TransactionCALL_ToNonZeroBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x1ce545b3c5dab0c09d9c0ccda36f0216b629631696c3ae27565311ab587d0189", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0x1ce545b3c5dab0c09d9c0ccda36f0216b629631696c3ae27565311ab587d0189", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1ce545b3c5dab0c09d9c0ccda36f0216b629631696c3ae27565311ab587d0189", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1ce545b3c5dab0c09d9c0ccda36f0216b629631696c3ae27565311ab587d0189", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1ce545b3c5dab0c09d9c0ccda36f0216b629631696c3ae27565311ab587d0189", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +68,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL_ToOneStorageKey.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL_ToOneStorageKey.json index d78bef10c..1b198256f 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL_ToOneStorageKey.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALL_ToOneStorageKey.json @@ -2,81 +2,63 @@ "ZeroValue_TransactionCALL_ToOneStorageKey" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_TransactionCALL_ToOneStorageKeyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9b25ff6ca484aa1f69fcf6b6b5683c856b6f79c34b8d807abdd0a5c37546cef8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xf886f738424bc64f81fa276afb6217080d775bfcbb8c51348287ab4674f282a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9b25ff6ca484aa1f69fcf6b6b5683c856b6f79c34b8d807abdd0a5c37546cef8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9b25ff6ca484aa1f69fcf6b6b5683c856b6f79c34b8d807abdd0a5c37546cef8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf886f738424bc64f81fa276afb6217080d775bfcbb8c51348287ab4674f282a9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "storage" : { + "0x00" : "0x01" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -87,14 +69,14 @@ "" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData.json index ab5c0edf8..4bb842f81 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData.json @@ -2,74 +2,66 @@ "ZeroValue_TransactionCALLwithData" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_TransactionCALLwithDataFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x474d47a4ba9e8bfbc85123c0c70d01e4cd1fb1c2ad45b47ce93d6c4a33cbbdc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xa0b5c17f3edf5eaf8de3c3b98bc8644b101234c615cfa8d1837ef5a63808d38a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x474d47a4ba9e8bfbc85123c0c70d01e4cd1fb1c2ad45b47ce93d6c4a33cbbdc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x474d47a4ba9e8bfbc85123c0c70d01e4cd1fb1c2ad45b47ce93d6c4a33cbbdc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0x01" + }, + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ], - "Metropolis" : [ - { - "hash" : "0xa0b5c17f3edf5eaf8de3c3b98bc8644b101234c615cfa8d1837ef5a63808d38a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -79,14 +71,14 @@ "0x1122334455667788991011121314151617181920" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToEmpty.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToEmpty.json index cdbf45897..60f1956d2 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToEmpty.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToEmpty.json @@ -2,81 +2,67 @@ "ZeroValue_TransactionCALLwithData_ToEmpty" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToEmptyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x474d47a4ba9e8bfbc85123c0c70d01e4cd1fb1c2ad45b47ce93d6c4a33cbbdc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xa0b5c17f3edf5eaf8de3c3b98bc8644b101234c615cfa8d1837ef5a63808d38a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x474d47a4ba9e8bfbc85123c0c70d01e4cd1fb1c2ad45b47ce93d6c4a33cbbdc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x474d47a4ba9e8bfbc85123c0c70d01e4cd1fb1c2ad45b47ce93d6c4a33cbbdc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa0b5c17f3edf5eaf8de3c3b98bc8644b101234c615cfa8d1837ef5a63808d38a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +72,14 @@ "0x1122334455667788991011121314151617181920" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToNonZeroBalance.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToNonZeroBalance.json index 5b7010cb0..be607f925 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToNonZeroBalance.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToNonZeroBalance.json @@ -2,81 +2,63 @@ "ZeroValue_TransactionCALLwithData_ToNonZeroBalance" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToNonZeroBalanceFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x9ce14b8df47f36966f2e8b15dbc18ef5fa597699e61998c19f9ecd994bc7faae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ], - "EIP158" : [ - { - "hash" : "0x9ce14b8df47f36966f2e8b15dbc18ef5fa597699e61998c19f9ecd994bc7faae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9ce14b8df47f36966f2e8b15dbc18ef5fa597699e61998c19f9ecd994bc7faae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9ce14b8df47f36966f2e8b15dbc18ef5fa597699e61998c19f9ecd994bc7faae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9ce14b8df47f36966f2e8b15dbc18ef5fa597699e61998c19f9ecd994bc7faae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100" } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x64", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } } @@ -86,14 +68,14 @@ "0x1122334455667788991011121314151617181920" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToOneStorageKey.json b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToOneStorageKey.json index 091f4bf11..899904d0d 100644 --- a/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToOneStorageKey.json +++ b/GeneralStateTests/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToOneStorageKey.json @@ -2,81 +2,68 @@ "ZeroValue_TransactionCALLwithData_ToOneStorageKey" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroCallsTest/ZeroValue_TransactionCALLwithData_ToOneStorageKeyFiller.json" }, "env" : { - "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x989680", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfc10de5a9dc6f7e9d4429d443414be28fa0e935088d22c494cde43c7efe21178", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "shouldnotexist" : "1" } } - ], - "EIP158" : [ - { - "hash" : "0xa0b5c17f3edf5eaf8de3c3b98bc8644b101234c615cfa8d1837ef5a63808d38a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfc10de5a9dc6f7e9d4429d443414be28fa0e935088d22c494cde43c7efe21178", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfc10de5a9dc6f7e9d4429d443414be28fa0e935088d22c494cde43c7efe21178", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa0b5c17f3edf5eaf8de3c3b98bc8644b101234c615cfa8d1837ef5a63808d38a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", + "code" : "", + "nonce" : "0", + "storage" : { + "0x00" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0xe8d4a51000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0", "code" : "", - "nonce" : "0x00", + "nonce" : "0", "storage" : { "0x00" : "0x01" } @@ -87,14 +74,14 @@ "0x1122334455667788991011121314151617181920" ], "gasLimit" : [ - "0x0927c0" + "600000" ], - "gasPrice" : "0x01", - "nonce" : "0x00", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_0.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_0.json index 19e9d924f..4124cf4c7 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_0.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_0.json @@ -2,7 +2,7 @@ "ecadd_0-0_0-0_21000_0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_0-0_21000_0Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" + "currentTimestamp" : "1000", + "previousHash" : "c6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 0 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc7c83396811d3191909b7c6f6147c47c70bf7de2a5e0bb63ce937e1c87610eaa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "303278", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999696722", + "code" : "0x", + "nonce" : "5", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc7c83396811d3191909b7c6f6147c47c70bf7de2a5e0bb63ce937e1c87610eaa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc7c83396811d3191909b7c6f6147c47c70bf7de2a5e0bb63ce937e1c87610eaa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc7c83396811d3191909b7c6f6147c47c70bf7de2a5e0bb63ce937e1c87610eaa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc7c83396811d3191909b7c6f6147c47c70bf7de2a5e0bb63ce937e1c87610eaa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 0 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x03fa4e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "260686", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a76005b2", - "code" : "", - "nonce" : "0x04", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999739314", + "code" : "0x", + "nonce" : "4", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_128.json index 3d2841ebd..3c2c5dffc 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_128.json @@ -2,7 +2,7 @@ "ecadd_0-0_0-0_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_0-0_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xeb2eceab97b0cfa6f9b1f95d76b018fe4914e185a61e7b889e7df56e595c68a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "174734", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825266", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xeb2eceab97b0cfa6f9b1f95d76b018fe4914e185a61e7b889e7df56e595c68a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xeb2eceab97b0cfa6f9b1f95d76b018fe4914e185a61e7b889e7df56e595c68a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xeb2eceab97b0cfa6f9b1f95d76b018fe4914e185a61e7b889e7df56e595c68a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xeb2eceab97b0cfa6f9b1f95d76b018fe4914e185a61e7b889e7df56e595c68a5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_192.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_192.json index d4773135f..8a8390c66 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_192.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_192.json @@ -2,7 +2,7 @@ "ecadd_0-0_0-0_21000_192" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_0-0_21000_192Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x423fd915e03dda6ba389baf73b62174afe77d40d197b73683c7accfd74fccc42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "346702", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999653298", + "code" : "0x", + "nonce" : "6", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x423fd915e03dda6ba389baf73b62174afe77d40d197b73683c7accfd74fccc42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x423fd915e03dda6ba389baf73b62174afe77d40d197b73683c7accfd74fccc42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x423fd915e03dda6ba389baf73b62174afe77d40d197b73683c7accfd74fccc42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x423fd915e03dda6ba389baf73b62174afe77d40d197b73683c7accfd74fccc42", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x04a0ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "303278", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75f5f52", - "code" : "", - "nonce" : "0x05", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999696722", + "code" : "0x", + "nonce" : "5", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_64.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_64.json index 91ee6fa8b..32c0e9536 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_64.json @@ -2,7 +2,7 @@ "ecadd_0-0_0-0_21000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_0-0_21000_64Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" + "currentTimestamp" : "1000", + "previousHash" : "c6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x4460e90bc6fa4e02910f7ff61d3a2ed3eaf9c6357d02a6e912ece8ff8db927e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "217646", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999782354", + "code" : "0x", + "nonce" : "3", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4460e90bc6fa4e02910f7ff61d3a2ed3eaf9c6357d02a6e912ece8ff8db927e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4460e90bc6fa4e02910f7ff61d3a2ed3eaf9c6357d02a6e912ece8ff8db927e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4460e90bc6fa4e02910f7ff61d3a2ed3eaf9c6357d02a6e912ece8ff8db927e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4460e90bc6fa4e02910f7ff61d3a2ed3eaf9c6357d02a6e912ece8ff8db927e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x02aa8e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "174734", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7615572", - "code" : "", - "nonce" : "0x02", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825266", + "code" : "0x", + "nonce" : "2", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_80.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_80.json index 671036274..bf871580b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_21000_80.json @@ -2,7 +2,7 @@ "ecadd_0-0_0-0_21000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_0-0_21000_80Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc347801a8ee245b7215fcc326fc3e0564017b1cd5471c5c81ccdb0cf368733d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "260686", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999739314", + "code" : "0x", + "nonce" : "4", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc347801a8ee245b7215fcc326fc3e0564017b1cd5471c5c81ccdb0cf368733d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc347801a8ee245b7215fcc326fc3e0564017b1cd5471c5c81ccdb0cf368733d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc347801a8ee245b7215fcc326fc3e0564017b1cd5471c5c81ccdb0cf368733d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc347801a8ee245b7215fcc326fc3e0564017b1cd5471c5c81ccdb0cf368733d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x03522e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "217646", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a760add2", - "code" : "", - "nonce" : "0x03", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999782354", + "code" : "0x", + "nonce" : "3", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_0.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_0.json index 0dc75cc30..72f443a13 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_0.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_0.json @@ -2,7 +2,7 @@ "ecadd_0-0_0-0_25000_0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_0-0_25000_0Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 0 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xcc6eb3cd46f513c36569f86ff54cd734df4e69f531b7693f6e430764f4b9466b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1059377", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998940623", + "code" : "0x", + "nonce" : "23", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xcc6eb3cd46f513c36569f86ff54cd734df4e69f531b7693f6e430764f4b9466b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x85ccc67c5755220d152dff3c330c9518cc25538336f2468e8839bb77b007af7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x85ccc67c5755220d152dff3c330c9518cc25538336f2468e8839bb77b007af7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x728f1c88cd93dd73e0fbfcd448ba30a51d52bcde7a6b1ea23112aba19328628a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 0 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0fb8fd", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1030397", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7544703", - "code" : "", - "nonce" : "0x16", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998969603", + "code" : "0x", + "nonce" : "22", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_128.json index 12871bb6f..f1d5fcaa8 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_128.json @@ -2,7 +2,7 @@ "ecadd_0-0_0-0_25000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_0-0_25000_128Filler.json" }, "env" : { @@ -10,200 +10,303 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xf9159b5fb22db92efda6dd03fe59973989773db03831f4333ce2773d915fb36d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "971654", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999028346", + "code" : "0x", + "nonce" : "20", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf9159b5fb22db92efda6dd03fe59973989773db03831f4333ce2773d915fb36d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x344dde8a6911c155328c59b75c793bf9a180aa67513327654ad8699eb8ed0810", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x344dde8a6911c155328c59b75c793bf9a180aa67513327654ad8699eb8ed0810", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1013c9f75720201850921327873f74b944afb06254bdd13316a89df2c1bf2f0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0e256e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "927086", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a755da92", - "code" : "", - "nonce" : "0x13", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999072914", + "code" : "0x", + "nonce" : "19", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_192.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_192.json index 7336ee2fd..511426a06 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_192.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_192.json @@ -2,7 +2,7 @@ "ecadd_0-0_0-0_25000_192" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_0-0_25000_192Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc7cf4d19ace0d1a912b51a80a493faf81941928ca85d782305a426360f620223", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1089207", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998910793", + "code" : "0x", + "nonce" : "24", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc7cf4d19ace0d1a912b51a80a493faf81941928ca85d782305a426360f620223", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7474818de9331af5a227445adda79385bb48a6a2f6bab87bc5410a47aee38375", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7474818de9331af5a227445adda79385bb48a6a2f6bab87bc5410a47aee38375", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcc8fa166e3c926dcf052945f0a47751884fff6c4e645f400e391166b698f5254", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x102a31", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1059377", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a753d5cf", - "code" : "", - "nonce" : "0x17", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998940623", + "code" : "0x", + "nonce" : "23", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_64.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_64.json index d13f70b3e..7739529b6 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_64.json @@ -2,7 +2,7 @@ "ecadd_0-0_0-0_25000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_0-0_25000_64Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 64 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x7dbe8cd6f0a44a28001bb1377a31f7ec72e48160ca8ca71ec018171ac8f063fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1000960", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998999040", + "code" : "0x", + "nonce" : "21", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7dbe8cd6f0a44a28001bb1377a31f7ec72e48160ca8ca71ec018171ac8f063fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcc9b8e2a195922eda2441a89bc39d88ba858c9b48b119fcf7c8ec79aa960935b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcc9b8e2a195922eda2441a89bc39d88ba858c9b48b119fcf7c8ec79aa960935b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x520d243e94a46335d4a85ff32950518d253f928d5064111d236d41bb026dc5af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 64 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0ed386", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "971654", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7552c7a", - "code" : "", - "nonce" : "0x14", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999028346", + "code" : "0x", + "nonce" : "20", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_80.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_80.json index 921c744df..80e0f01b1 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_0-0_25000_80.json @@ -2,7 +2,7 @@ "ecadd_0-0_0-0_25000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_0-0_25000_80Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 80 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x8a1b1653f64b20fef691dcce000417a525c536cf4d151b6fb4f0349efb671bbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1030397", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998969603", + "code" : "0x", + "nonce" : "22", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8a1b1653f64b20fef691dcce000417a525c536cf4d151b6fb4f0349efb671bbb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb9a5460f8aa458d28d59d007de81b0616c0de32d6f881ed7fb34ed5aed324b98", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb9a5460f8aa458d28d59d007de81b0616c0de32d6f881ed7fb34ed5aed324b98", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd9d519aa0e17df3275aa7ca85d4266c49f953b8db7887467235d0127f3641756", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 80 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0f4600", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1000960", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a754ba00", - "code" : "", - "nonce" : "0x15", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998999040", + "code" : "0x", + "nonce" : "21", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_21000_128.json index 516248209..54270945e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_21000_128.json @@ -2,7 +2,7 @@ "ecadd_0-0_1-2_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_1-2_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xf2cf70d59552ba3bcc6d1563d1a3f2ef7e41358dd9bd699b761084cf98c470c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "389998", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999610002", + "code" : "0x", + "nonce" : "7", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf2cf70d59552ba3bcc6d1563d1a3f2ef7e41358dd9bd699b761084cf98c470c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf2cf70d59552ba3bcc6d1563d1a3f2ef7e41358dd9bd699b761084cf98c470c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf2cf70d59552ba3bcc6d1563d1a3f2ef7e41358dd9bd699b761084cf98c470c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf2cf70d59552ba3bcc6d1563d1a3f2ef7e41358dd9bd699b761084cf98c470c3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x054a4e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "346702", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75eb5b2", - "code" : "", - "nonce" : "0x06", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999653298", + "code" : "0x", + "nonce" : "6", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_21000_192.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_21000_192.json index 0ac106497..3c6e2e0b0 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_21000_192.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_21000_192.json @@ -2,7 +2,7 @@ "ecadd_0-0_1-2_21000_192" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_1-2_21000_192Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x53e95dade29b366b396409ce90561b50167931b6a0ffb8d622d9d655d3031c78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "433550", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999566450", + "code" : "0x", + "nonce" : "8", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x53e95dade29b366b396409ce90561b50167931b6a0ffb8d622d9d655d3031c78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x53e95dade29b366b396409ce90561b50167931b6a0ffb8d622d9d655d3031c78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x53e95dade29b366b396409ce90561b50167931b6a0ffb8d622d9d655d3031c78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x53e95dade29b366b396409ce90561b50167931b6a0ffb8d622d9d655d3031c78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x05f36e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "389998", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75e0c92", - "code" : "", - "nonce" : "0x07", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999610002", + "code" : "0x", + "nonce" : "7", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_25000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_25000_128.json index 610457802..07894a32a 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_25000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_25000_128.json @@ -2,7 +2,7 @@ "ecadd_0-0_1-2_25000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_1-2_25000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xfd12faff0c9ab074adbdeaf28a2e6f13c1f79f71cfa1b3a494370e0fba85ef8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1118903", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998881097", + "code" : "0x", + "nonce" : "25", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfd12faff0c9ab074adbdeaf28a2e6f13c1f79f71cfa1b3a494370e0fba85ef8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb3931eb8a859efa92ac9c19f326c52ed3a257f7623a1e323a5b9ab4cd0342ce3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb3931eb8a859efa92ac9c19f326c52ed3a257f7623a1e323a5b9ab4cd0342ce3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9a9c2503427fea639948be2afae97c68d045efe11b8381f5fbfa83fcfcd7588e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x109eb7", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1089207", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7536149", - "code" : "", - "nonce" : "0x18", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998910793", + "code" : "0x", + "nonce" : "24", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_25000_192.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_25000_192.json index 2b01d54ca..649159916 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_25000_192.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-2_25000_192.json @@ -2,7 +2,7 @@ "ecadd_0-0_1-2_25000_192" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_1-2_25000_192Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x08a98a740ce5ffae0389d5bccc4c9bed4eb251e1a4319756115b05fc8cb8f585", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1148861", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998851139", + "code" : "0x", + "nonce" : "26", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x08a98a740ce5ffae0389d5bccc4c9bed4eb251e1a4319756115b05fc8cb8f585", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x77ec18a02cbd6f75a18bfdf0c70ace78583af1001162ad5b29e3992ba3d0afbd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x77ec18a02cbd6f75a18bfdf0c70ace78583af1001162ad5b29e3992ba3d0afbd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x83d8b0ca87727f4e2f33aa6383ffbfc1bd80965287f751562de6a42208accca1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1112b7", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1118903", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a752ed49", - "code" : "", - "nonce" : "0x19", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998881097", + "code" : "0x", + "nonce" : "25", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-3_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-3_21000_128.json index af6bc1e5d..c1c1ffa60 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-3_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-3_21000_128.json @@ -2,7 +2,7 @@ "ecadd_0-0_1-3_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_1-3_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (1, 3) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x66c2dd09b9d850342b6454042a963569271b3a4ddd606d33cd2af8dd4c9258b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "796814", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999203186", + "code" : "0x", + "nonce" : "16", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x66c2dd09b9d850342b6454042a963569271b3a4ddd606d33cd2af8dd4c9258b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x66c2dd09b9d850342b6454042a963569271b3a4ddd606d33cd2af8dd4c9258b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x66c2dd09b9d850342b6454042a963569271b3a4ddd606d33cd2af8dd4c9258b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x66c2dd09b9d850342b6454042a963569271b3a4ddd606d33cd2af8dd4c9258b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (1, 3) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0b7f6e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "753518", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7588092", - "code" : "", - "nonce" : "0x0f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999246482", + "code" : "0x", + "nonce" : "15", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-3_25000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-3_25000_128.json index d80aec263..19a804b2e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-3_25000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-0_1-3_25000_128.json @@ -2,7 +2,7 @@ "ecadd_0-0_1-3_25000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-0_1-3_25000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 0) and (1, 3) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x1b378e15f9d8d37ede2fef5ab8a3145e32466c601e2291925851ba5e410c3915", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1420937", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998579063", + "code" : "0x", + "nonce" : "34", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1b378e15f9d8d37ede2fef5ab8a3145e32466c601e2291925851ba5e410c3915", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb147a891882a9fcede7b5db70c4f187e7ab5494bd8224b75e885e60be43f6fce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb147a891882a9fcede7b5db70c4f187e7ab5494bd8224b75e885e60be43f6fce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb147a891882a9fcede7b5db70c4f187e7ab5494bd8224b75e885e60be43f6fce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 0) and (1, 3) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x14f5c9", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1373641", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74f0a37", - "code" : "", - "nonce" : "0x21", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998626359", + "code" : "0x", + "nonce" : "33", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-3_1-2_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-3_1-2_21000_128.json index a60433239..9777c53c4 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-3_1-2_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-3_1-2_21000_128.json @@ -2,7 +2,7 @@ "ecadd_0-3_1-2_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-3_1-2_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 3) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc218877982c4a7199f7a68c5bd25d1d70b1df9dfe5602c8eab67dcb92e0723e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "883342", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999116658", + "code" : "0x", + "nonce" : "18", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc218877982c4a7199f7a68c5bd25d1d70b1df9dfe5602c8eab67dcb92e0723e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc218877982c4a7199f7a68c5bd25d1d70b1df9dfe5602c8eab67dcb92e0723e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc218877982c4a7199f7a68c5bd25d1d70b1df9dfe5602c8eab67dcb92e0723e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc218877982c4a7199f7a68c5bd25d1d70b1df9dfe5602c8eab67dcb92e0723e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 3) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0cd12e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "839982", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7572ed2", - "code" : "", - "nonce" : "0x11", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999160018", + "code" : "0x", + "nonce" : "17", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_0-3_1-2_25000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_0-3_1-2_25000_128.json index 9959dbc44..7375e6f3e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_0-3_1-2_25000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_0-3_1-2_25000_128.json @@ -2,7 +2,7 @@ "ecadd_0-3_1-2_25000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_0-3_1-2_25000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (0, 3) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xead2f94be18011bd3d30a6e51f42b269806fe4bd17dffefbdea70bf449458c52", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1515465", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998484535", + "code" : "0x", + "nonce" : "36", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xead2f94be18011bd3d30a6e51f42b269806fe4bd17dffefbdea70bf449458c52", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3170d5c24613fd346e7d32d0c8022a0cecc8ecdffa63394d5818165c7d6ecd96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3170d5c24613fd346e7d32d0c8022a0cecc8ecdffa63394d5818165c7d6ecd96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3170d5c24613fd346e7d32d0c8022a0cecc8ecdffa63394d5818165c7d6ecd96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (0, 3) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1666c9", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1468105", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74d9937", - "code" : "", - "nonce" : "0x23", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998531895", + "code" : "0x", + "nonce" : "35", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_21000_128.json index 3a3c755eb..f83f9b586 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_21000_128.json @@ -2,7 +2,7 @@ "ecadd_1-2_0-0_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1-2_0-0_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xd51ee429a44a7f40794c4a55aa7e71dc5c1a6c546fe8e8c9f1f77aa514cc18e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "519886", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999480114", + "code" : "0x", + "nonce" : "10", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd51ee429a44a7f40794c4a55aa7e71dc5c1a6c546fe8e8c9f1f77aa514cc18e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd51ee429a44a7f40794c4a55aa7e71dc5c1a6c546fe8e8c9f1f77aa514cc18e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd51ee429a44a7f40794c4a55aa7e71dc5c1a6c546fe8e8c9f1f77aa514cc18e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd51ee429a44a7f40794c4a55aa7e71dc5c1a6c546fe8e8c9f1f77aa514cc18e9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0745ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "476590", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75cba52", - "code" : "", - "nonce" : "0x09", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999523410", + "code" : "0x", + "nonce" : "9", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_21000_192.json b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_21000_192.json index 2f74e1f82..8ecba3647 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_21000_192.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_21000_192.json @@ -2,7 +2,7 @@ "ecadd_1-2_0-0_21000_192" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1-2_0-0_21000_192Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x5313a9ca9e2449a7f52e5700e898d090a1b7f804c5e863403ee15d4497701856", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "563438", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999436562", + "code" : "0x", + "nonce" : "11", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5313a9ca9e2449a7f52e5700e898d090a1b7f804c5e863403ee15d4497701856", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5313a9ca9e2449a7f52e5700e898d090a1b7f804c5e863403ee15d4497701856", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5313a9ca9e2449a7f52e5700e898d090a1b7f804c5e863403ee15d4497701856", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5313a9ca9e2449a7f52e5700e898d090a1b7f804c5e863403ee15d4497701856", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x07eece", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "519886", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75c1132", - "code" : "", - "nonce" : "0x0a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999480114", + "code" : "0x", + "nonce" : "10", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_21000_64.json b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_21000_64.json index f47fab3f5..0a890f766 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_21000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_21000_64.json @@ -2,7 +2,7 @@ "ecadd_1-2_0-0_21000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1-2_0-0_21000_64Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x5939f3837a74f6dc7364dcdeb51c9b294b5fff7c89d780cf2c589657ca4d5acd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "476590", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999523410", + "code" : "0x", + "nonce" : "9", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5939f3837a74f6dc7364dcdeb51c9b294b5fff7c89d780cf2c589657ca4d5acd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5939f3837a74f6dc7364dcdeb51c9b294b5fff7c89d780cf2c589657ca4d5acd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5939f3837a74f6dc7364dcdeb51c9b294b5fff7c89d780cf2c589657ca4d5acd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5939f3837a74f6dc7364dcdeb51c9b294b5fff7c89d780cf2c589657ca4d5acd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x069d8e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "433550", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75d6272", - "code" : "", - "nonce" : "0x08", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999566450", + "code" : "0x", + "nonce" : "8", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_25000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_25000_128.json index eac95e848..1eb736452 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_25000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_25000_128.json @@ -2,7 +2,7 @@ "ecadd_1-2_0-0_25000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1-2_0-0_25000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x388fc1a6242be256ab99d2fde326249d91fdef1df370ffd20f7d25376c02aec5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1207991", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998792009", + "code" : "0x", + "nonce" : "28", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x388fc1a6242be256ab99d2fde326249d91fdef1df370ffd20f7d25376c02aec5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa4bda9d1171d294e9206d6d6c1e1bd4fbc1fe6c41d9d5d67fec9f1d7df91260b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa4bda9d1171d294e9206d6d6c1e1bd4fbc1fe6c41d9d5d67fec9f1d7df91260b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x90a33b842805253961b7f04c4e236761386f13a67ceafb2ebbb491f498a453d1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x11fab7", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1178295", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7520549", - "code" : "", - "nonce" : "0x1b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998821705", + "code" : "0x", + "nonce" : "27", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_25000_192.json b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_25000_192.json index 1e6d2b365..375e334ee 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_25000_192.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_25000_192.json @@ -2,7 +2,7 @@ "ecadd_1-2_0-0_25000_192" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1-2_0-0_25000_192Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x05b93242f6ee6bfcec06d44ba99ac5b3dc836091ffc931fce43124fb9e8bc48b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1237949", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998762051", + "code" : "0x", + "nonce" : "29", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x05b93242f6ee6bfcec06d44ba99ac5b3dc836091ffc931fce43124fb9e8bc48b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x071f0cc871c2598e1107607095ecfaf4cc6f5444801756585d199880e1ba680c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x071f0cc871c2598e1107607095ecfaf4cc6f5444801756585d199880e1ba680c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1e21dff3666bfdff87c1e794f92679810c6cbd0f5f7349376fc556404b65f0d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x126eb7", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1207991", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7519149", - "code" : "", - "nonce" : "0x1c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998792009", + "code" : "0x", + "nonce" : "28", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_25000_64.json b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_25000_64.json index d46d45f01..50a094e9c 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_25000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_0-0_25000_64.json @@ -2,7 +2,7 @@ "ecadd_1-2_0-0_25000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1-2_0-0_25000_64Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 64 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xb326b34eb62ab013ee4098dadfe21832ea5501e3700aabb52098e64edfd8a989", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1178295", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998821705", + "code" : "0x", + "nonce" : "27", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xb326b34eb62ab013ee4098dadfe21832ea5501e3700aabb52098e64edfd8a989", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe514b0ce005f95c6ad5bafe77438d5f1fc4eeb7e744f2eb3b98e167babcff3d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe514b0ce005f95c6ad5bafe77438d5f1fc4eeb7e744f2eb3b98e167babcff3d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6bb08bdefe8747e14279a1ff3d810ebec83b07b36b30efec51e5785315ed79fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (1, 2) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 64 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1187bd", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1148861", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7527843", - "code" : "", - "nonce" : "0x1a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998851139", + "code" : "0x", + "nonce" : "26", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_21000_128.json index 800689f73..099feea80 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_21000_128.json @@ -2,7 +2,7 @@ "ecadd_1-2_1-2_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1-2_1-2_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (1, 2) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x54487cb32bf535f9e60903c2fbc7ad6011e11bc5d88f28888c750e495cba5191", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "606862", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999393138", + "code" : "0x", + "nonce" : "12", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x54487cb32bf535f9e60903c2fbc7ad6011e11bc5d88f28888c750e495cba5191", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x54487cb32bf535f9e60903c2fbc7ad6011e11bc5d88f28888c750e495cba5191", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x54487cb32bf535f9e60903c2fbc7ad6011e11bc5d88f28888c750e495cba5191", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x54487cb32bf535f9e60903c2fbc7ad6011e11bc5d88f28888c750e495cba5191", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (1, 2) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0898ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "563438", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75b6712", - "code" : "", - "nonce" : "0x0b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999436562", + "code" : "0x", + "nonce" : "11", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_21000_192.json b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_21000_192.json index 85c29a344..d02bbac78 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_21000_192.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_21000_192.json @@ -2,7 +2,7 @@ "ecadd_1-2_1-2_21000_192" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1-2_1-2_21000_192Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (1, 2) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x7d09a40e0198baff35cf0a03bb8d328e221b77926cd8654818cdb26364335190", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "650542", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999349458", + "code" : "0x", + "nonce" : "13", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7d09a40e0198baff35cf0a03bb8d328e221b77926cd8654818cdb26364335190", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7d09a40e0198baff35cf0a03bb8d328e221b77926cd8654818cdb26364335190", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7d09a40e0198baff35cf0a03bb8d328e221b77926cd8654818cdb26364335190", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7d09a40e0198baff35cf0a03bb8d328e221b77926cd8654818cdb26364335190", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (1, 2) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x09428e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "606862", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75abd72", - "code" : "", - "nonce" : "0x0c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999393138", + "code" : "0x", + "nonce" : "12", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_25000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_25000_128.json index 822127ad4..b6eaa1471 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_25000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_25000_128.json @@ -2,7 +2,7 @@ "ecadd_1-2_1-2_25000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1-2_1-2_25000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (1, 2) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x09d43241f7ab9693966e6944d42d22a862640448200fd7aca3d66038bb9456fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1267773", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998732227", + "code" : "0x", + "nonce" : "30", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x09d43241f7ab9693966e6944d42d22a862640448200fd7aca3d66038bb9456fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9acab321253d44d249246b69e1311340ba53bb73c0686f0d7a2194e72167129b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9acab321253d44d249246b69e1311340ba53bb73c0686f0d7a2194e72167129b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x743056add841138f149877794652fedd7ee1974b3226dc29a3fb2258b15d2bd7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (1, 2) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x12e3bd", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1237949", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7511c43", - "code" : "", - "nonce" : "0x1d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998762051", + "code" : "0x", + "nonce" : "29", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_25000_192.json b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_25000_192.json index d755e48a7..b755b2d3e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_25000_192.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1-2_1-2_25000_192.json @@ -2,7 +2,7 @@ "ecadd_1-2_1-2_25000_192" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1-2_1-2_25000_192Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (1, 2) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x067e2b8c29cf4462a606cffde5e6db27db1d5c174a585cc031f1c09396318d0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1297859", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998702141", + "code" : "0x", + "nonce" : "31", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x067e2b8c29cf4462a606cffde5e6db27db1d5c174a585cc031f1c09396318d0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa2349a3e04725bf645843dbc59921c1940375e655f644473505cb3765a19156a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa2349a3e04725bf645843dbc59921c1940375e655f644473505cb3765a19156a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x045f0032ae62226e25deec2bb51e3b7ee42350984c7637d881e5b8050f3c352c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (1, 2) and (1, 2) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x13583d", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1267773", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a750a7c3", - "code" : "", - "nonce" : "0x1e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998732227", + "code" : "0x", + "nonce" : "30", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1-3_0-0_21000_80.json b/GeneralStateTests/stZeroKnowledge/ecadd_1-3_0-0_21000_80.json index 9b78d992b..9e1525f65 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1-3_0-0_21000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1-3_0-0_21000_80.json @@ -2,7 +2,7 @@ "ecadd_1-3_0-0_21000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1-3_0-0_21000_80Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (1, 3) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xa823bd198814501706285bbe66091df849fe287d83e8ed7660dfbe377b0eac78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "839982", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999160018", + "code" : "0x", + "nonce" : "17", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xa823bd198814501706285bbe66091df849fe287d83e8ed7660dfbe377b0eac78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa823bd198814501706285bbe66091df849fe287d83e8ed7660dfbe377b0eac78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa823bd198814501706285bbe66091df849fe287d83e8ed7660dfbe377b0eac78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa823bd198814501706285bbe66091df849fe287d83e8ed7660dfbe377b0eac78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (1, 3) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0c288e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "796814", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a757d772", - "code" : "", - "nonce" : "0x10", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999203186", + "code" : "0x", + "nonce" : "16", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1-3_0-0_25000_80.json b/GeneralStateTests/stZeroKnowledge/ecadd_1-3_0-0_25000_80.json index cc516715e..bcfa94fa8 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1-3_0-0_25000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1-3_0-0_25000_80.json @@ -2,7 +2,7 @@ "ecadd_1-3_0-0_25000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1-3_0-0_25000_80Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (1, 3) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 80 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xeffbc3ab4d740706e7e367bfba4370f4a337daab74be1f9cf8a284b9d56c18a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1468105", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998531895", + "code" : "0x", + "nonce" : "35", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xeffbc3ab4d740706e7e367bfba4370f4a337daab74be1f9cf8a284b9d56c18a4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4c529e4036332a2635c933be0b664451052c6482f3789fa9b20d9f5d0265f792", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4c529e4036332a2635c933be0b664451052c6482f3789fa9b20d9f5d0265f792", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4c529e4036332a2635c933be0b664451052c6482f3789fa9b20d9f5d0265f792", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (1, 3) and (0, 0) into the ECADD precompile, truncating or expanding the input data to 80 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x15ae89", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1420937", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74e5177", - "code" : "", - "nonce" : "0x22", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998579063", + "code" : "0x", + "nonce" : "34", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_1145-4651_21000_192.json b/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_1145-4651_21000_192.json index 9bb19dc93..a88f3f053 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_1145-4651_21000_192.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_1145-4651_21000_192.json @@ -2,7 +2,7 @@ "ecadd_1145-3932_1145-4651_21000_192" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1145-3932_1145-4651_21000_192Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (10744596414106452074759370245733544594153395043370666422502510773307029471145, 848677436511517736191562425154572367705380862894644942948681172815252343932) and (10744596414106452074759370245733544594153395043370666422502510773307029471145, 21039565435327757486054843320102702720990930294403178719740356721829973864651) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xb0866ace12e29cd866c438cfd49d04b517745bcebf7e9286e73b902f38b5533c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "753518", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999246482", + "code" : "0x", + "nonce" : "15", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xb0866ace12e29cd866c438cfd49d04b517745bcebf7e9286e73b902f38b5533c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb0866ace12e29cd866c438cfd49d04b517745bcebf7e9286e73b902f38b5533c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb0866ace12e29cd866c438cfd49d04b517745bcebf7e9286e73b902f38b5533c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb0866ace12e29cd866c438cfd49d04b517745bcebf7e9286e73b902f38b5533c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (10744596414106452074759370245733544594153395043370666422502510773307029471145, 848677436511517736191562425154572367705380862894644942948681172815252343932) and (10744596414106452074759370245733544594153395043370666422502510773307029471145, 21039565435327757486054843320102702720990930294403178719740356721829973864651) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0ab5ce", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "701902", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7594a32", - "code" : "", - "nonce" : "0x0e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999298098", + "code" : "0x", + "nonce" : "14", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_1145-4651_25000_192.json b/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_1145-4651_25000_192.json index c32a466da..0cac47c18 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_1145-4651_25000_192.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_1145-4651_25000_192.json @@ -2,7 +2,7 @@ "ecadd_1145-3932_1145-4651_25000_192" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1145-3932_1145-4651_25000_192Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (10744596414106452074759370245733544594153395043370666422502510773307029471145, 848677436511517736191562425154572367705380862894644942948681172815252343932) and (10744596414106452074759370245733544594153395043370666422502510773307029471145, 21039565435327757486054843320102702720990930294403178719740356721829973864651) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc97269a8d0ecc268849e2548234bf8ffd208b3e3f3cad63d67571dbfecc05fdd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1373641", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998626359", + "code" : "0x", + "nonce" : "33", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc97269a8d0ecc268849e2548234bf8ffd208b3e3f3cad63d67571dbfecc05fdd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x07a14b6f7305d76a3f72893737fb65273f6ef4bc51d004d3c0e3f460f795bc53", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x07a14b6f7305d76a3f72893737fb65273f6ef4bc51d004d3c0e3f460f795bc53", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x82c6e20644e65c98292c0ebe75dae59680f4f56f21536736a3d41f2b8d17ba0b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (10744596414106452074759370245733544594153395043370666422502510773307029471145, 848677436511517736191562425154572367705380862894644942948681172815252343932) and (10744596414106452074759370245733544594153395043370666422502510773307029471145, 21039565435327757486054843320102702720990930294403178719740356721829973864651) into the ECADD precompile, truncating or expanding the input data to 192 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x146143", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1335619", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74f9ebd", - "code" : "", - "nonce" : "0x20", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998664381", + "code" : "0x", + "nonce" : "32", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x64b98f570e1e53ac1b472a4fc89919f2d76166fb5494b817bca7677f3a51c497" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_2969-1336_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_2969-1336_21000_128.json index 6c7a34f58..fb3e16bbf 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_2969-1336_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_2969-1336_21000_128.json @@ -2,7 +2,7 @@ "ecadd_1145-3932_2969-1336_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1145-3932_2969-1336_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (10744596414106452074759370245733544594153395043370666422502510773307029471145, 848677436511517736191562425154572367705380862894644942948681172815252343932) and (1624070059937464756887933993293429854168590106605707304006200119738501412969, 3269329550605213075043232856820720631601935657990457502777101397807070461336) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x7547a1344293159f9f1b230f3bd161a7dcd626d10e25146dc903eeedd6f4edd6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "701902", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999298098", + "code" : "0x", + "nonce" : "14", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7547a1344293159f9f1b230f3bd161a7dcd626d10e25146dc903eeedd6f4edd6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7547a1344293159f9f1b230f3bd161a7dcd626d10e25146dc903eeedd6f4edd6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7547a1344293159f9f1b230f3bd161a7dcd626d10e25146dc903eeedd6f4edd6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7547a1344293159f9f1b230f3bd161a7dcd626d10e25146dc903eeedd6f4edd6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (10744596414106452074759370245733544594153395043370666422502510773307029471145, 848677436511517736191562425154572367705380862894644942948681172815252343932) and (1624070059937464756887933993293429854168590106605707304006200119738501412969, 3269329550605213075043232856820720631601935657990457502777101397807070461336) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x09ed2e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "650542", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75a12d2", - "code" : "", - "nonce" : "0x0d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999349458", + "code" : "0x", + "nonce" : "13", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_2969-1336_25000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_2969-1336_25000_128.json index c45a23546..b017b2df2 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_2969-1336_25000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_1145-3932_2969-1336_25000_128.json @@ -2,7 +2,7 @@ "ecadd_1145-3932_2969-1336_25000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_1145-3932_2969-1336_25000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (10744596414106452074759370245733544594153395043370666422502510773307029471145, 848677436511517736191562425154572367705380862894644942948681172815252343932) and (1624070059937464756887933993293429854168590106605707304006200119738501412969, 3269329550605213075043232856820720631601935657990457502777101397807070461336) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x880cead20c900a3862b7071cdec5a3a119eaa884280a6cb5282d01865b910c6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1335619", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998664381", + "code" : "0x", + "nonce" : "32", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x64b98f570e1e53ac1b472a4fc89919f2d76166fb5494b817bca7677f3a51c497" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x880cead20c900a3862b7071cdec5a3a119eaa884280a6cb5282d01865b910c6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4bd71fc54c854910b6d4a380e5147ef017639f822a3c7c3abe27b1bcb6a4145e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4bd71fc54c854910b6d4a380e5147ef017639f822a3c7c3abe27b1bcb6a4145e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd576b884f35f0b3e9ecac2f096a27c5b77f171583e5439b1c857115f26ba5418", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (10744596414106452074759370245733544594153395043370666422502510773307029471145, 848677436511517736191562425154572367705380862894644942948681172815252343932) and (1624070059937464756887933993293429854168590106605707304006200119738501412969, 3269329550605213075043232856820720631601935657990457502777101397807070461336) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x13cdc3", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1297859", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a750323d", - "code" : "", - "nonce" : "0x1f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998702141", + "code" : "0x", + "nonce" : "31", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_6-9_19274124-124124_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_6-9_19274124-124124_21000_128.json index 62b0ae442..2dec90acb 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_6-9_19274124-124124_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_6-9_19274124-124124_21000_128.json @@ -2,7 +2,7 @@ "ecadd_6-9_19274124-124124_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_6-9_19274124-124124_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (6, 9) and (19274124, 124124) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9cd676be5506b94b13da94ef4032007124aeccde91629f248afc3176252e6f73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "927086", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999072914", + "code" : "0x", + "nonce" : "19", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9cd676be5506b94b13da94ef4032007124aeccde91629f248afc3176252e6f73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9cd676be5506b94b13da94ef4032007124aeccde91629f248afc3176252e6f73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9cd676be5506b94b13da94ef4032007124aeccde91629f248afc3176252e6f73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9cd676be5506b94b13da94ef4032007124aeccde91629f248afc3176252e6f73", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (6, 9) and (19274124, 124124) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0d7a8e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "883342", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7568572", - "code" : "", - "nonce" : "0x12", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999116658", + "code" : "0x", + "nonce" : "18", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecadd_6-9_19274124-124124_25000_128.json b/GeneralStateTests/stZeroKnowledge/ecadd_6-9_19274124-124124_25000_128.json index 58e4cf099..357d8a2a4 100644 --- a/GeneralStateTests/stZeroKnowledge/ecadd_6-9_19274124-124124_25000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecadd_6-9_19274124-124124_25000_128.json @@ -2,7 +2,7 @@ "ecadd_6-9_19274124-124124_25000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecadd_6-9_19274124-124124_25000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the points (6, 9) and (19274124, 124124) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xab28b88b47c6bbc779efa0b905476465e71c1ec07f4d23eab0c3c4e26ad3f9a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1563209", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998436791", + "code" : "0x", + "nonce" : "37", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xab28b88b47c6bbc779efa0b905476465e71c1ec07f4d23eab0c3c4e26ad3f9a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8d21e5f0cd51fc26010de4c546ecf0f78e966c63731704727a49ef215f2d04e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8d21e5f0cd51fc26010de4c546ecf0f78e966c63731704727a49ef215f2d04e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8d21e5f0cd51fc26010de4c546ecf0f78e966c63731704727a49ef215f2d04e1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the points (6, 9) and (19274124, 124124) into the ECADD precompile, truncating or expanding the input data to 128 bytes. Gives the execution 25000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x171fc9", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1515465", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74ce037", - "code" : "", - "nonce" : "0x24", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998484535", + "code" : "0x", + "nonce" : "36", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060066305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_0.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_0.json index a03e29075..5cbb859df 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_0.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_0.json @@ -2,7 +2,7 @@ "ecmul_0-0_0_21000_0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_0_21000_0Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 0 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x6099c97aeb3e27c4e856e380c6b0dd63079885754b92c7bca38348881946e38e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "346318", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999653682", + "code" : "0x", + "nonce" : "6", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x6099c97aeb3e27c4e856e380c6b0dd63079885754b92c7bca38348881946e38e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6099c97aeb3e27c4e856e380c6b0dd63079885754b92c7bca38348881946e38e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6099c97aeb3e27c4e856e380c6b0dd63079885754b92c7bca38348881946e38e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6099c97aeb3e27c4e856e380c6b0dd63079885754b92c7bca38348881946e38e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 0 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x04a26e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "303726", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75f5d92", - "code" : "", - "nonce" : "0x05", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999696274", + "code" : "0x", + "nonce" : "5", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_128.json index a7e3113a8..e1d31af52 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_0_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_0_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x430f4549028195a2e7f9e32f5841329d6273c34b89997552b344193fca482152", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "217774", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999782226", + "code" : "0x", + "nonce" : "3", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x430f4549028195a2e7f9e32f5841329d6273c34b89997552b344193fca482152", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x430f4549028195a2e7f9e32f5841329d6273c34b89997552b344193fca482152", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x430f4549028195a2e7f9e32f5841329d6273c34b89997552b344193fca482152", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x430f4549028195a2e7f9e32f5841329d6273c34b89997552b344193fca482152", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x02aa0e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "174606", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a76155f2", - "code" : "", - "nonce" : "0x02", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825394", + "code" : "0x", + "nonce" : "2", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_40.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_40.json index 67982f981..749a67ab0 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_40.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_40.json @@ -2,7 +2,7 @@ "ecmul_0-0_0_21000_40" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_0_21000_40Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 40 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xbd980d3b9dc45c4117c87e6cf28b9c5aa2092ec50de0cbb3671b5e0c6c86c09c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "389230", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999610770", + "code" : "0x", + "nonce" : "7", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbd980d3b9dc45c4117c87e6cf28b9c5aa2092ec50de0cbb3671b5e0c6c86c09c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbd980d3b9dc45c4117c87e6cf28b9c5aa2092ec50de0cbb3671b5e0c6c86c09c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbd980d3b9dc45c4117c87e6cf28b9c5aa2092ec50de0cbb3671b5e0c6c86c09c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbd980d3b9dc45c4117c87e6cf28b9c5aa2092ec50de0cbb3671b5e0c6c86c09c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 40 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0548ce", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "346318", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75eb732", - "code" : "", - "nonce" : "0x06", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999653682", + "code" : "0x", + "nonce" : "6", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_64.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_64.json index ea9dca390..624949983 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_64.json @@ -2,7 +2,7 @@ "ecmul_0-0_0_21000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_0_21000_64Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x138adacff9727a3ba3cff826d1228356367ff495878c05f95a2b585d4e00a907", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "260686", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999739314", + "code" : "0x", + "nonce" : "4", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x138adacff9727a3ba3cff826d1228356367ff495878c05f95a2b585d4e00a907", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x138adacff9727a3ba3cff826d1228356367ff495878c05f95a2b585d4e00a907", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x138adacff9727a3ba3cff826d1228356367ff495878c05f95a2b585d4e00a907", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x138adacff9727a3ba3cff826d1228356367ff495878c05f95a2b585d4e00a907", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0352ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "217774", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a760ad52", - "code" : "", - "nonce" : "0x03", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999782226", + "code" : "0x", + "nonce" : "3", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_80.json index 8826c1801..fac282a84 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_80.json @@ -2,7 +2,7 @@ "ecmul_0-0_0_21000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_0_21000_80Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x06374704bbd4575225bc6c7c3d323fb147137adc1ce2e69ff7475b51d48b6dd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "303726", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999696274", + "code" : "0x", + "nonce" : "5", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x06374704bbd4575225bc6c7c3d323fb147137adc1ce2e69ff7475b51d48b6dd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x06374704bbd4575225bc6c7c3d323fb147137adc1ce2e69ff7475b51d48b6dd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x06374704bbd4575225bc6c7c3d323fb147137adc1ce2e69ff7475b51d48b6dd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x06374704bbd4575225bc6c7c3d323fb147137adc1ce2e69ff7475b51d48b6dd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x03fa4e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "260686", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a76005b2", - "code" : "", - "nonce" : "0x04", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999739314", + "code" : "0x", + "nonce" : "4", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_96.json index 69992cfd0..977d5f9b2 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_0_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_0_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x02a314ac724119d976a780f535d782df0f80f39eff2ce72fbd17fa935d9ea607", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "174606", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999825394", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x02a314ac724119d976a780f535d782df0f80f39eff2ce72fbd17fa935d9ea607", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x02a314ac724119d976a780f535d782df0f80f39eff2ce72fbd17fa935d9ea607", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x02a314ac724119d976a780f535d782df0f80f39eff2ce72fbd17fa935d9ea607", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x02a314ac724119d976a780f535d782df0f80f39eff2ce72fbd17fa935d9ea607", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0201ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131566", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fe12", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868434", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_0.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_0.json index 505138460..0dfc44b0b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_0.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_0.json @@ -2,7 +2,7 @@ "ecmul_0-0_0_28000_0" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_0_28000_0Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 0 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x82b575efc3c640cedeef92809127e19805d77335eb15ca6a60713ee81ccd4c81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4623386", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995376614", + "code" : "0x", + "nonce" : "103", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x82b575efc3c640cedeef92809127e19805d77335eb15ca6a60713ee81ccd4c81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x93fe4ed1c1696921e2e9a828cbff17275292ba28517e6df9ff7bd55b2ee0f40c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x93fe4ed1c1696921e2e9a828cbff17275292ba28517e6df9ff7bd55b2ee0f40c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa577726bb7cf6bedf4e5a491dd07407b7c061871082f7b749b29df82b79f3936", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 0 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x46150a", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4592906", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71deaf6", - "code" : "", - "nonce" : "0x66", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995407094", + "code" : "0x", + "nonce" : "102", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_128.json index 55a69c9a4..fe81527e0 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_0_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_0_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x4b552e9a4beb8cb1c10a5d65f21d7144e360c72cf77270376bdce21f916a50cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4531163", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995468837", + "code" : "0x", + "nonce" : "100", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4b552e9a4beb8cb1c10a5d65f21d7144e360c72cf77270376bdce21f916a50cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7164faf5429edc70ca96e0276d3431d1ff3fab8989c6d5df942ef7b0ad8e6182", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7164faf5429edc70ca96e0276d3431d1ff3fab8989c6d5df942ef7b0ad8e6182", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa1e1fae9257ede20605421635d2a33aeb2057a56b6ef37ad6dc8627de8d4a044", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x44aa7f", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4500095", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71f5581", - "code" : "", - "nonce" : "0x63", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995499905", + "code" : "0x", + "nonce" : "99", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_40.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_40.json index ff2ae984e..1cf5bea61 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_40.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_40.json @@ -2,7 +2,7 @@ "ecmul_0-0_0_28000_40" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_0_28000_40Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 40 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x43836a1f76e1cff8e77c5e4e0de63ac78209ed2424772c7f99df12c443eceae7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4654192", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995345808", + "code" : "0x", + "nonce" : "104", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x43836a1f76e1cff8e77c5e4e0de63ac78209ed2424772c7f99df12c443eceae7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8bde0b4e2dafa821aaa129b273056cda950b6fdb872f40d42cbd700585a2fcc6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8bde0b4e2dafa821aaa129b273056cda950b6fdb872f40d42cbd700585a2fcc6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd56e2234d2136a06c87d19ffab1472702ffd5cf3bad857f182c028169f152242", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 40 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x468c1a", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4623386", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71d73e6", - "code" : "", - "nonce" : "0x67", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995376614", + "code" : "0x", + "nonce" : "103", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_64.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_64.json index e1aaff17d..38de99e40 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_64.json @@ -2,7 +2,7 @@ "ecmul_0-0_0_28000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_0_28000_64Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x251962097e355edba18d6292ca314b363fd2e4f96b8ff36949546f9338b4a77f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4561969", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995438031", + "code" : "0x", + "nonce" : "101", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x251962097e355edba18d6292ca314b363fd2e4f96b8ff36949546f9338b4a77f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb60e761fbaa1b402863c5df66d0328dbba47dca6ee32b8b0013d37593f731356", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb60e761fbaa1b402863c5df66d0328dbba47dca6ee32b8b0013d37593f731356", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4f4170d6fa57ce4e80939b6080bb3e32992155c009f756feec8ac2f7401bedeb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x4523db", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4531163", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71edc25", - "code" : "", - "nonce" : "0x64", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995468837", + "code" : "0x", + "nonce" : "100", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_80.json index a682a532f..87c526d5b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_80.json @@ -2,7 +2,7 @@ "ecmul_0-0_0_28000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_0_28000_80Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x015ad17e559750ddfe76fc4d25642dab8df033dab11cbee5ff6f34ef01485582", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4592906", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995407094", + "code" : "0x", + "nonce" : "102", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x015ad17e559750ddfe76fc4d25642dab8df033dab11cbee5ff6f34ef01485582", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x79e2d9227910c917afa8972ebfec55e8f625a77bb1ec21f7f99c798fd392ef86", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x79e2d9227910c917afa8972ebfec55e8f625a77bb1ec21f7f99c798fd392ef86", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd03b580221a9bd6659acf2b71e2c8ff860a40f3eebd2f0d18a2668f0681e1b98", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x459c31", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4561969", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71e63cf", - "code" : "", - "nonce" : "0x65", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995438031", + "code" : "0x", + "nonce" : "101", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_96.json index 646b0ee22..99029575a 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_0_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_0_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_0_28000_96Filler.json" }, "env" : { @@ -10,200 +10,303 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x8f86905257921e61eb3f64a01ddc1d88267de1ceb963ad57e302b4a9c6b29422", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4500095", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995499905", + "code" : "0x", + "nonce" : "99", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8f86905257921e61eb3f64a01ddc1d88267de1ceb963ad57e302b4a9c6b29422", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2a39029dd4c51428611e2901c51362d4595f80895815031c9498545f771429d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2a39029dd4c51428611e2901c51362d4595f80895815031c9498545f771429d8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x08c2796dd9d8a87348ff8d512948b0af92b09547a9607f5d5bbb607d34cc4825", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x43f70e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4454158", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a72008f2", - "code" : "", - "nonce" : "0x62", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995545842", + "code" : "0x", + "nonce" : "98", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_21000_128.json index a359fdd0a..d90d349da 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_1_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_1_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x943cebbe4f8df059a7ef38ef7214d8cb9bba2b5ab94a216b1b8e4ae44baec6b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1181614", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998818386", + "code" : "0x", + "nonce" : "25", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x943cebbe4f8df059a7ef38ef7214d8cb9bba2b5ab94a216b1b8e4ae44baec6b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x943cebbe4f8df059a7ef38ef7214d8cb9bba2b5ab94a216b1b8e4ae44baec6b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x943cebbe4f8df059a7ef38ef7214d8cb9bba2b5ab94a216b1b8e4ae44baec6b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x943cebbe4f8df059a7ef38ef7214d8cb9bba2b5ab94a216b1b8e4ae44baec6b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x115ece", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1138382", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a752a132", - "code" : "", - "nonce" : "0x18", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998861618", + "code" : "0x", + "nonce" : "24", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_21000_96.json index 034a85bca..094ddf2cf 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_1_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_1_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x6ff0cded5dc0a68e54159744345766c3c4520451e3d312ea128188ff508546a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1138382", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998861618", + "code" : "0x", + "nonce" : "24", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x6ff0cded5dc0a68e54159744345766c3c4520451e3d312ea128188ff508546a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6ff0cded5dc0a68e54159744345766c3c4520451e3d312ea128188ff508546a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6ff0cded5dc0a68e54159744345766c3c4520451e3d312ea128188ff508546a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6ff0cded5dc0a68e54159744345766c3c4520451e3d312ea128188ff508546a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x10b66e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1095278", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7534992", - "code" : "", - "nonce" : "0x17", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998904722", + "code" : "0x", + "nonce" : "23", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_28000_128.json index dc4578461..557e35fbd 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_1_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_1_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9c5de46e281782b48687859c642e66f4de38e26a32d75b24acc0ade15d69b5a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5381549", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994618451", + "code" : "0x", + "nonce" : "122", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9c5de46e281782b48687859c642e66f4de38e26a32d75b24acc0ade15d69b5a7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x272d7bb826456ef114469f1bad452c160ab0b8dfd54aa7651194984807794b2d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x272d7bb826456ef114469f1bad452c160ab0b8dfd54aa7651194984807794b2d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7be6d42d88dd73a77679df97daa6fa02f12074e4e21fc3a69f38fe8919ce6c91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x51a411", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5350417", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7125bef", - "code" : "", - "nonce" : "0x79", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994649583", + "code" : "0x", + "nonce" : "121", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_28000_96.json index f10e94de1..f8bff5b30 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_1_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_1_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_1_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xaf3fa8aed9afc6d2b7993a8d88aff96e436bc6354a38321bdccfc67a61c54e13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5350417", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994649583", + "code" : "0x", + "nonce" : "121", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xaf3fa8aed9afc6d2b7993a8d88aff96e436bc6354a38321bdccfc67a61c54e13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1f18298b83d3addbc52f9066ea300c8ad7d332e60335631e5e35652bd5979f67", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1f18298b83d3addbc52f9066ea300c8ad7d332e60335631e5e35652bd5979f67", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdec9499dcfbbe476962ba327a73ee48a0235f556b443034494e688e82579ce2f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x512af8", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5319416", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a712d508", - "code" : "", - "nonce" : "0x78", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994680584", + "code" : "0x", + "nonce" : "120", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_21000_128.json index 4bbdf05d6..281b476ee 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_2_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_2_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9d690ba596f417f7073d94371c5b0ad37276e4a23186eeaacee68206b20ec374", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1621998", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998378002", + "code" : "0x", + "nonce" : "35", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9d690ba596f417f7073d94371c5b0ad37276e4a23186eeaacee68206b20ec374", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9d690ba596f417f7073d94371c5b0ad37276e4a23186eeaacee68206b20ec374", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9d690ba596f417f7073d94371c5b0ad37276e4a23186eeaacee68206b20ec374", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9d690ba596f417f7073d94371c5b0ad37276e4a23186eeaacee68206b20ec374", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x18170e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1578766", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74be8f2", - "code" : "", - "nonce" : "0x22", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998421234", + "code" : "0x", + "nonce" : "34", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_21000_96.json index df9048372..677893604 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_2_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_2_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xa09879d30b4513110ac57bc07aae20fc993f73da595283e6c5b58ff07e6a7f41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1578766", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998421234", + "code" : "0x", + "nonce" : "34", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xa09879d30b4513110ac57bc07aae20fc993f73da595283e6c5b58ff07e6a7f41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa09879d30b4513110ac57bc07aae20fc993f73da595283e6c5b58ff07e6a7f41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa09879d30b4513110ac57bc07aae20fc993f73da595283e6c5b58ff07e6a7f41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa09879d30b4513110ac57bc07aae20fc993f73da595283e6c5b58ff07e6a7f41", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x176eae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1535662", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74c9152", - "code" : "", - "nonce" : "0x21", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998464338", + "code" : "0x", + "nonce" : "33", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_28000_128.json index 3cca8cdc5..74758d28c 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_2_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_2_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x98bd10d6429639c7be9a60feb895f950bcc16f3f01be3d7155e20cd45a957178", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5777324", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994222676", + "code" : "0x", + "nonce" : "132", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x98bd10d6429639c7be9a60feb895f950bcc16f3f01be3d7155e20cd45a957178", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5dbea641864c9d1dffc8c6d6d60c46d51da9f371e0df3faaad539530c4a7bc70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5dbea641864c9d1dffc8c6d6d60c46d51da9f371e0df3faaad539530c4a7bc70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5eda71dd1c317c81ca5ac909a8d4a25e4bf8380bd703403bf661b47f3bf55c8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x57ae10", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5746192", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70c51f0", - "code" : "", - "nonce" : "0x83", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994253808", + "code" : "0x", + "nonce" : "131", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_28000_96.json index 553f8f121..92ff0cd6b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_2_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_2_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_2_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xaf6292885b91ccb830a2d52e4bef6e28597203590dea6922b732abd8bbcb12a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5746192", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994253808", + "code" : "0x", + "nonce" : "131", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xaf6292885b91ccb830a2d52e4bef6e28597203590dea6922b732abd8bbcb12a3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc5a1b20126ac4605add4675a088bb102ec7202d39c8e0cb2a986dc24c263407f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc5a1b20126ac4605add4675a088bb102ec7202d39c8e0cb2a986dc24c263407f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7a6b40da1f0ee3693b1196b2101d34d3d0a3b6b310520461460632d5c2fdf388", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5734f7", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5715191", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70ccb09", - "code" : "", - "nonce" : "0x82", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994284809", + "code" : "0x", + "nonce" : "130", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_128.json index d3f4f49e6..b0c657072 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_340282366920938463463374607431768211456_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x6de21a30cc3232066c03445e5da80e3da30b8a644b57050afe56ac4d555fa8dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2502766", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997497234", + "code" : "0x", + "nonce" : "55", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x6de21a30cc3232066c03445e5da80e3da30b8a644b57050afe56ac4d555fa8dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6de21a30cc3232066c03445e5da80e3da30b8a644b57050afe56ac4d555fa8dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6de21a30cc3232066c03445e5da80e3da30b8a644b57050afe56ac4d555fa8dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6de21a30cc3232066c03445e5da80e3da30b8a644b57050afe56ac4d555fa8dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x25878e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2459534", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a73e7872", - "code" : "", - "nonce" : "0x36", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997540466", + "code" : "0x", + "nonce" : "54", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_80.json index f7efbeb83..a4371888b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_80.json @@ -2,7 +2,7 @@ "ecmul_0-0_340282366920938463463374607431768211456_21000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_80Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x56913e0957757b65b76af896cc9e64ff4470ed1c388855df471eb9b71b3029b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2545870", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997454130", + "code" : "0x", + "nonce" : "56", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x56913e0957757b65b76af896cc9e64ff4470ed1c388855df471eb9b71b3029b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x56913e0957757b65b76af896cc9e64ff4470ed1c388855df471eb9b71b3029b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x56913e0957757b65b76af896cc9e64ff4470ed1c388855df471eb9b71b3029b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x56913e0957757b65b76af896cc9e64ff4470ed1c388855df471eb9b71b3029b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x26306e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2502766", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a73dcf92", - "code" : "", - "nonce" : "0x37", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997497234", + "code" : "0x", + "nonce" : "55", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_96.json index 94ace19c7..19b7c4e9a 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_340282366920938463463374607431768211456_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xdc8b1c236188814b1b107bec5e2570265c4d779541fc6ee24889e610131659b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2459534", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997540466", + "code" : "0x", + "nonce" : "54", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xdc8b1c236188814b1b107bec5e2570265c4d779541fc6ee24889e610131659b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc8b1c236188814b1b107bec5e2570265c4d779541fc6ee24889e610131659b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc8b1c236188814b1b107bec5e2570265c4d779541fc6ee24889e610131659b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdc8b1c236188814b1b107bec5e2570265c4d779541fc6ee24889e610131659b8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x24df2e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2416430", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a73f20d2", - "code" : "", - "nonce" : "0x35", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997583570", + "code" : "0x", + "nonce" : "53", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_128.json index 11a5940dc..eafc5bf8e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_340282366920938463463374607431768211456_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x8a601f8671c2ffcfae5e426a45b419a40b5f6b33a617bfa7e60461432ef9657d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6568874", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993431126", + "code" : "0x", + "nonce" : "152", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8a601f8671c2ffcfae5e426a45b419a40b5f6b33a617bfa7e60461432ef9657d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x381438d09254ed53fc0e610ccf84c5879017bb57b2601424f429cdb09c446e47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x381438d09254ed53fc0e610ccf84c5879017bb57b2601424f429cdb09c446e47", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9a1c58c515c22f7238a8dd56fb9db32eb1dde508309f4f5b1ce3c32ad43be5c8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x63c20e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6537742", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7003df2", - "code" : "", - "nonce" : "0x97", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993462258", + "code" : "0x", + "nonce" : "151", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_80.json index 8776808d5..c575a1ca5 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_80.json @@ -2,7 +2,7 @@ "ecmul_0-0_340282366920938463463374607431768211456_28000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_80Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x325ca8a8f962659323444c5a7525f422da5fe5ac4d8fa4d8f28ac5a74dea8e3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6599875", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993400125", + "code" : "0x", + "nonce" : "153", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x325ca8a8f962659323444c5a7525f422da5fe5ac4d8fa4d8f28ac5a74dea8e3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd73256fc4953dd26df90488793b0afa577eaef9c1aa87c7aee8458d560055929", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd73256fc4953dd26df90488793b0afa577eaef9c1aa87c7aee8458d560055929", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe371a5af9bddee6855a107e78f03d0e1b2314d290e11e473b5722b52bfdfca01", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x643baa", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6568874", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6ffc456", - "code" : "", - "nonce" : "0x98", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993431126", + "code" : "0x", + "nonce" : "152", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_96.json index 0673ba603..7244aa23e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_340282366920938463463374607431768211456_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_340282366920938463463374607431768211456_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x27fe6415030a945d54def8e5f1a956d48503279120403268c8c389c2b9a82916", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6537742", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993462258", + "code" : "0x", + "nonce" : "151", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x27fe6415030a945d54def8e5f1a956d48503279120403268c8c389c2b9a82916", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x915bf5045f36f4f11037b4566de437b46cf0a1b96ec486e1158cfaf5630f3242", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x915bf5045f36f4f11037b4566de437b46cf0a1b96ec486e1158cfaf5630f3242", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb1c70118dee292cfa2aec0e471d0c55e2a96511bde0c27e7095fb8fd8b955d55", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x6348f5", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6506741", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a700b70b", - "code" : "", - "nonce" : "0x96", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993493259", + "code" : "0x", + "nonce" : "150", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_21000_128.json index 9e54ab2ce..d03b7e346 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_5616_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_5616_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xf15128f511a70bea6db02bc0a6070afdcbbbf777c9556c4aafda4708e719e0c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3166606", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996833394", + "code" : "0x", + "nonce" : "70", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf15128f511a70bea6db02bc0a6070afdcbbbf777c9556c4aafda4708e719e0c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf15128f511a70bea6db02bc0a6070afdcbbbf777c9556c4aafda4708e719e0c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf15128f511a70bea6db02bc0a6070afdcbbbf777c9556c4aafda4708e719e0c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf15128f511a70bea6db02bc0a6070afdcbbbf777c9556c4aafda4708e719e0c5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x2fa1ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3121582", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7345e52", - "code" : "", - "nonce" : "0x45", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996878418", + "code" : "0x", + "nonce" : "69", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_21000_96.json index 10fc6a31a..c8ba0aa72 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_5616_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_5616_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x03cea137e4c98260395b5665e40cfeea53e1db8e8cc4fc0b684b34aaa5252373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3121582", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996878418", + "code" : "0x", + "nonce" : "69", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x03cea137e4c98260395b5665e40cfeea53e1db8e8cc4fc0b684b34aaa5252373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x03cea137e4c98260395b5665e40cfeea53e1db8e8cc4fc0b684b34aaa5252373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x03cea137e4c98260395b5665e40cfeea53e1db8e8cc4fc0b684b34aaa5252373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x03cea137e4c98260395b5665e40cfeea53e1db8e8cc4fc0b684b34aaa5252373", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x2ef24e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3076686", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7350db2", - "code" : "", - "nonce" : "0x44", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996923314", + "code" : "0x", + "nonce" : "68", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_28000_128.json index fe10ee8df..65958363a 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_5616_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_5616_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x39eab2f7f0361986648434c152df6bf1578ce0b55440cab8d63cf63d4e2bccfb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7165796", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992834204", + "code" : "0x", + "nonce" : "167", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x39eab2f7f0361986648434c152df6bf1578ce0b55440cab8d63cf63d4e2bccfb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8faab70a3a06dd66483efeaf49f62fde143799cc835aa5b9609d6df3332ca92a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8faab70a3a06dd66483efeaf49f62fde143799cc835aa5b9609d6df3332ca92a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9ec7c2f8f569367f3877a6806b407c1d109b2fdffbb5299773a66592c714de5c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x6cd6c8", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7132872", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f72938", - "code" : "", - "nonce" : "0xa6", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992867128", + "code" : "0x", + "nonce" : "166", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_28000_96.json index 8cb39e99c..d7948f28e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5616_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_5616_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_5616_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9cf55f3f692ef03e1791d5c99133b7fa9d6412e58bd9f7aba017624f06e15e12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7132872", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992867128", + "code" : "0x", + "nonce" : "166", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9cf55f3f692ef03e1791d5c99133b7fa9d6412e58bd9f7aba017624f06e15e12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb6b401a215e62c4a65a24fc645501353ef1a1f6272225cf66c7211525f25aed0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb6b401a215e62c4a65a24fc645501353ef1a1f6272225cf66c7211525f25aed0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf4f1b18058bc51471f31721db780480ebb7459b607fd41c54114732d6708955b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x6c56af", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7100079", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f7a951", - "code" : "", - "nonce" : "0xa5", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992899921", + "code" : "0x", + "nonce" : "165", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_21000_128.json index 941ab3553..f9bc1aad2 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_5617_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_5617_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x2777284518552c535e7b02ca69b0f27a26491dcbd12196b7ff99e874641bf4e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3625038", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996374962", + "code" : "0x", + "nonce" : "80", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2777284518552c535e7b02ca69b0f27a26491dcbd12196b7ff99e874641bf4e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2777284518552c535e7b02ca69b0f27a26491dcbd12196b7ff99e874641bf4e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2777284518552c535e7b02ca69b0f27a26491dcbd12196b7ff99e874641bf4e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2777284518552c535e7b02ca69b0f27a26491dcbd12196b7ff99e874641bf4e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x36a02e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3579950", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a72d5fd2", - "code" : "", - "nonce" : "0x4f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996420050", + "code" : "0x", + "nonce" : "79", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_21000_96.json index 53ce6df7f..7da1e70d8 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_5617_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_5617_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x001b863b5e4bf1646fc185c8000798502d48ecd039a5cf11b579067fe2a1d717", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3579950", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996420050", + "code" : "0x", + "nonce" : "79", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x001b863b5e4bf1646fc185c8000798502d48ecd039a5cf11b579067fe2a1d717", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x001b863b5e4bf1646fc185c8000798502d48ecd039a5cf11b579067fe2a1d717", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x001b863b5e4bf1646fc185c8000798502d48ecd039a5cf11b579067fe2a1d717", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x001b863b5e4bf1646fc185c8000798502d48ecd039a5cf11b579067fe2a1d717", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x35f08e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3534990", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a72e0f72", - "code" : "", - "nonce" : "0x4e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996465010", + "code" : "0x", + "nonce" : "78", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_28000_128.json index b336005b8..69da60ef4 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_5617_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_5617_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xab920df7f049779a3ae0355ebf5e3828ce18c84f4855d926c04643c392f8d710", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7579619", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992420381", + "code" : "0x", + "nonce" : "177", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xab920df7f049779a3ae0355ebf5e3828ce18c84f4855d926c04643c392f8d710", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6216e77f7e25c505b2220ba4d2baa6674e76ffc6e439aca2322c398a211705ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6216e77f7e25c505b2220ba4d2baa6674e76ffc6e439aca2322c398a211705ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4a7ce830af09b13ab23554b368f2e18d2ec7a0389f3472a1008b24de77be970d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x732707", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7546631", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f0d8f9", - "code" : "", - "nonce" : "0xb0", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992453369", + "code" : "0x", + "nonce" : "176", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_28000_96.json index 7e00ef0e4..6978526f4 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_5617_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_5617_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_5617_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x20feb2c16828e24c862bdd1b4739bfcf265f106433b84959de10e87c95341e4a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7546631", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992453369", + "code" : "0x", + "nonce" : "176", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x20feb2c16828e24c862bdd1b4739bfcf265f106433b84959de10e87c95341e4a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf371019f5843bb4bea0daf204c6eef9d180e8a65cdb6a48933e593790c004e12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf371019f5843bb4bea0daf204c6eef9d180e8a65cdb6a48933e593790c004e12", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5834fc8fa4ae63b5dab10b145fc3f091553926fd49b98693f2af46e7563efe43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x72a6ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7513774", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f15952", - "code" : "", - "nonce" : "0xaf", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992486226", + "code" : "0x", + "nonce" : "175", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_21000_128.json index f3af0f3e9..2e61f39d9 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_9935_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_9935_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xb50abe89d2d80a186d35f4732a2c0e83868110aa5e9abcccdda1bbb3478acfec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4084238", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995915762", + "code" : "0x", + "nonce" : "90", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xb50abe89d2d80a186d35f4732a2c0e83868110aa5e9abcccdda1bbb3478acfec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb50abe89d2d80a186d35f4732a2c0e83868110aa5e9abcccdda1bbb3478acfec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb50abe89d2d80a186d35f4732a2c0e83868110aa5e9abcccdda1bbb3478acfec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb50abe89d2d80a186d35f4732a2c0e83868110aa5e9abcccdda1bbb3478acfec", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x3da16e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4039022", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7265e92", - "code" : "", - "nonce" : "0x59", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995960978", + "code" : "0x", + "nonce" : "89", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_21000_96.json index b8a19e67b..c2e88a7c7 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_9935_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_9935_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xda4f9096752c78d4d3b93228ee4c7085702c3ce3e934857b505d847e067a4655", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4039022", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995960978", + "code" : "0x", + "nonce" : "89", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xda4f9096752c78d4d3b93228ee4c7085702c3ce3e934857b505d847e067a4655", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xda4f9096752c78d4d3b93228ee4c7085702c3ce3e934857b505d847e067a4655", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xda4f9096752c78d4d3b93228ee4c7085702c3ce3e934857b505d847e067a4655", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xda4f9096752c78d4d3b93228ee4c7085702c3ce3e934857b505d847e067a4655", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x3cf14e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3993934", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7270eb2", - "code" : "", - "nonce" : "0x58", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996006066", + "code" : "0x", + "nonce" : "88", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_28000_128.json index af2080130..ebf9cf946 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_9935_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_9935_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc847708273ab597d7801e24f7431c1bdec104433b98f0a1e31f8ee4f21d02ab9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7994210", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992005790", + "code" : "0x", + "nonce" : "187", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc847708273ab597d7801e24f7431c1bdec104433b98f0a1e31f8ee4f21d02ab9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3aafcd67ba2a6fa262eb47cd0fd7629fef9748df5ceabd9fd5bc3e3a7ba11528", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3aafcd67ba2a6fa262eb47cd0fd7629fef9748df5ceabd9fd5bc3e3a7ba11528", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf9d5e6c58306de8995de2306f3ca0fd6d7fa955ae9105dcc36fd08d78bf98e36", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x797a06", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7961094", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6ea85fa", - "code" : "", - "nonce" : "0xba", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992038906", + "code" : "0x", + "nonce" : "186", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_28000_96.json index 06f541510..51d1dd517 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9935_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_9935_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_9935_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x41f954b31f87428a132c9049762e3f3d50e64cd3167e920706375dfdc58d620b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7961094", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992038906", + "code" : "0x", + "nonce" : "186", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x41f954b31f87428a132c9049762e3f3d50e64cd3167e920706375dfdc58d620b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x94715d44f73e6ed34264782bbd86f129ea2a8ecc433c281663b6090101cf0e68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x94715d44f73e6ed34264782bbd86f129ea2a8ecc433c281663b6090101cf0e68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x74afdbc03bbb848876c584c23abcc748e22b18bbcbcdca0380474128e630f438", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x78f92d", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7928109", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6eb06d3", - "code" : "", - "nonce" : "0xb9", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992071891", + "code" : "0x", + "nonce" : "185", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_21000_128.json index 463ab6ce8..8d214ad93 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_9_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_9_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x5371d9144a5b4f083da041fa78d68794463309a55745b5b8fa460990a40a8023", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2062382", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997937618", + "code" : "0x", + "nonce" : "45", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5371d9144a5b4f083da041fa78d68794463309a55745b5b8fa460990a40a8023", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5371d9144a5b4f083da041fa78d68794463309a55745b5b8fa460990a40a8023", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5371d9144a5b4f083da041fa78d68794463309a55745b5b8fa460990a40a8023", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5371d9144a5b4f083da041fa78d68794463309a55745b5b8fa460990a40a8023", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1ecf4e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2019150", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74530b2", - "code" : "", - "nonce" : "0x2c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997980850", + "code" : "0x", + "nonce" : "44", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_21000_96.json index 1b3d9fa20..e6a955663 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_9_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_9_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xfeb25b1c083c930356e841056717a3bcaf81dc8ad202a5a0d89cbd7639e611e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2019150", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997980850", + "code" : "0x", + "nonce" : "44", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfeb25b1c083c930356e841056717a3bcaf81dc8ad202a5a0d89cbd7639e611e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfeb25b1c083c930356e841056717a3bcaf81dc8ad202a5a0d89cbd7639e611e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfeb25b1c083c930356e841056717a3bcaf81dc8ad202a5a0d89cbd7639e611e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfeb25b1c083c930356e841056717a3bcaf81dc8ad202a5a0d89cbd7639e611e5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1e26ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1976046", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a745d912", - "code" : "", - "nonce" : "0x2b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998023954", + "code" : "0x", + "nonce" : "43", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_28000_128.json index c599feef2..5e1d8b8a5 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-0_9_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_9_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xbda2d2425f695129b0631eff9b90fa4df131777d8efe28239d220c6ea30542b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6173099", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993826901", + "code" : "0x", + "nonce" : "142", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbda2d2425f695129b0631eff9b90fa4df131777d8efe28239d220c6ea30542b7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9dba5766073624b78e2aa1c4b10a0ec4de052eac11b04cdfe9536a9fba3038fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9dba5766073624b78e2aa1c4b10a0ec4de052eac11b04cdfe9536a9fba3038fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x78a72325fdc9152b86966ab070003e4abfcd82ad1ff94687aaf23eaf66ce1e67", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5db80f", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6141967", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70647f1", - "code" : "", - "nonce" : "0x8d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993858033", + "code" : "0x", + "nonce" : "141", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_28000_96.json index f500bf963..6baec71b6 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-0_9_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-0_9_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-0_9_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 0) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x0648f7df8736ed49c1d8a3f74475b45b6afc594d3cdd1b46f3616ff2d79a9581", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6141967", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993858033", + "code" : "0x", + "nonce" : "141", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x0648f7df8736ed49c1d8a3f74475b45b6afc594d3cdd1b46f3616ff2d79a9581", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb5a757ae482433a8e5a30990b3e07711f53adbe110910f55fa767ddebbe893c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb5a757ae482433a8e5a30990b3e07711f53adbe110910f55fa767ddebbe893c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0ff007739027bfe32f9e764696bc2dd5891a4ca759396549d979e7030bcddef1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 0) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5d3ef6", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6110966", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a706c10a", - "code" : "", - "nonce" : "0x8c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993889034", + "code" : "0x", + "nonce" : "140", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_128.json index 5a3f96237..fb62ffda0 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_0_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_0_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xd755e1a128450cfe3f764eb4b49ca7e10302a17eb6487e943ca8dda3aff70b13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1009198", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998990802", + "code" : "0x", + "nonce" : "21", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd755e1a128450cfe3f764eb4b49ca7e10302a17eb6487e943ca8dda3aff70b13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd755e1a128450cfe3f764eb4b49ca7e10302a17eb6487e943ca8dda3aff70b13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd755e1a128450cfe3f764eb4b49ca7e10302a17eb6487e943ca8dda3aff70b13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd755e1a128450cfe3f764eb4b49ca7e10302a17eb6487e943ca8dda3aff70b13", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0ebd4e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "965966", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75542b2", - "code" : "", - "nonce" : "0x14", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999034034", + "code" : "0x", + "nonce" : "20", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_64.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_64.json index c27c7a2ad..7ee4a5c4b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_64.json @@ -2,7 +2,7 @@ "ecmul_0-3_0_21000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_0_21000_64Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x3a688e71750fd4708f5d35c47ab29415f06c79590692bba75024523756652508", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1052174", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998947826", + "code" : "0x", + "nonce" : "22", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x3a688e71750fd4708f5d35c47ab29415f06c79590692bba75024523756652508", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3a688e71750fd4708f5d35c47ab29415f06c79590692bba75024523756652508", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3a688e71750fd4708f5d35c47ab29415f06c79590692bba75024523756652508", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3a688e71750fd4708f5d35c47ab29415f06c79590692bba75024523756652508", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0f662e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1009198", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75499d2", - "code" : "", - "nonce" : "0x15", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998990802", + "code" : "0x", + "nonce" : "21", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_80.json index bfd2df930..01e87fa4d 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_80.json @@ -2,7 +2,7 @@ "ecmul_0-3_0_21000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_0_21000_80Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x990ed373f0e99b02ff066b466a484e99c5036cf56da3ec6ad28586833fdaae0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1095278", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998904722", + "code" : "0x", + "nonce" : "23", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x990ed373f0e99b02ff066b466a484e99c5036cf56da3ec6ad28586833fdaae0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x990ed373f0e99b02ff066b466a484e99c5036cf56da3ec6ad28586833fdaae0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x990ed373f0e99b02ff066b466a484e99c5036cf56da3ec6ad28586833fdaae0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x990ed373f0e99b02ff066b466a484e99c5036cf56da3ec6ad28586833fdaae0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x100e0e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1052174", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a753f1f2", - "code" : "", - "nonce" : "0x16", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998947826", + "code" : "0x", + "nonce" : "22", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_96.json index 3db8f0f80..266d813b6 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_0_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_0_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xfc2a51e1185f02b5b9f802e821213afdc3090355e52330e04448e8aa9def1083", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "965966", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999034034", + "code" : "0x", + "nonce" : "20", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfc2a51e1185f02b5b9f802e821213afdc3090355e52330e04448e8aa9def1083", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfc2a51e1185f02b5b9f802e821213afdc3090355e52330e04448e8aa9def1083", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfc2a51e1185f02b5b9f802e821213afdc3090355e52330e04448e8aa9def1083", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfc2a51e1185f02b5b9f802e821213afdc3090355e52330e04448e8aa9def1083", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0e14ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "922862", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a755eb12", - "code" : "", - "nonce" : "0x13", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999077138", + "code" : "0x", + "nonce" : "19", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_128.json index 93d56e7dd..99a9b6e53 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_0_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_0_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x1490aa0240922f400c8d1a0c366507630f23474ca855a9a7959869409ca3e3ce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5219336", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994780664", + "code" : "0x", + "nonce" : "118", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1490aa0240922f400c8d1a0c366507630f23474ca855a9a7959869409ca3e3ce", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd5f32e87d1d31098ef0d1a614050daf66bdefba5ed18199bf2d0f9031103d5df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd5f32e87d1d31098ef0d1a614050daf66bdefba5ed18199bf2d0f9031103d5df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd5f32e87d1d31098ef0d1a614050daf66bdefba5ed18199bf2d0f9031103d5df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x4edfd0", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5169104", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7152030", - "code" : "", - "nonce" : "0x75", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994830896", + "code" : "0x", + "nonce" : "117", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_64.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_64.json index a8a7b70bd..72269e18c 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_64.json @@ -2,7 +2,7 @@ "ecmul_0-3_0_28000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_0_28000_64Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xb053b62270d9ce22a95577bc92808172f9ca92e4168f444b63d32cd840c937dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5269312", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994730688", + "code" : "0x", + "nonce" : "119", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xb053b62270d9ce22a95577bc92808172f9ca92e4168f444b63d32cd840c937dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd8fbae420a53f2dfbbbed4cd575ed759b47c502cdcee3f32576ed64d6ee92076", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd8fbae420a53f2dfbbbed4cd575ed759b47c502cdcee3f32576ed64d6ee92076", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd8fbae420a53f2dfbbbed4cd575ed759b47c502cdcee3f32576ed64d6ee92076", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x4fa408", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5219336", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7145bf8", - "code" : "", - "nonce" : "0x76", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994780664", + "code" : "0x", + "nonce" : "118", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_80.json index 68735af27..2c8e78b4e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_80.json @@ -2,7 +2,7 @@ "ecmul_0-3_0_28000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_0_28000_80Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xfdb2f67da1feff85b82fa22c1158748d0c91a6f4dab38881fa1d1ae9df2e7737", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5319416", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994680584", + "code" : "0x", + "nonce" : "120", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfdb2f67da1feff85b82fa22c1158748d0c91a6f4dab38881fa1d1ae9df2e7737", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9788543569d30f88f855dedb66a63a877eb70c2297eb5714ebc62f4e50bcc67e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9788543569d30f88f855dedb66a63a877eb70c2297eb5714ebc62f4e50bcc67e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9788543569d30f88f855dedb66a63a877eb70c2297eb5714ebc62f4e50bcc67e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x506740", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5269312", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71398c0", - "code" : "", - "nonce" : "0x77", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994730688", + "code" : "0x", + "nonce" : "119", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_96.json index 0f7c80e33..d6cd9dee8 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_0_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_0_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_0_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x10fc4fc5d320a4667b76c689705dc0a8bc5dc9a9a7a6cb7475c6eb5289fb73ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5169104", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994830896", + "code" : "0x", + "nonce" : "117", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x10fc4fc5d320a4667b76c689705dc0a8bc5dc9a9a7a6cb7475c6eb5289fb73ad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe2db91df9cb31867103ee187f8aa95dce624c1806c61225e4ae83445931a70d0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe2db91df9cb31867103ee187f8aa95dce624c1806c61225e4ae83445931a70d0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe2db91df9cb31867103ee187f8aa95dce624c1806c61225e4ae83445931a70d0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x4e1c18", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5119000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a715e3e8", - "code" : "", - "nonce" : "0x74", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994881000", + "code" : "0x", + "nonce" : "116", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_21000_128.json index ada3ba624..d64d05525 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_1_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_1_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x838e1b3eb501b64351a6ad20934cfe0e61ed8c90548e5f5663fe851a099e1b8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1535662", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998464338", + "code" : "0x", + "nonce" : "33", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x838e1b3eb501b64351a6ad20934cfe0e61ed8c90548e5f5663fe851a099e1b8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x838e1b3eb501b64351a6ad20934cfe0e61ed8c90548e5f5663fe851a099e1b8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x838e1b3eb501b64351a6ad20934cfe0e61ed8c90548e5f5663fe851a099e1b8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x838e1b3eb501b64351a6ad20934cfe0e61ed8c90548e5f5663fe851a099e1b8d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x16c58e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1492366", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74d3a72", - "code" : "", - "nonce" : "0x20", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998507634", + "code" : "0x", + "nonce" : "32", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_21000_96.json index dc70690d7..6d37968a3 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_1_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_1_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xfaeeda22aa1a131eed5f60f1d93be1faf569e12fee09bfcf108373415fc1d6c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1492366", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998507634", + "code" : "0x", + "nonce" : "32", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfaeeda22aa1a131eed5f60f1d93be1faf569e12fee09bfcf108373415fc1d6c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfaeeda22aa1a131eed5f60f1d93be1faf569e12fee09bfcf108373415fc1d6c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfaeeda22aa1a131eed5f60f1d93be1faf569e12fee09bfcf108373415fc1d6c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfaeeda22aa1a131eed5f60f1d93be1faf569e12fee09bfcf108373415fc1d6c1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x161cee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1449198", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74de312", - "code" : "", - "nonce" : "0x1f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998550802", + "code" : "0x", + "nonce" : "31", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_28000_128.json index 52a404ed6..bcd33e2dc 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_1_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_1_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x01e21b4e183656c647b142e486dd97df94e2e34634fddfb5725400566c894987", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5715191", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994284809", + "code" : "0x", + "nonce" : "130", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x01e21b4e183656c647b142e486dd97df94e2e34634fddfb5725400566c894987", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0a52cc38e7792de29eb350018d18a98088bf6debbde35da12d2545ec20d43c90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0a52cc38e7792de29eb350018d18a98088bf6debbde35da12d2545ec20d43c90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0a52cc38e7792de29eb350018d18a98088bf6debbde35da12d2545ec20d43c90", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x56707f", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5664895", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70d8f81", - "code" : "", - "nonce" : "0x81", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994335105", + "code" : "0x", + "nonce" : "129", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_28000_96.json index 98092390e..7905530f0 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_1_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_1_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_1_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x03f75b42f83210e685d73d30443853626d413f9944a533f4bfc90f0214d4c27c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5664895", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994335105", + "code" : "0x", + "nonce" : "129", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x03f75b42f83210e685d73d30443853626d413f9944a533f4bfc90f0214d4c27c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5e7f2343f4e1547017cd11e29eaf203d111e2351dcb1fc82c73b5f766ec781e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5e7f2343f4e1547017cd11e29eaf203d111e2351dcb1fc82c73b5f766ec781e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5e7f2343f4e1547017cd11e29eaf203d111e2351dcb1fc82c73b5f766ec781e7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x55ac87", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5614727", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70e5379", - "code" : "", - "nonce" : "0x80", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994385273", + "code" : "0x", + "nonce" : "128", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_21000_128.json index d10a75ee0..f192590a1 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_2_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_2_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x41d1fab351adb7b47f0327d5e0ecb633a094cb57d05d0d6754f83738cb9752f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1976046", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998023954", + "code" : "0x", + "nonce" : "43", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x41d1fab351adb7b47f0327d5e0ecb633a094cb57d05d0d6754f83738cb9752f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x41d1fab351adb7b47f0327d5e0ecb633a094cb57d05d0d6754f83738cb9752f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x41d1fab351adb7b47f0327d5e0ecb633a094cb57d05d0d6754f83738cb9752f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x41d1fab351adb7b47f0327d5e0ecb633a094cb57d05d0d6754f83738cb9752f2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1d7dce", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1932750", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7468232", - "code" : "", - "nonce" : "0x2a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998067250", + "code" : "0x", + "nonce" : "42", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_21000_96.json index f7db808ec..cbdef26e7 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_2_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_2_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xdec0441ec340ed06bba0bc72cc9ba661b2f60d0e4dffda7b6c933136d242d0b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1932750", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998067250", + "code" : "0x", + "nonce" : "42", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xdec0441ec340ed06bba0bc72cc9ba661b2f60d0e4dffda7b6c933136d242d0b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdec0441ec340ed06bba0bc72cc9ba661b2f60d0e4dffda7b6c933136d242d0b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdec0441ec340ed06bba0bc72cc9ba661b2f60d0e4dffda7b6c933136d242d0b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdec0441ec340ed06bba0bc72cc9ba661b2f60d0e4dffda7b6c933136d242d0b4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1cd52e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1889582", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7472ad2", - "code" : "", - "nonce" : "0x29", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998110418", + "code" : "0x", + "nonce" : "41", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_28000_128.json index febbe193b..27faf46a8 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_2_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_2_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xf2fc6545652aa85582fd9bef08f4cd714ff80b79e0fcaa8b66b97fae1c9e2f1a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6110966", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993889034", + "code" : "0x", + "nonce" : "140", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf2fc6545652aa85582fd9bef08f4cd714ff80b79e0fcaa8b66b97fae1c9e2f1a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x27b74715633db195e34fb52353f1a3f9be908ec01b7b580d3e3d25109d72715f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x27b74715633db195e34fb52353f1a3f9be908ec01b7b580d3e3d25109d72715f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x27b74715633db195e34fb52353f1a3f9be908ec01b7b580d3e3d25109d72715f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5c7a7e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6060670", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7078582", - "code" : "", - "nonce" : "0x8b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993939330", + "code" : "0x", + "nonce" : "139", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_28000_96.json index ee5abf4e5..97193b764 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_2_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_2_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_2_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x1d0f7b8ac44ff5b3c499f1047c286256045bbae611679d59348c772910af8250", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6060670", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993939330", + "code" : "0x", + "nonce" : "139", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1d0f7b8ac44ff5b3c499f1047c286256045bbae611679d59348c772910af8250", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc4c4be4a35c56b1df83ee04aa925d3b78c8fb25b1bec81ad9ff25d17fb9e9d99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc4c4be4a35c56b1df83ee04aa925d3b78c8fb25b1bec81ad9ff25d17fb9e9d99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc4c4be4a35c56b1df83ee04aa925d3b78c8fb25b1bec81ad9ff25d17fb9e9d99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5bb686", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6010502", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a708497a", - "code" : "", - "nonce" : "0x8a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993989498", + "code" : "0x", + "nonce" : "138", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_128.json index 78113e324..03ecd57e4 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_340282366920938463463374607431768211456_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x27d80d1dfa89bf0b22333d33cdf3fa7dd18fb841af48508f1b10bc7873e2661a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3033518", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996966482", + "code" : "0x", + "nonce" : "67", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x27d80d1dfa89bf0b22333d33cdf3fa7dd18fb841af48508f1b10bc7873e2661a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x27d80d1dfa89bf0b22333d33cdf3fa7dd18fb841af48508f1b10bc7873e2661a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x27d80d1dfa89bf0b22333d33cdf3fa7dd18fb841af48508f1b10bc7873e2661a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x27d80d1dfa89bf0b22333d33cdf3fa7dd18fb841af48508f1b10bc7873e2661a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x2da08e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2990222", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7365f72", - "code" : "", - "nonce" : "0x42", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997009778", + "code" : "0x", + "nonce" : "66", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_80.json index af8c9a77f..f7752b17b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_80.json @@ -2,7 +2,7 @@ "ecmul_0-3_340282366920938463463374607431768211456_21000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_80Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xd7a595b5f61307e92c32a58073601d93296da7e85d38cb9910269aac3e42da3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3076686", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996923314", + "code" : "0x", + "nonce" : "68", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd7a595b5f61307e92c32a58073601d93296da7e85d38cb9910269aac3e42da3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd7a595b5f61307e92c32a58073601d93296da7e85d38cb9910269aac3e42da3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd7a595b5f61307e92c32a58073601d93296da7e85d38cb9910269aac3e42da3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd7a595b5f61307e92c32a58073601d93296da7e85d38cb9910269aac3e42da3a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x2e49ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3033518", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a735b652", - "code" : "", - "nonce" : "0x43", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996966482", + "code" : "0x", + "nonce" : "67", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_96.json index 616c43e8c..d9e57e0cc 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_340282366920938463463374607431768211456_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xd8c879d22b4674868bf577f46460b3bf07137d340a8e9abc3266ae9dfe6315b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2990222", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997009778", + "code" : "0x", + "nonce" : "66", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd8c879d22b4674868bf577f46460b3bf07137d340a8e9abc3266ae9dfe6315b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd8c879d22b4674868bf577f46460b3bf07137d340a8e9abc3266ae9dfe6315b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd8c879d22b4674868bf577f46460b3bf07137d340a8e9abc3266ae9dfe6315b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd8c879d22b4674868bf577f46460b3bf07137d340a8e9abc3266ae9dfe6315b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x2cf7ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2947054", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7370812", - "code" : "", - "nonce" : "0x41", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997052946", + "code" : "0x", + "nonce" : "65", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_128.json index 017ea426e..0846416e7 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_340282366920938463463374607431768211456_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xecb997a80061c472143ab8a27d248dd98d1eb64450095248e11146ab9e1b122c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7049911", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992950089", + "code" : "0x", + "nonce" : "164", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xecb997a80061c472143ab8a27d248dd98d1eb64450095248e11146ab9e1b122c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8ff54040a19f55a2e2dc998b38110271a6b61c5ad8e68307cef2ffee0eca5368", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8ff54040a19f55a2e2dc998b38110271a6b61c5ad8e68307cef2ffee0eca5368", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8ff54040a19f55a2e2dc998b38110271a6b61c5ad8e68307cef2ffee0eca5368", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x6ace3f", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6999615", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f931c1", - "code" : "", - "nonce" : "0xa3", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993000385", + "code" : "0x", + "nonce" : "163", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_80.json index 3e8c8e7b1..1691d8246 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_80.json @@ -2,7 +2,7 @@ "ecmul_0-3_340282366920938463463374607431768211456_28000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_80Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xf56dfe78415272d8426f954c7562d2348ec078a76ff2640eb17b866d46b321fd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7100079", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992899921", + "code" : "0x", + "nonce" : "165", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf56dfe78415272d8426f954c7562d2348ec078a76ff2640eb17b866d46b321fd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x86005d9cdf47c52563ba858b9ca39e7a1b8416bc5b2bc4cfa675141d3f591460", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x86005d9cdf47c52563ba858b9ca39e7a1b8416bc5b2bc4cfa675141d3f591460", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x86005d9cdf47c52563ba858b9ca39e7a1b8416bc5b2bc4cfa675141d3f591460", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x6b92b7", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7049911", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f86d49", - "code" : "", - "nonce" : "0xa4", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992950089", + "code" : "0x", + "nonce" : "164", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_96.json index bb31cbe1f..ab0705ada 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_340282366920938463463374607431768211456_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_340282366920938463463374607431768211456_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x81bde729623533559f171185845f26ef1eba16ff25f5911fd0052b661fc1ce04", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6999615", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993000385", + "code" : "0x", + "nonce" : "163", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x81bde729623533559f171185845f26ef1eba16ff25f5911fd0052b661fc1ce04", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x44e85fd6b0ec8948d30d0a08423fce5f59367bc736b34c0d32b9a15a3ea71327", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x44e85fd6b0ec8948d30d0a08423fce5f59367bc736b34c0d32b9a15a3ea71327", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x44e85fd6b0ec8948d30d0a08423fce5f59367bc736b34c0d32b9a15a3ea71327", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x6a0a47", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6949447", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f9f5b9", - "code" : "", - "nonce" : "0xa2", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993050553", + "code" : "0x", + "nonce" : "162", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_21000_128.json index 4d4398218..15e2fde96 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_5616_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_5616_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc0e4f36b6af703a68a8637e2c06464355b509b574bc1cd6ecc89d5294dfd45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3534990", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996465010", + "code" : "0x", + "nonce" : "78", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc0e4f36b6af703a68a8637e2c06464355b509b574bc1cd6ecc89d5294dfd45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc0e4f36b6af703a68a8637e2c06464355b509b574bc1cd6ecc89d5294dfd45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc0e4f36b6af703a68a8637e2c06464355b509b574bc1cd6ecc89d5294dfd45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc0e4f36b6af703a68a8637e2c06464355b509b574bc1cd6ecc89d5294dfd45ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x35406e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3489902", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a72ebf92", - "code" : "", - "nonce" : "0x4d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996510098", + "code" : "0x", + "nonce" : "77", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_21000_96.json index ccd955d94..c8fe25c5f 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_5616_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_5616_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x743556196649756f5e5f7184a27fe0bfc7ee15db8e11424a56a05d10e2e227a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3489902", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996510098", + "code" : "0x", + "nonce" : "77", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x743556196649756f5e5f7184a27fe0bfc7ee15db8e11424a56a05d10e2e227a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x743556196649756f5e5f7184a27fe0bfc7ee15db8e11424a56a05d10e2e227a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x743556196649756f5e5f7184a27fe0bfc7ee15db8e11424a56a05d10e2e227a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x743556196649756f5e5f7184a27fe0bfc7ee15db8e11424a56a05d10e2e227a2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x3490ce", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3444942", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a72f6f32", - "code" : "", - "nonce" : "0x4c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996555058", + "code" : "0x", + "nonce" : "76", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_28000_128.json index 93d7c2e59..5477413e7 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_5616_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_5616_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xbe345729b01741dee57796cf91596f1edfc917247830905945ab3de0fe79cd24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7513774", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992486226", + "code" : "0x", + "nonce" : "175", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbe345729b01741dee57796cf91596f1edfc917247830905945ab3de0fe79cd24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9d2d23c4a72cf84f9eaa76c099a172b232060777dbd15244634dc7a42c33a629", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9d2d23c4a72cf84f9eaa76c099a172b232060777dbd15244634dc7a42c33a629", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9d2d23c4a72cf84f9eaa76c099a172b232060777dbd15244634dc7a42c33a629", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x71db36", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7461686", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f224ca", - "code" : "", - "nonce" : "0xae", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992538314", + "code" : "0x", + "nonce" : "174", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_28000_96.json index adc52615f..a9b88920b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5616_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_5616_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_5616_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x1309a43504c09ae3bf8957c41195e68e8fc44d750a87843de91860ab458d7adc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7461686", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992538314", + "code" : "0x", + "nonce" : "174", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1309a43504c09ae3bf8957c41195e68e8fc44d750a87843de91860ab458d7adc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc6aaf3a94ad736a422ebdb77ec42ea2cf8ceb750ab7e7a1496e5c463b86c2cd7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc6aaf3a94ad736a422ebdb77ec42ea2cf8ceb750ab7e7a1496e5c463b86c2cd7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc6aaf3a94ad736a422ebdb77ec42ea2cf8ceb750ab7e7a1496e5c463b86c2cd7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x71103e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7409726", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f2efc2", - "code" : "", - "nonce" : "0xad", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992590274", + "code" : "0x", + "nonce" : "173", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_21000_128.json index 23f13c883..5e6e0e618 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_5617_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_5617_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x6008b8826f9e9066e05705127f9225ec751020203da0589e31fed04f3b6d8914", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3993934", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996006066", + "code" : "0x", + "nonce" : "88", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x6008b8826f9e9066e05705127f9225ec751020203da0589e31fed04f3b6d8914", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6008b8826f9e9066e05705127f9225ec751020203da0589e31fed04f3b6d8914", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6008b8826f9e9066e05705127f9225ec751020203da0589e31fed04f3b6d8914", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6008b8826f9e9066e05705127f9225ec751020203da0589e31fed04f3b6d8914", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x3c40ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3948782", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a727bf12", - "code" : "", - "nonce" : "0x57", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996051218", + "code" : "0x", + "nonce" : "87", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_21000_96.json index 2e826a5b8..0015d271a 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_5617_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_5617_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x8e9aa4e066aba1cadab54f1c859e3540cbca235de2fba540f6868f650e8f9739", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3948782", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996051218", + "code" : "0x", + "nonce" : "87", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8e9aa4e066aba1cadab54f1c859e3540cbca235de2fba540f6868f650e8f9739", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8e9aa4e066aba1cadab54f1c859e3540cbca235de2fba540f6868f650e8f9739", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8e9aa4e066aba1cadab54f1c859e3540cbca235de2fba540f6868f650e8f9739", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8e9aa4e066aba1cadab54f1c859e3540cbca235de2fba540f6868f650e8f9739", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x3b910e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3903758", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7286ef2", - "code" : "", - "nonce" : "0x56", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996096242", + "code" : "0x", + "nonce" : "86", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_28000_128.json index d019c370b..51b9617c5 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_5617_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_5617_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xdbc6922312592ec95f285d564857a4b616b622c846adafed237da6f4a083fd43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7928109", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992071891", + "code" : "0x", + "nonce" : "185", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xdbc6922312592ec95f285d564857a4b616b622c846adafed237da6f4a083fd43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6baeb9edd6eb8651735c350c230742d0dd0d380c10360417e11a943257005066", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6baeb9edd6eb8651735c350c230742d0dd0d380c10360417e11a943257005066", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6baeb9edd6eb8651735c350c230742d0dd0d380c10360417e11a943257005066", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x782d75", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7875957", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6ebd28b", - "code" : "", - "nonce" : "0xb8", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992124043", + "code" : "0x", + "nonce" : "184", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_28000_96.json index 4749760a5..aa6df6c92 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_5617_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_5617_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_5617_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x5c441b6cbaba047ce3ede5320f6bc8871d94a6ade0bfbd8f9ac274deb46e9cca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7875957", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992124043", + "code" : "0x", + "nonce" : "184", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5c441b6cbaba047ce3ede5320f6bc8871d94a6ade0bfbd8f9ac274deb46e9cca", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc19b60bd45b8c70bc3bbd3b11587eb0e12e7aad39246968329ca63a7b4490a99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc19b60bd45b8c70bc3bbd3b11587eb0e12e7aad39246968329ca63a7b4490a99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc19b60bd45b8c70bc3bbd3b11587eb0e12e7aad39246968329ca63a7b4490a99", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x77623d", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7823933", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6ec9dc3", - "code" : "", - "nonce" : "0xb7", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992176067", + "code" : "0x", + "nonce" : "183", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_21000_128.json index 3ec250980..91c2ed4f7 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_9935_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_9935_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc6d8369f8fbaf880b3332b3694450bb4b5807498e749e838000e155028725d0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4454158", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995545842", + "code" : "0x", + "nonce" : "98", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc6d8369f8fbaf880b3332b3694450bb4b5807498e749e838000e155028725d0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc6d8369f8fbaf880b3332b3694450bb4b5807498e749e838000e155028725d0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc6d8369f8fbaf880b3332b3694450bb4b5807498e749e838000e155028725d0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc6d8369f8fbaf880b3332b3694450bb4b5807498e749e838000e155028725d0e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x43462e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4408878", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a720b9d2", - "code" : "", - "nonce" : "0x61", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995591122", + "code" : "0x", + "nonce" : "97", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_21000_96.json index 994b488e4..1b49ff1e2 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_9935_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_9935_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xbbb67cc31a78fc2973ab6b04e23267366f687b9e0903e7c919fba47194e70742", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4408878", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995591122", + "code" : "0x", + "nonce" : "97", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbbb67cc31a78fc2973ab6b04e23267366f687b9e0903e7c919fba47194e70742", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbbb67cc31a78fc2973ab6b04e23267366f687b9e0903e7c919fba47194e70742", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbbb67cc31a78fc2973ab6b04e23267366f687b9e0903e7c919fba47194e70742", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbbb67cc31a78fc2973ab6b04e23267366f687b9e0903e7c919fba47194e70742", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x4295ce", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4363726", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7216a32", - "code" : "", - "nonce" : "0x60", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995636274", + "code" : "0x", + "nonce" : "96", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_28000_128.json index 14a398437..4fd7ad5ef 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_9935_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_9935_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x5001c8546a137e655c20f78318091f21f6111ff95a884f432b7d3895505afd39", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "8343724", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991656276", + "code" : "0x", + "nonce" : "195", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5001c8546a137e655c20f78318091f21f6111ff95a884f432b7d3895505afd39", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8b1b03e1127f001e462bb3ec519e9e21809b55a000ececfd50cc62ad19ebb235", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8b1b03e1127f001e462bb3ec519e9e21809b55a000ececfd50cc62ad19ebb235", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8b1b03e1127f001e462bb3ec519e9e21809b55a000ececfd50cc62ad19ebb235", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x7e8474", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "8291444", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6e57b8c", - "code" : "", - "nonce" : "0xc2", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991708556", + "code" : "0x", + "nonce" : "194", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_28000_96.json index 107adadd9..9e29db063 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9935_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_9935_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_9935_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9a0c21e845af8e26ecbe95ce7e18a740f310bc4ca7a34f168df3c4b45cc0dd6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "8291444", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991708556", + "code" : "0x", + "nonce" : "194", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9a0c21e845af8e26ecbe95ce7e18a740f310bc4ca7a34f168df3c4b45cc0dd6d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5af1078f0ccd78eae444897029c125a79f692f71e0a6c0fb4c9b6961b0384369", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5af1078f0ccd78eae444897029c125a79f692f71e0a6c0fb4c9b6961b0384369", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5af1078f0ccd78eae444897029c125a79f692f71e0a6c0fb4c9b6961b0384369", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x7db8bc", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "8239292", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6e64744", - "code" : "", - "nonce" : "0xc1", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991760708", + "code" : "0x", + "nonce" : "193", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_21000_128.json index 02d5ac2d9..6607e6100 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_21000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_9_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_9_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x99a2f900d8362a2796e5a13813b94c98bf9ed5fe1d294f80904b09faaf40893b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2416430", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997583570", + "code" : "0x", + "nonce" : "53", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x99a2f900d8362a2796e5a13813b94c98bf9ed5fe1d294f80904b09faaf40893b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x99a2f900d8362a2796e5a13813b94c98bf9ed5fe1d294f80904b09faaf40893b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x99a2f900d8362a2796e5a13813b94c98bf9ed5fe1d294f80904b09faaf40893b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x99a2f900d8362a2796e5a13813b94c98bf9ed5fe1d294f80904b09faaf40893b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x24360e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2373134", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a73fc9f2", - "code" : "", - "nonce" : "0x34", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997626866", + "code" : "0x", + "nonce" : "52", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_21000_96.json index 624cc2b88..369ad3c35 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_21000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_9_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_9_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x618a348e7107ef322cd234fb11ab7c60f1cdb52278a0a29d1d14cb6788f55298", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2373134", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997626866", + "code" : "0x", + "nonce" : "52", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x618a348e7107ef322cd234fb11ab7c60f1cdb52278a0a29d1d14cb6788f55298", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x618a348e7107ef322cd234fb11ab7c60f1cdb52278a0a29d1d14cb6788f55298", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x618a348e7107ef322cd234fb11ab7c60f1cdb52278a0a29d1d14cb6788f55298", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x618a348e7107ef322cd234fb11ab7c60f1cdb52278a0a29d1d14cb6788f55298", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x238d6e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2329966", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7407292", - "code" : "", - "nonce" : "0x33", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997670034", + "code" : "0x", + "nonce" : "51", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_28000_128.json index ba38573eb..1fe501b64 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_28000_128.json @@ -2,7 +2,7 @@ "ecmul_0-3_9_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_9_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc5e97f804aa0708ba41565db74714800306141bc76420b833b132f1e348a856d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6506741", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993493259", + "code" : "0x", + "nonce" : "150", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc5e97f804aa0708ba41565db74714800306141bc76420b833b132f1e348a856d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7ca8fc2d2040fde8de04ef20decd50a2a66f8e9cc66a3d08ef2d8cf87b31203a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7ca8fc2d2040fde8de04ef20decd50a2a66f8e9cc66a3d08ef2d8cf87b31203a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7ca8fc2d2040fde8de04ef20decd50a2a66f8e9cc66a3d08ef2d8cf87b31203a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x62847d", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6456445", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7017b83", - "code" : "", - "nonce" : "0x95", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993543555", + "code" : "0x", + "nonce" : "149", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_28000_96.json index 611ccd332..f60bb66d6 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_0-3_9_28000_96.json @@ -2,7 +2,7 @@ "ecmul_0-3_9_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_0-3_9_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (0, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x483a2318156d4693aabbe813036b4c2735b7156db6e2ef83bb37ef5b70d4e9c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6456445", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993543555", + "code" : "0x", + "nonce" : "149", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x483a2318156d4693aabbe813036b4c2735b7156db6e2ef83bb37ef5b70d4e9c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe711366887bf2eac2815eb0f0fcb8a57a6806623f00e2732447f468590dde992", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe711366887bf2eac2815eb0f0fcb8a57a6806623f00e2732447f468590dde992", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe711366887bf2eac2815eb0f0fcb8a57a6806623f00e2732447f468590dde992", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (0, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x61c085", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6406277", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7023f7b", - "code" : "", - "nonce" : "0x94", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993593723", + "code" : "0x", + "nonce" : "148", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_128.json index 48bb12727..2c0fbc893 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_0_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_0_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x813882903a9c3da7bd6d75214f25b55898aeae388f809d746cd25460696d2542", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "475694", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999524306", + "code" : "0x", + "nonce" : "9", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x813882903a9c3da7bd6d75214f25b55898aeae388f809d746cd25460696d2542", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x813882903a9c3da7bd6d75214f25b55898aeae388f809d746cd25460696d2542", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x813882903a9c3da7bd6d75214f25b55898aeae388f809d746cd25460696d2542", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x813882903a9c3da7bd6d75214f25b55898aeae388f809d746cd25460696d2542", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x06990e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "432398", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75d66f2", - "code" : "", - "nonce" : "0x08", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999567602", + "code" : "0x", + "nonce" : "8", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_64.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_64.json index 4f321836c..b3dc749d0 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_64.json @@ -2,7 +2,7 @@ "ecmul_1-2_0_21000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_0_21000_64Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x6ba9178ca09fdf119426e809cccff7449f19522bd562f989333a30e870088053", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "518734", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999481266", + "code" : "0x", + "nonce" : "10", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x6ba9178ca09fdf119426e809cccff7449f19522bd562f989333a30e870088053", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6ba9178ca09fdf119426e809cccff7449f19522bd562f989333a30e870088053", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6ba9178ca09fdf119426e809cccff7449f19522bd562f989333a30e870088053", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6ba9178ca09fdf119426e809cccff7449f19522bd562f989333a30e870088053", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x07422e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "475694", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75cbdd2", - "code" : "", - "nonce" : "0x09", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999524306", + "code" : "0x", + "nonce" : "9", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_80.json index 0de6264f2..646f9459b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_80.json @@ -2,7 +2,7 @@ "ecmul_1-2_0_21000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_0_21000_80Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x1e4d8647fd838e80a081a069c14e553fc488531e005a7d3e0925104d43b0fee1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "561902", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999438098", + "code" : "0x", + "nonce" : "11", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1e4d8647fd838e80a081a069c14e553fc488531e005a7d3e0925104d43b0fee1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1e4d8647fd838e80a081a069c14e553fc488531e005a7d3e0925104d43b0fee1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1e4d8647fd838e80a081a069c14e553fc488531e005a7d3e0925104d43b0fee1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1e4d8647fd838e80a081a069c14e553fc488531e005a7d3e0925104d43b0fee1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x07ea4e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "518734", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75c15b2", - "code" : "", - "nonce" : "0x0a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999481266", + "code" : "0x", + "nonce" : "10", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_96.json index 5e7043f4b..b2d995010 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_0_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_0_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xe06ed52092167e20e100bfc9bbe104797f2063c5bc9cdb19f1b10bd769364303", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "432398", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999567602", + "code" : "0x", + "nonce" : "8", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe06ed52092167e20e100bfc9bbe104797f2063c5bc9cdb19f1b10bd769364303", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe06ed52092167e20e100bfc9bbe104797f2063c5bc9cdb19f1b10bd769364303", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe06ed52092167e20e100bfc9bbe104797f2063c5bc9cdb19f1b10bd769364303", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe06ed52092167e20e100bfc9bbe104797f2063c5bc9cdb19f1b10bd769364303", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x05f06e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "389230", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75e0f92", - "code" : "", - "nonce" : "0x07", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999610770", + "code" : "0x", + "nonce" : "7", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_128.json index 19fbcc96a..0c6efbc50 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_0_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_0_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9774d7e6acecc0d1c2bf6ed5a589dbd0cba877cd54c439c89cf31a8f25a0c14a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4716453", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995283547", + "code" : "0x", + "nonce" : "106", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9774d7e6acecc0d1c2bf6ed5a589dbd0cba877cd54c439c89cf31a8f25a0c14a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3e203675c1c69a67c53807844f4e25ce755a189d2cffe6478b9c901b4b6e7122", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3e203675c1c69a67c53807844f4e25ce755a189d2cffe6478b9c901b4b6e7122", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe8732a3a7e9fed6bd6a71925bcba5f749010d64a28f5d4e9cd6c82ea106a8d96", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x477dc9", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4685257", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71c8237", - "code" : "", - "nonce" : "0x69", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995314743", + "code" : "0x", + "nonce" : "105", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_64.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_64.json index f825803c2..aaeed0fcb 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_64.json @@ -2,7 +2,7 @@ "ecmul_1-2_0_28000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_0_28000_64Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc1587bb183a184690525ec557c89f13e1ad328dfbbd733c045847e60e3139b56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4747387", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995252613", + "code" : "0x", + "nonce" : "107", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc1587bb183a184690525ec557c89f13e1ad328dfbbd733c045847e60e3139b56", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf213334c512f030277b1d75824256745275c2fd9da7d6eecb3aba3e437f7bfd2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf213334c512f030277b1d75824256745275c2fd9da7d6eecb3aba3e437f7bfd2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x146e0d962d768badd3ae24186d3e39b21415ee39bae1f0d88dea507570ad0313", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x47f7a5", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4716453", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71c085b", - "code" : "", - "nonce" : "0x6a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995283547", + "code" : "0x", + "nonce" : "106", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_80.json index aff01a48e..694a45922 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_80.json @@ -2,7 +2,7 @@ "ecmul_1-2_0_28000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_0_28000_80Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x502dadb7bc58dd7aaddca3f98183d18bdbc3b87432d81712f1283c910b307347", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4778452", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995221548", + "code" : "0x", + "nonce" : "108", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x502dadb7bc58dd7aaddca3f98183d18bdbc3b87432d81712f1283c910b307347", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd119d308eb898e38806ecd46c0bcf5e1597386cbb094a7e1c349f09aa0bf8e2c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd119d308eb898e38806ecd46c0bcf5e1597386cbb094a7e1c349f09aa0bf8e2c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd9d963f60e58ac5491b9b37a2b841a470244fc5b036ddd680b957e9874f44ae0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x48707b", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4747387", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71b8f85", - "code" : "", - "nonce" : "0x6b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995252613", + "code" : "0x", + "nonce" : "107", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_96.json index c38a16f74..790fca650 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_0_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_0_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_0_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x772155e9c25ad72eacb3e964f9a45e5445e061d5758f0b0e54428bae417df9e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4685257", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995314743", + "code" : "0x", + "nonce" : "105", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x772155e9c25ad72eacb3e964f9a45e5445e061d5758f0b0e54428bae417df9e2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcd0fd6b0465947e552023278ac11f2a92dbde984991cf45e3f2a43621567fff0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcd0fd6b0465947e552023278ac11f2a92dbde984991cf45e3f2a43621567fff0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xede1fe8d159892955f08843d354f2ac0fa79120308d7c5f9cdd0b75ab6313bb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x470470", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4654192", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71cfb90", - "code" : "", - "nonce" : "0x68", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995345808", + "code" : "0x", + "nonce" : "104", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_21000_128.json index a8ee3880b..32c855deb 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_1_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_1_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x4e07b106efb54c4efc31ae393392705c1e28307717060907620c4ee492742525", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1268206", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998731794", + "code" : "0x", + "nonce" : "27", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4e07b106efb54c4efc31ae393392705c1e28307717060907620c4ee492742525", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4e07b106efb54c4efc31ae393392705c1e28307717060907620c4ee492742525", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4e07b106efb54c4efc31ae393392705c1e28307717060907620c4ee492742525", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4e07b106efb54c4efc31ae393392705c1e28307717060907620c4ee492742525", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x12b08e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1224846", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7514f72", - "code" : "", - "nonce" : "0x1a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998775154", + "code" : "0x", + "nonce" : "26", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_21000_96.json index b0af3f65d..d59f61a36 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_1_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_1_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x3fb7bf2eeb05b0b57b0b20e356eb671b1187f826f040daef724070fdc2148a1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1224846", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998775154", + "code" : "0x", + "nonce" : "26", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x3fb7bf2eeb05b0b57b0b20e356eb671b1187f826f040daef724070fdc2148a1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3fb7bf2eeb05b0b57b0b20e356eb671b1187f826f040daef724070fdc2148a1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3fb7bf2eeb05b0b57b0b20e356eb671b1187f826f040daef724070fdc2148a1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3fb7bf2eeb05b0b57b0b20e356eb671b1187f826f040daef724070fdc2148a1b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1207ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1181614", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a751f852", - "code" : "", - "nonce" : "0x19", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998818386", + "code" : "0x", + "nonce" : "25", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_28000_128.json index af074ddb2..f8e0491be 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_1_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_1_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x392ef017c54ac343289c865f4c9bbf7498f7d4020958dd2679af4b99f9ae955c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5443938", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994556062", + "code" : "0x", + "nonce" : "124", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x392ef017c54ac343289c865f4c9bbf7498f7d4020958dd2679af4b99f9ae955c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9898f1789c61ce1f447e4321baa11e9b793d6b35316d530c8a84ea717935261d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9898f1789c61ce1f447e4321baa11e9b793d6b35316d530c8a84ea717935261d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x82631f4fbc05996922ad7da35ded7ebf24d8dbaf49e8ebeb7e3ad1cf98969df7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x529746", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5412678", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71168ba", - "code" : "", - "nonce" : "0x7b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994587322", + "code" : "0x", + "nonce" : "123", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_28000_96.json index ea1bed64d..f4e58dbab 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_1_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_1_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_1_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xe32334ddcc3851155fb8f17ec83e1af56f485e5d162199e4710735b69f76839a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5412678", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994587322", + "code" : "0x", + "nonce" : "123", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe32334ddcc3851155fb8f17ec83e1af56f485e5d162199e4710735b69f76839a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbc8ca8698e1db40e7cc3c339d41fe78345037967f523d7a58fcfb874c121cd1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbc8ca8698e1db40e7cc3c339d41fe78345037967f523d7a58fcfb874c121cd1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8fe318765ba492b247dc8f5b94e297bc98cd8dad9d7bd49fb0580672eb398bc2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x521dad", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5381549", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a711e253", - "code" : "", - "nonce" : "0x7a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994618451", + "code" : "0x", + "nonce" : "122", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_21000_128.json index 0ac29b6e4..f5f57bdf4 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_2_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_2_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xd378cb4726076aa3b504107351f7e60102c96f64c5c194aba5dd86c8de781c7f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1708590", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998291410", + "code" : "0x", + "nonce" : "37", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd378cb4726076aa3b504107351f7e60102c96f64c5c194aba5dd86c8de781c7f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd378cb4726076aa3b504107351f7e60102c96f64c5c194aba5dd86c8de781c7f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd378cb4726076aa3b504107351f7e60102c96f64c5c194aba5dd86c8de781c7f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd378cb4726076aa3b504107351f7e60102c96f64c5c194aba5dd86c8de781c7f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1968ce", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1665230", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74a9732", - "code" : "", - "nonce" : "0x24", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998334770", + "code" : "0x", + "nonce" : "36", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_21000_96.json index 71ee17039..163d3a346 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_2_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_2_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x48ab4af4dbae4b35f110292b2bcc34161c6a6678d988842329cb4407bb75da3c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1665230", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998334770", + "code" : "0x", + "nonce" : "36", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x48ab4af4dbae4b35f110292b2bcc34161c6a6678d988842329cb4407bb75da3c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x48ab4af4dbae4b35f110292b2bcc34161c6a6678d988842329cb4407bb75da3c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x48ab4af4dbae4b35f110292b2bcc34161c6a6678d988842329cb4407bb75da3c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x48ab4af4dbae4b35f110292b2bcc34161c6a6678d988842329cb4407bb75da3c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x18bfee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1621998", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74b4012", - "code" : "", - "nonce" : "0x23", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998378002", + "code" : "0x", + "nonce" : "35", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_28000_128.json index 325fd581f..377a2de7c 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_2_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_2_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9d644ad16970c218f666a069136c15b3e604ff8782e48263085392685277139a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5839713", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994160287", + "code" : "0x", + "nonce" : "134", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9d644ad16970c218f666a069136c15b3e604ff8782e48263085392685277139a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x324e29720e45c6983860c35a289210e25c3ee20fbac7a9c6d84ebda6b414596c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x324e29720e45c6983860c35a289210e25c3ee20fbac7a9c6d84ebda6b414596c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1026615cf8ac5436d8ae4abc876632f72f38540d40470e6ee5cb4b425e38235d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x58a145", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5808453", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70b5ebb", - "code" : "", - "nonce" : "0x85", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994191547", + "code" : "0x", + "nonce" : "133", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_28000_96.json index 2eeca6bfe..fb0b111bb 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_2_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_2_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_2_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xe22a6403bfca260f936b0fdc167f95061c1a6289faa8639effd040a3d9ff1328", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5808453", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994191547", + "code" : "0x", + "nonce" : "133", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe22a6403bfca260f936b0fdc167f95061c1a6289faa8639effd040a3d9ff1328", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x523309023ae81e572181c298a5034eaf0f1cde218e08bd8db27e165e56b341e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x523309023ae81e572181c298a5034eaf0f1cde218e08bd8db27e165e56b341e4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x14f84a60308f4eeef0b326c2bfc8d1ad44f5b634c0889fcf1f18bfaf93e12d7d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5827ac", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5777324", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70bd854", - "code" : "", - "nonce" : "0x84", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994222676", + "code" : "0x", + "nonce" : "132", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_128.json index 4c151364c..d484d285f 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_340282366920938463463374607431768211456_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9b4e59298af76349b2e69cf25d739e470388e22adbb33f0948b0ea0fe6d08a87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2632462", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997367538", + "code" : "0x", + "nonce" : "58", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9b4e59298af76349b2e69cf25d739e470388e22adbb33f0948b0ea0fe6d08a87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9b4e59298af76349b2e69cf25d739e470388e22adbb33f0948b0ea0fe6d08a87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9b4e59298af76349b2e69cf25d739e470388e22adbb33f0948b0ea0fe6d08a87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9b4e59298af76349b2e69cf25d739e470388e22adbb33f0948b0ea0fe6d08a87", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x2781ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2589102", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a73c7e52", - "code" : "", - "nonce" : "0x39", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997410898", + "code" : "0x", + "nonce" : "57", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_80.json index f13143dc5..da5be10d5 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_80.json @@ -2,7 +2,7 @@ "ecmul_1-2_340282366920938463463374607431768211456_21000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_80Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x2b340461a39dbab2d361ca3dd8192b34266a72944cab376dbeea0c04decb8200", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2675694", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997324306", + "code" : "0x", + "nonce" : "59", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2b340461a39dbab2d361ca3dd8192b34266a72944cab376dbeea0c04decb8200", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2b340461a39dbab2d361ca3dd8192b34266a72944cab376dbeea0c04decb8200", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2b340461a39dbab2d361ca3dd8192b34266a72944cab376dbeea0c04decb8200", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2b340461a39dbab2d361ca3dd8192b34266a72944cab376dbeea0c04decb8200", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x282b0e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2632462", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a73bd4f2", - "code" : "", - "nonce" : "0x3a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997367538", + "code" : "0x", + "nonce" : "58", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_96.json index c0007a3d3..970270dd9 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_340282366920938463463374607431768211456_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xee43d77e1b1082687e390f799ed6f03f7e7817643020a419a4242fc59bd23ef9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2589102", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997410898", + "code" : "0x", + "nonce" : "57", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xee43d77e1b1082687e390f799ed6f03f7e7817643020a419a4242fc59bd23ef9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xee43d77e1b1082687e390f799ed6f03f7e7817643020a419a4242fc59bd23ef9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xee43d77e1b1082687e390f799ed6f03f7e7817643020a419a4242fc59bd23ef9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xee43d77e1b1082687e390f799ed6f03f7e7817643020a419a4242fc59bd23ef9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x26d8ce", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2545870", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a73d2732", - "code" : "", - "nonce" : "0x38", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997454130", + "code" : "0x", + "nonce" : "56", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_128.json index 78673f8f4..f545b7b58 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_340282366920938463463374607431768211456_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x906670294fb3fd7274278359c9460e202ac35ee9ba3d39f7c871ab5f8764a86e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6662264", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993337736", + "code" : "0x", + "nonce" : "155", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x906670294fb3fd7274278359c9460e202ac35ee9ba3d39f7c871ab5f8764a86e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaa70ec0be0b531a58f1796679f0a53c3ffc389bbb04247f7a61f8a5fc321ae8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaa70ec0be0b531a58f1796679f0a53c3ffc389bbb04247f7a61f8a5fc321ae8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x32997bab5b01e1b91a063bc9a884e07d39294a822a6150e675014091ef1cf9b2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x652e5c", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6631004", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6fed1a4", - "code" : "", - "nonce" : "0x9a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993368996", + "code" : "0x", + "nonce" : "154", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_80.json index c8076c092..c62b8b061 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_80.json @@ -2,7 +2,7 @@ "ecmul_1-2_340282366920938463463374607431768211456_28000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_80Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x5b32a248064b345f26be71e2bd1a9eec9076db475001978a6ae8f50eee49877c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6693393", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993306607", + "code" : "0x", + "nonce" : "156", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5b32a248064b345f26be71e2bd1a9eec9076db475001978a6ae8f50eee49877c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf90806005751b660d661a065d82f62095a60bff8f60748a013ae09698bd35e04", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf90806005751b660d661a065d82f62095a60bff8f60748a013ae09698bd35e04", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x6b50a567f3d446444fc4e7381777d5b4c2c7c7bb5828ba3214ac6a10bbc42464", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x65a878", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6662264", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6fe5788", - "code" : "", - "nonce" : "0x9b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993337736", + "code" : "0x", + "nonce" : "155", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_96.json index 447a892dc..c7c1216cd 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_340282366920938463463374607431768211456_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_340282366920938463463374607431768211456_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x723902bd58f94d97f55f4a267d3ebe09c89fd5d73c3db4ee70c58880f6a4469f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6631004", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993368996", + "code" : "0x", + "nonce" : "154", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x723902bd58f94d97f55f4a267d3ebe09c89fd5d73c3db4ee70c58880f6a4469f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7a3f44474821ca082177187fa5ae92fa5ded8f558d4b8f03f385a7070fce773c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7a3f44474821ca082177187fa5ae92fa5ded8f558d4b8f03f385a7070fce773c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x58cca967684e31b2f30ea61a1af1e2666fe904e6c95ed1313d5af1ab74e1c908", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x64b4c3", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6599875", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6ff4b3d", - "code" : "", - "nonce" : "0x99", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993400125", + "code" : "0x", + "nonce" : "153", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5616_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5616_21000_128.json index 1760a414d..c293c06a8 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5616_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5616_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_5616_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_5616_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x2035cb91d2aa591f4697eae9c22a2bf564436f7e2c8c4f569fd92de06f30a334", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3256782", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996743218", + "code" : "0x", + "nonce" : "72", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2035cb91d2aa591f4697eae9c22a2bf564436f7e2c8c4f569fd92de06f30a334", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2035cb91d2aa591f4697eae9c22a2bf564436f7e2c8c4f569fd92de06f30a334", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2035cb91d2aa591f4697eae9c22a2bf564436f7e2c8c4f569fd92de06f30a334", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2035cb91d2aa591f4697eae9c22a2bf564436f7e2c8c4f569fd92de06f30a334", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x31016e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3211630", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a732fe92", - "code" : "", - "nonce" : "0x47", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996788370", + "code" : "0x", + "nonce" : "71", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5616_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5616_21000_96.json index 880c85196..5d8c79a5b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5616_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5616_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_5616_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_5616_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x5489de0ba684368b559eef993a7201a740f0482be74e3bc745d7084f636b4aa5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3211630", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996788370", + "code" : "0x", + "nonce" : "71", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5489de0ba684368b559eef993a7201a740f0482be74e3bc745d7084f636b4aa5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5489de0ba684368b559eef993a7201a740f0482be74e3bc745d7084f636b4aa5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5489de0ba684368b559eef993a7201a740f0482be74e3bc745d7084f636b4aa5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5489de0ba684368b559eef993a7201a740f0482be74e3bc745d7084f636b4aa5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x30518e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3166606", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a733ae72", - "code" : "", - "nonce" : "0x46", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996833394", + "code" : "0x", + "nonce" : "70", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5616_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5616_28000_128.json index 60b083631..16a88a774 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5616_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5616_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_5616_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_5616_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x888b32f37f6e03845a8ef47ef3c7be89f741b0818b902a458c2c597476ca2ab1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7231769", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992768231", + "code" : "0x", + "nonce" : "169", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xac1de87792e425a22b81bdf624dc1b24fee26f16e9a879172aebc261cc51a2fe" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x888b32f37f6e03845a8ef47ef3c7be89f741b0818b902a458c2c597476ca2ab1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe7c4e96fc89b1c4bcc2b413368c20af0aae648d29c1fd174e4e23f48b7b36deb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe7c4e96fc89b1c4bcc2b413368c20af0aae648d29c1fd174e4e23f48b7b36deb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4769098f041ae1d0455371b9e39d790de0d6bb353250bb19c27dfed2640e54ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x6dd7fd", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7198717", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f62803", - "code" : "", - "nonce" : "0xa8", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992801283", + "code" : "0x", + "nonce" : "168", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xac1de87792e425a22b81bdf624dc1b24fee26f16e9a879172aebc261cc51a2fe" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_21000_128.json index d7822cc64..0b57c9967 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_5617_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_5617_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x580d7fb89bcc858b53c7182c06b038dfcbd43ced9e4695ae897811a0a4e45e60", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3715342", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996284658", + "code" : "0x", + "nonce" : "82", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x580d7fb89bcc858b53c7182c06b038dfcbd43ced9e4695ae897811a0a4e45e60", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x580d7fb89bcc858b53c7182c06b038dfcbd43ced9e4695ae897811a0a4e45e60", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x580d7fb89bcc858b53c7182c06b038dfcbd43ced9e4695ae897811a0a4e45e60", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x580d7fb89bcc858b53c7182c06b038dfcbd43ced9e4695ae897811a0a4e45e60", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x38006e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3670126", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a72bff92", - "code" : "", - "nonce" : "0x51", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996329874", + "code" : "0x", + "nonce" : "81", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_21000_96.json index d79b354f1..b7197d762 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_5617_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_5617_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x13b53209558a27ce43ac619822e80896bf66f12e545556bd77be0d69ea9fb085", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3670126", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996329874", + "code" : "0x", + "nonce" : "81", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x13b53209558a27ce43ac619822e80896bf66f12e545556bd77be0d69ea9fb085", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x13b53209558a27ce43ac619822e80896bf66f12e545556bd77be0d69ea9fb085", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x13b53209558a27ce43ac619822e80896bf66f12e545556bd77be0d69ea9fb085", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x13b53209558a27ce43ac619822e80896bf66f12e545556bd77be0d69ea9fb085", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x37504e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3625038", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a72cafb2", - "code" : "", - "nonce" : "0x50", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996374962", + "code" : "0x", + "nonce" : "80", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_28000_128.json index 46f8cf31f..9b2437cfd 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_5617_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_5617_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x83dcb06ac56b9ccadb24a11c55d3fd2504d36e69e72b331b21b64d3dd51c192b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7645720", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992354280", + "code" : "0x", + "nonce" : "179", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x83dcb06ac56b9ccadb24a11c55d3fd2504d36e69e72b331b21b64d3dd51c192b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3bd3310eb0392460a0bb17780f6f38e8b3fa56673f7382c7f1a4a7719bd51b1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3bd3310eb0392460a0bb17780f6f38e8b3fa56673f7382c7f1a4a7719bd51b1e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1b83b9bb145ccd01ea019c66438066c7f97a132266bb9d444dc2169a76efe9ef", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x7428bc", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7612604", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6efd744", - "code" : "", - "nonce" : "0xb2", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992387396", + "code" : "0x", + "nonce" : "178", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_28000_96.json index d00e3a237..5a3fcd32e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_5617_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_5617_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_5617_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x56eeef1fe379017add717f73af456f2889ccf4c068fd9ffb278692d5185dd06e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7612604", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992387396", + "code" : "0x", + "nonce" : "178", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x56eeef1fe379017add717f73af456f2889ccf4c068fd9ffb278692d5185dd06e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd497af05b68ced90bdd6d490f68eb2adc3f3efc3a83f946ff1b9bab25fd02ffb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd497af05b68ced90bdd6d490f68eb2adc3f3efc3a83f946ff1b9bab25fd02ffb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5bd15cf493e038d3ea64a5b0388a78140599668d14ba269cc0e93ea053f49767", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x73a7e3", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7579619", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f0581d", - "code" : "", - "nonce" : "0xb1", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992420381", + "code" : "0x", + "nonce" : "177", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_616_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_616_28000_96.json index b3f09e460..034d044d3 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_616_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_616_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_616_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_616_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9665331b30df36acec79bf537e0ccd9720fac5f7c8a3beed6b7f3552406aea55", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7198717", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992801283", + "code" : "0x", + "nonce" : "168", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xac1de87792e425a22b81bdf624dc1b24fee26f16e9a879172aebc261cc51a2fe" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9665331b30df36acec79bf537e0ccd9720fac5f7c8a3beed6b7f3552406aea55", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3efc30f58d03bc4c5a8d9d98feb65a6f3795378c9f414ed946ee01810b5ca06b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3efc30f58d03bc4c5a8d9d98feb65a6f3795378c9f414ed946ee01810b5ca06b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x31340e14c930c3d48d29d83f6fd7b743f480df558a9eef5a5a8d53fb520e7df4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x6d5764", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7165796", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f6a89c", - "code" : "", - "nonce" : "0xa7", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992834204", + "code" : "0x", + "nonce" : "167", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_21000_128.json index 60d783471..48d380c7f 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_9935_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_9935_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x533b26e76f9084e68bd6e607671d8cc8bdad51d3f588bf755de30708fc4be128", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4174798", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995825202", + "code" : "0x", + "nonce" : "92", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x533b26e76f9084e68bd6e607671d8cc8bdad51d3f588bf755de30708fc4be128", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x533b26e76f9084e68bd6e607671d8cc8bdad51d3f588bf755de30708fc4be128", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x533b26e76f9084e68bd6e607671d8cc8bdad51d3f588bf755de30708fc4be128", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x533b26e76f9084e68bd6e607671d8cc8bdad51d3f588bf755de30708fc4be128", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x3f02ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4129454", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a724fd52", - "code" : "", - "nonce" : "0x5b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995870546", + "code" : "0x", + "nonce" : "91", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_21000_96.json index 7469c3914..3716e2b21 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_9935_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_9935_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x450c153cef502580a8fb23097c83311a9859d7163e97ebb3399b3af74d167d4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4129454", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995870546", + "code" : "0x", + "nonce" : "91", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x450c153cef502580a8fb23097c83311a9859d7163e97ebb3399b3af74d167d4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x450c153cef502580a8fb23097c83311a9859d7163e97ebb3399b3af74d167d4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x450c153cef502580a8fb23097c83311a9859d7163e97ebb3399b3af74d167d4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x450c153cef502580a8fb23097c83311a9859d7163e97ebb3399b3af74d167d4c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x3e520e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4084238", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a725adf2", - "code" : "", - "nonce" : "0x5a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995915762", + "code" : "0x", + "nonce" : "90", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_28000_128.json index ee117fd92..600fb52e1 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_9935_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_9935_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x54bead3756c61f9e5ba8859e3fc73cc588656cdef5e4f23c52d785ccc62ae57c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "8060567", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991939433", + "code" : "0x", + "nonce" : "189", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xa34b6e4f9c282ff62c1e6f53fd92ad8efd8346d9866333a95ab4506a8158afc7" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x54bead3756c61f9e5ba8859e3fc73cc588656cdef5e4f23c52d785ccc62ae57c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbbc69ff06cd6bca8f7eb87e3ffca52c5372519989e67b60a0c98156702e4669e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbbc69ff06cd6bca8f7eb87e3ffca52c5372519989e67b60a0c98156702e4669e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf78e65eb69e58843f9f24f71bab6ce0d1161c89e8c9c1c7c7268dfbde0186598", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x7a7cbb", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "8027323", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6e98345", - "code" : "", - "nonce" : "0xbc", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991972677", + "code" : "0x", + "nonce" : "188", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xa34b6e4f9c282ff62c1e6f53fd92ad8efd8346d9866333a95ab4506a8158afc7" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_28000_96.json index e00a96663..566d8a395 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9935_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_9935_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_9935_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x42284d971cf4355ec7d0c370c845011a1d3876f1d036d19f3f7e8ad87a0aab78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "8027323", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991972677", + "code" : "0x", + "nonce" : "188", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xa34b6e4f9c282ff62c1e6f53fd92ad8efd8346d9866333a95ab4506a8158afc7" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x42284d971cf4355ec7d0c370c845011a1d3876f1d036d19f3f7e8ad87a0aab78", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd6a494368f1aa5a0cf08b745e808a0beea29acf48ebed213289f20eef3ed08dc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd6a494368f1aa5a0cf08b745e808a0beea29acf48ebed213289f20eef3ed08dc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x97d0e4eec33ea19ccdd70128bbdef9ab5792eb7dfacdef4e249adde022dc7e98", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x79fb62", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7994210", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6ea049e", - "code" : "", - "nonce" : "0xbb", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992005790", + "code" : "0x", + "nonce" : "187", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_21000_128.json index 444eb006a..1951a1294 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_9_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_9_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x998d44434f8220cea0b68abc4b22ef3c2eb770cc0ba95e9bae94cdf59e89349c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2148974", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997851026", + "code" : "0x", + "nonce" : "47", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x998d44434f8220cea0b68abc4b22ef3c2eb770cc0ba95e9bae94cdf59e89349c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x998d44434f8220cea0b68abc4b22ef3c2eb770cc0ba95e9bae94cdf59e89349c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x998d44434f8220cea0b68abc4b22ef3c2eb770cc0ba95e9bae94cdf59e89349c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x998d44434f8220cea0b68abc4b22ef3c2eb770cc0ba95e9bae94cdf59e89349c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x20210e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2105614", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a743def2", - "code" : "", - "nonce" : "0x2e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997894386", + "code" : "0x", + "nonce" : "46", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_21000_96.json index 60b7a2b8b..d5e0d5923 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_9_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_9_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x5bf74431a893266671b2a8bb304893221b86293f4a6c5e8b51ddb0d9dda4eb6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2105614", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997894386", + "code" : "0x", + "nonce" : "46", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5bf74431a893266671b2a8bb304893221b86293f4a6c5e8b51ddb0d9dda4eb6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5bf74431a893266671b2a8bb304893221b86293f4a6c5e8b51ddb0d9dda4eb6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5bf74431a893266671b2a8bb304893221b86293f4a6c5e8b51ddb0d9dda4eb6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5bf74431a893266671b2a8bb304893221b86293f4a6c5e8b51ddb0d9dda4eb6a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1f782e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2062382", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74487d2", - "code" : "", - "nonce" : "0x2d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997937618", + "code" : "0x", + "nonce" : "45", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_28000_128.json index 6479751ef..97a8a497a 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-2_9_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_9_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9995a138c0bbba1d517eed14d37792a9a7bb1c2e4ce2f468abbec5c2f7371fad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6235488", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993764512", + "code" : "0x", + "nonce" : "144", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xc7b29565a7dd9915e6fd86d026aef2fc454506bae7f90e2f2bec5f25f01b2d95" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9995a138c0bbba1d517eed14d37792a9a7bb1c2e4ce2f468abbec5c2f7371fad", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4829227c9c407e31ee67961599854e13f292e999aaaf2c2d36bc635f3b263b0d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4829227c9c407e31ee67961599854e13f292e999aaaf2c2d36bc635f3b263b0d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc64f5de3fc4e505e297912bb5efebb28386dc8ca420b20ae28009b0816026c8a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5eab44", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6204228", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70554bc", - "code" : "", - "nonce" : "0x8f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993795772", + "code" : "0x", + "nonce" : "143", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xc7b29565a7dd9915e6fd86d026aef2fc454506bae7f90e2f2bec5f25f01b2d95" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_28000_96.json index e29f0b652..077c79779 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-2_9_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-2_9_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-2_9_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 2) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xba1cb4052310b4221c99e4d7dd51e4beb080e0a81b31f72d92ae212155548a35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6204228", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993795772", + "code" : "0x", + "nonce" : "143", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xc7b29565a7dd9915e6fd86d026aef2fc454506bae7f90e2f2bec5f25f01b2d95" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xba1cb4052310b4221c99e4d7dd51e4beb080e0a81b31f72d92ae212155548a35", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x13d6c4c98254e1d964c14cc0818bec2f19a795739c29977e37e3a8016aa99c3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x13d6c4c98254e1d964c14cc0818bec2f19a795739c29977e37e3a8016aa99c3e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaca426c8c59e8eab6c4b79975c54d3fae21ce7da7f8b27c28840f0f8f0ada912", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 2) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5e31ab", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6173099", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a705ce55", - "code" : "", - "nonce" : "0x8e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993826901", + "code" : "0x", + "nonce" : "142", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_128.json index 62a63a1ce..a1cdea1eb 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_0_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_0_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x33d0425450709be4b080e4832002742ffc7b59c43a88bd324c661115457b961f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "836654", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999163346", + "code" : "0x", + "nonce" : "17", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x33d0425450709be4b080e4832002742ffc7b59c43a88bd324c661115457b961f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x33d0425450709be4b080e4832002742ffc7b59c43a88bd324c661115457b961f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x33d0425450709be4b080e4832002742ffc7b59c43a88bd324c661115457b961f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x33d0425450709be4b080e4832002742ffc7b59c43a88bd324c661115457b961f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0c1b0e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "793358", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a757e4f2", - "code" : "", - "nonce" : "0x10", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999206642", + "code" : "0x", + "nonce" : "16", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_64.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_64.json index 645bb432e..e2028806f 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_64.json @@ -2,7 +2,7 @@ "ecmul_1-3_0_21000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_0_21000_64Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x69e44bbebc92a455bf8aa92677202250d90281badc176dbe60c526aaaf1a7e0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "879694", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999120306", + "code" : "0x", + "nonce" : "18", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x69e44bbebc92a455bf8aa92677202250d90281badc176dbe60c526aaaf1a7e0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x69e44bbebc92a455bf8aa92677202250d90281badc176dbe60c526aaaf1a7e0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x69e44bbebc92a455bf8aa92677202250d90281badc176dbe60c526aaaf1a7e0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x69e44bbebc92a455bf8aa92677202250d90281badc176dbe60c526aaaf1a7e0c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0cc42e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "836654", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7573bd2", - "code" : "", - "nonce" : "0x11", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999163346", + "code" : "0x", + "nonce" : "17", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_80.json index fb518107f..4783a4073 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_80.json @@ -2,7 +2,7 @@ "ecmul_1-3_0_21000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_0_21000_80Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9123293bf5afee7ecd0150416b27abd4b5bb8563f71cfcfb88614aa019b29e63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "922862", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999077138", + "code" : "0x", + "nonce" : "19", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9123293bf5afee7ecd0150416b27abd4b5bb8563f71cfcfb88614aa019b29e63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9123293bf5afee7ecd0150416b27abd4b5bb8563f71cfcfb88614aa019b29e63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9123293bf5afee7ecd0150416b27abd4b5bb8563f71cfcfb88614aa019b29e63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9123293bf5afee7ecd0150416b27abd4b5bb8563f71cfcfb88614aa019b29e63", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0d6c4e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "879694", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75693b2", - "code" : "", - "nonce" : "0x12", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999120306", + "code" : "0x", + "nonce" : "18", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_96.json index 7292a02df..bd616a480 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_0_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_0_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x062acb39e9bd7a91a32a15e5a0f867fcebb5f6ab97cbca93794b668814bae227", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "793358", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999206642", + "code" : "0x", + "nonce" : "16", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x062acb39e9bd7a91a32a15e5a0f867fcebb5f6ab97cbca93794b668814bae227", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x062acb39e9bd7a91a32a15e5a0f867fcebb5f6ab97cbca93794b668814bae227", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x062acb39e9bd7a91a32a15e5a0f867fcebb5f6ab97cbca93794b668814bae227", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x062acb39e9bd7a91a32a15e5a0f867fcebb5f6ab97cbca93794b668814bae227", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0b726e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "750190", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7588d92", - "code" : "", - "nonce" : "0x0f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999249810", + "code" : "0x", + "nonce" : "15", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_128.json index 660daff35..dac993b47 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_0_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_0_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x231849265497411fd7670cd00d7d34f41608b34647d6acde30198c7ea469454b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5018792", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994981208", + "code" : "0x", + "nonce" : "114", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x231849265497411fd7670cd00d7d34f41608b34647d6acde30198c7ea469454b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x7a7d1ea09e1624a849f2b71b659cfb43063107a93b0f93ed013c09324a5601fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x7a7d1ea09e1624a849f2b71b659cfb43063107a93b0f93ed013c09324a5601fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7a7d1ea09e1624a849f2b71b659cfb43063107a93b0f93ed013c09324a5601fe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x4bd030", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4968496", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7182fd0", - "code" : "", - "nonce" : "0x71", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995031504", + "code" : "0x", + "nonce" : "113", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_64.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_64.json index efb278ddd..380e3f2bc 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_64.json @@ -2,7 +2,7 @@ "ecmul_1-3_0_28000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_0_28000_64Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x16245eccae5dc6c3351962f925534650e8d6b97d4b6bd3c04ecfd2f2f21511b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5068832", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994931168", + "code" : "0x", + "nonce" : "115", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x16245eccae5dc6c3351962f925534650e8d6b97d4b6bd3c04ecfd2f2f21511b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa471a0f32edbc535502814f5ae7f6b15a6367a7f2a1a0db34d736b41294b85fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa471a0f32edbc535502814f5ae7f6b15a6367a7f2a1a0db34d736b41294b85fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa471a0f32edbc535502814f5ae7f6b15a6367a7f2a1a0db34d736b41294b85fb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x4c94a8", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5018792", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7176b58", - "code" : "", - "nonce" : "0x72", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994981208", + "code" : "0x", + "nonce" : "114", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_80.json index 99e785767..fdb36b11b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_80.json @@ -2,7 +2,7 @@ "ecmul_1-3_0_28000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_0_28000_80Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x732545765a6137cac200c8fb5f379bfc1a0ce74e1710de0c828ada3f05709386", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5119000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994881000", + "code" : "0x", + "nonce" : "116", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x732545765a6137cac200c8fb5f379bfc1a0ce74e1710de0c828ada3f05709386", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8ebbd1f0a456e74ff86c8bc6c85eb685342f7fcda1545fde8eb2a5ff817d8313", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8ebbd1f0a456e74ff86c8bc6c85eb685342f7fcda1545fde8eb2a5ff817d8313", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8ebbd1f0a456e74ff86c8bc6c85eb685342f7fcda1545fde8eb2a5ff817d8313", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x4d5820", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5068832", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a716a7e0", - "code" : "", - "nonce" : "0x73", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994931168", + "code" : "0x", + "nonce" : "115", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_96.json index 76c02739c..09622c6db 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_0_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_0_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_0_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xf57953523be6eb1b1b6484a5e98bc6336b5f6648d4c636cf614324a07065e183", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4968496", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995031504", + "code" : "0x", + "nonce" : "113", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf57953523be6eb1b1b6484a5e98bc6336b5f6648d4c636cf614324a07065e183", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x57c9cd91910f4e17cde4fe1211effd2103e9cc0a6d236ab6f35da8b0d777e6fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x57c9cd91910f4e17cde4fe1211effd2103e9cc0a6d236ab6f35da8b0d777e6fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x57c9cd91910f4e17cde4fe1211effd2103e9cc0a6d236ab6f35da8b0d777e6fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x4b0c38", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4918328", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a718f3c8", - "code" : "", - "nonce" : "0x70", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995081672", + "code" : "0x", + "nonce" : "112", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_21000_128.json index c77acc04f..b234e0bb4 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_1_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_1_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xfa2fa40163ca2abac90b31a9dbfd0465f1753ad82d95532c72335af0287560f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1449198", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998550802", + "code" : "0x", + "nonce" : "31", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfa2fa40163ca2abac90b31a9dbfd0465f1753ad82d95532c72335af0287560f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfa2fa40163ca2abac90b31a9dbfd0465f1753ad82d95532c72335af0287560f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfa2fa40163ca2abac90b31a9dbfd0465f1753ad82d95532c72335af0287560f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfa2fa40163ca2abac90b31a9dbfd0465f1753ad82d95532c72335af0287560f4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x15738e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1405838", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74e8c72", - "code" : "", - "nonce" : "0x1e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998594162", + "code" : "0x", + "nonce" : "30", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_21000_96.json index a973cb606..76ac9a926 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_1_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_1_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x56e75e29ee4d2bc4f7877ea82aa0934b27b56a36490bcc235bf5a1eb2bb9e866", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1405838", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998594162", + "code" : "0x", + "nonce" : "30", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x56e75e29ee4d2bc4f7877ea82aa0934b27b56a36490bcc235bf5a1eb2bb9e866", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x56e75e29ee4d2bc4f7877ea82aa0934b27b56a36490bcc235bf5a1eb2bb9e866", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x56e75e29ee4d2bc4f7877ea82aa0934b27b56a36490bcc235bf5a1eb2bb9e866", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x56e75e29ee4d2bc4f7877ea82aa0934b27b56a36490bcc235bf5a1eb2bb9e866", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x14caae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1362606", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74f3552", - "code" : "", - "nonce" : "0x1d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998637394", + "code" : "0x", + "nonce" : "29", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_28000_128.json index 0f59425d4..8f467f879 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_1_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_1_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x529429c3341d9e6216350a6f02d7d7e1760fd0e83f10faa422c6ec6f249b78b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5614727", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994385273", + "code" : "0x", + "nonce" : "128", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x529429c3341d9e6216350a6f02d7d7e1760fd0e83f10faa422c6ec6f249b78b0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x25b7a967c9e773e4a7588de0da44c6d12318e543e1053059af6f288dbfd9f871", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x25b7a967c9e773e4a7588de0da44c6d12318e543e1053059af6f288dbfd9f871", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x25b7a967c9e773e4a7588de0da44c6d12318e543e1053059af6f288dbfd9f871", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x54e7cf", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5564367", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70f1831", - "code" : "", - "nonce" : "0x7f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994435633", + "code" : "0x", + "nonce" : "127", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_28000_96.json index 6872ae2be..f4d675a30 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_1_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_1_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_1_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xe160fa9f61c248d22489c343f3a35b08d3345d93026ddad99198d0738b1afd84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5564367", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994435633", + "code" : "0x", + "nonce" : "127", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe160fa9f61c248d22489c343f3a35b08d3345d93026ddad99198d0738b1afd84", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5fd360ee797389f94d1f88997688dc2e58c68f52f1e5423ccb6c17cd2d96bb95", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5fd360ee797389f94d1f88997688dc2e58c68f52f1e5423ccb6c17cd2d96bb95", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5fd360ee797389f94d1f88997688dc2e58c68f52f1e5423ccb6c17cd2d96bb95", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x542397", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5514135", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70fdc69", - "code" : "", - "nonce" : "0x7e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994485865", + "code" : "0x", + "nonce" : "126", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_21000_128.json index 8092e953a..ee9067de1 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_2_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_2_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x4a3413b4ecbe80d24ff022cb21f3a0d65ccea32bdd7f14cea4c9b573ec56c65a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1889582", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998110418", + "code" : "0x", + "nonce" : "41", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4a3413b4ecbe80d24ff022cb21f3a0d65ccea32bdd7f14cea4c9b573ec56c65a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4a3413b4ecbe80d24ff022cb21f3a0d65ccea32bdd7f14cea4c9b573ec56c65a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4a3413b4ecbe80d24ff022cb21f3a0d65ccea32bdd7f14cea4c9b573ec56c65a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4a3413b4ecbe80d24ff022cb21f3a0d65ccea32bdd7f14cea4c9b573ec56c65a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1c2bce", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1846222", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a747d432", - "code" : "", - "nonce" : "0x28", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998153778", + "code" : "0x", + "nonce" : "40", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_21000_96.json index 534e388f2..270349f7c 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_2_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_2_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x45c91c4e12645ac5b12afbbc02b53dd3a437785efae975ea69b2dba6b1bbcae4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1846222", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998153778", + "code" : "0x", + "nonce" : "40", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x45c91c4e12645ac5b12afbbc02b53dd3a437785efae975ea69b2dba6b1bbcae4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x45c91c4e12645ac5b12afbbc02b53dd3a437785efae975ea69b2dba6b1bbcae4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x45c91c4e12645ac5b12afbbc02b53dd3a437785efae975ea69b2dba6b1bbcae4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x45c91c4e12645ac5b12afbbc02b53dd3a437785efae975ea69b2dba6b1bbcae4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1b82ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1802990", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7487d12", - "code" : "", - "nonce" : "0x27", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998197010", + "code" : "0x", + "nonce" : "39", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_28000_128.json index 2b82adb3e..f6070259e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_2_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_2_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x793ec9b73137303849afe9942e495a6540c013b0e6ee4ffce8fd3ea7938313c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6010502", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993989498", + "code" : "0x", + "nonce" : "138", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x793ec9b73137303849afe9942e495a6540c013b0e6ee4ffce8fd3ea7938313c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcfe0113def4f21891ae29424f08fceaf24b19162f2ee3388da99cca8072cea44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcfe0113def4f21891ae29424f08fceaf24b19162f2ee3388da99cca8072cea44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcfe0113def4f21891ae29424f08fceaf24b19162f2ee3388da99cca8072cea44", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5af1ce", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5960142", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7090e32", - "code" : "", - "nonce" : "0x89", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994039858", + "code" : "0x", + "nonce" : "137", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_28000_96.json index bc68345bd..287b26650 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_2_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_2_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_2_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xac4b41edd158581bef2a8549641f52d25409f5d6b2b934427a01499cd362afd2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5960142", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994039858", + "code" : "0x", + "nonce" : "137", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xac4b41edd158581bef2a8549641f52d25409f5d6b2b934427a01499cd362afd2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0cca95c4a366b33dc8c4602d2690b66f8dc16359e45c69ee62b6d9b3328344c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0cca95c4a366b33dc8c4602d2690b66f8dc16359e45c69ee62b6d9b3328344c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0cca95c4a366b33dc8c4602d2690b66f8dc16359e45c69ee62b6d9b3328344c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5a2d96", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5909910", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a709d26a", - "code" : "", - "nonce" : "0x88", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994090090", + "code" : "0x", + "nonce" : "136", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_128.json index 814d157ab..70f902001 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_340282366920938463463374607431768211456_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x839453637db777fccf18770bc765cbcef84beeadb951ebe0bf6c1c2ab0ff6f4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2903822", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997096178", + "code" : "0x", + "nonce" : "64", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x839453637db777fccf18770bc765cbcef84beeadb951ebe0bf6c1c2ab0ff6f4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x839453637db777fccf18770bc765cbcef84beeadb951ebe0bf6c1c2ab0ff6f4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x839453637db777fccf18770bc765cbcef84beeadb951ebe0bf6c1c2ab0ff6f4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x839453637db777fccf18770bc765cbcef84beeadb951ebe0bf6c1c2ab0ff6f4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x2ba5ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2860462", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7385a52", - "code" : "", - "nonce" : "0x3f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997139538", + "code" : "0x", + "nonce" : "63", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_80.json index 8b467945d..ae6536520 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_80.json @@ -2,7 +2,7 @@ "ecmul_1-3_340282366920938463463374607431768211456_21000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_80Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x166be6427280e84012785e4af54fc4b8922c35ac4e085d997b77bc3dc16513df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2947054", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997052946", + "code" : "0x", + "nonce" : "65", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x166be6427280e84012785e4af54fc4b8922c35ac4e085d997b77bc3dc16513df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x166be6427280e84012785e4af54fc4b8922c35ac4e085d997b77bc3dc16513df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x166be6427280e84012785e4af54fc4b8922c35ac4e085d997b77bc3dc16513df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x166be6427280e84012785e4af54fc4b8922c35ac4e085d997b77bc3dc16513df", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x2c4f0e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2903822", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a737b0f2", - "code" : "", - "nonce" : "0x40", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997096178", + "code" : "0x", + "nonce" : "64", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_96.json index 6ca329716..b51760865 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_340282366920938463463374607431768211456_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xa0c70e284f001bdeeb9df5204c1784410b53f1a9f0ada4204ea4f907b1454fdc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2860462", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997139538", + "code" : "0x", + "nonce" : "63", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xa0c70e284f001bdeeb9df5204c1784410b53f1a9f0ada4204ea4f907b1454fdc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa0c70e284f001bdeeb9df5204c1784410b53f1a9f0ada4204ea4f907b1454fdc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa0c70e284f001bdeeb9df5204c1784410b53f1a9f0ada4204ea4f907b1454fdc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa0c70e284f001bdeeb9df5204c1784410b53f1a9f0ada4204ea4f907b1454fdc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x2afcce", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2817230", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7390332", - "code" : "", - "nonce" : "0x3e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997182770", + "code" : "0x", + "nonce" : "62", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_128.json index c4c5d222b..6578ac673 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_340282366920938463463374607431768211456_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc721be85a6761242ca90a70c2324a57eba3411febef06c2554212021cacc997f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6899215", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993100785", + "code" : "0x", + "nonce" : "161", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc721be85a6761242ca90a70c2324a57eba3411febef06c2554212021cacc997f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xdc4e979207442bc29fa0889cbb480040579e98ef89c1430c57d157e9a32a9a4e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xdc4e979207442bc29fa0889cbb480040579e98ef89c1430c57d157e9a32a9a4e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xdc4e979207442bc29fa0889cbb480040579e98ef89c1430c57d157e9a32a9a4e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x688157", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6848855", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6fb7ea9", - "code" : "", - "nonce" : "0xa0", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993151145", + "code" : "0x", + "nonce" : "160", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_80.json index 920dec133..ea5a9966e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_80.json @@ -2,7 +2,7 @@ "ecmul_1-3_340282366920938463463374607431768211456_28000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_80Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc7a7f903058936f875f6a84213073becb9c1c9e13cc07e4a0c7db612c4ebe281", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6949447", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993050553", + "code" : "0x", + "nonce" : "162", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc7a7f903058936f875f6a84213073becb9c1c9e13cc07e4a0c7db612c4ebe281", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3225fdf9489d81413994af3338229e97b2543a1146187ce53a79a11a1a5fca8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3225fdf9489d81413994af3338229e97b2543a1146187ce53a79a11a1a5fca8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3225fdf9489d81413994af3338229e97b2543a1146187ce53a79a11a1a5fca8c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x69460f", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6899215", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6fab9f1", - "code" : "", - "nonce" : "0xa1", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993100785", + "code" : "0x", + "nonce" : "161", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_96.json index a401ebfca..756d9c37a 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_340282366920938463463374607431768211456_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_340282366920938463463374607431768211456_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xfd63b47ebc5a0ad535f3dc14bdcdae5257d89f4b0a2d7bd943e701f03bfffcab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6848855", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993151145", + "code" : "0x", + "nonce" : "160", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfd63b47ebc5a0ad535f3dc14bdcdae5257d89f4b0a2d7bd943e701f03bfffcab", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x62007976267c85a3dee527e4ede8226915ef38a9aae91c8dd7848802a2ed5f92", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x62007976267c85a3dee527e4ede8226915ef38a9aae91c8dd7848802a2ed5f92", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x62007976267c85a3dee527e4ede8226915ef38a9aae91c8dd7848802a2ed5f92", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x67bd1f", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6798623", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6fc42e1", - "code" : "", - "nonce" : "0x9f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993201377", + "code" : "0x", + "nonce" : "159", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_21000_128.json index 6c995a121..f38bd2105 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_5616_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_5616_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x5906ee840b62fe7355ef6c866b1f340428bd0895c7871a5a99b9a92b4a02b6c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3444942", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996555058", + "code" : "0x", + "nonce" : "76", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5906ee840b62fe7355ef6c866b1f340428bd0895c7871a5a99b9a92b4a02b6c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5906ee840b62fe7355ef6c866b1f340428bd0895c7871a5a99b9a92b4a02b6c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5906ee840b62fe7355ef6c866b1f340428bd0895c7871a5a99b9a92b4a02b6c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x5906ee840b62fe7355ef6c866b1f340428bd0895c7871a5a99b9a92b4a02b6c2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x33e06e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3399790", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7301f92", - "code" : "", - "nonce" : "0x4b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996600210", + "code" : "0x", + "nonce" : "75", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_21000_96.json index 68a6e3555..d13510275 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_5616_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_5616_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x35cddb1ec4b25be2d6b30fb8d430124c994e6686ff0c4fdedc744ebebb160d4a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3399790", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996600210", + "code" : "0x", + "nonce" : "75", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x35cddb1ec4b25be2d6b30fb8d430124c994e6686ff0c4fdedc744ebebb160d4a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x35cddb1ec4b25be2d6b30fb8d430124c994e6686ff0c4fdedc744ebebb160d4a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x35cddb1ec4b25be2d6b30fb8d430124c994e6686ff0c4fdedc744ebebb160d4a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x35cddb1ec4b25be2d6b30fb8d430124c994e6686ff0c4fdedc744ebebb160d4a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x33308e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3354766", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a730cf72", - "code" : "", - "nonce" : "0x4a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996645234", + "code" : "0x", + "nonce" : "74", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_28000_128.json index 893012f80..02340eb80 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_5616_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_5616_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x02179c442cba8b4250cd9dad7965c03c52b26a46ef7682b1ee53b64e05b589f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7409726", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992590274", + "code" : "0x", + "nonce" : "173", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x02179c442cba8b4250cd9dad7965c03c52b26a46ef7682b1ee53b64e05b589f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x82ad19bbaff113a13db7e5dfe86d02a2df0512d171207597dfe68bfc95cf4cff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x82ad19bbaff113a13db7e5dfe86d02a2df0512d171207597dfe68bfc95cf4cff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x82ad19bbaff113a13db7e5dfe86d02a2df0512d171207597dfe68bfc95cf4cff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x704486", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7357574", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f3bb7a", - "code" : "", - "nonce" : "0xac", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992642426", + "code" : "0x", + "nonce" : "172", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_28000_96.json index caff09542..43e94f0ef 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5616_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_5616_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_5616_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9bb62812e33aca34e0ba2b4121e00fdefc2cff51a2035b7a53d2366d38f375db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7357574", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992642426", + "code" : "0x", + "nonce" : "172", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9bb62812e33aca34e0ba2b4121e00fdefc2cff51a2035b7a53d2366d38f375db", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa4bec5cbdb0623bc0d6a14eb97e871235274dde18ba949a3d47b6e917cbb4b66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa4bec5cbdb0623bc0d6a14eb97e871235274dde18ba949a3d47b6e917cbb4b66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xa4bec5cbdb0623bc0d6a14eb97e871235274dde18ba949a3d47b6e917cbb4b66", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x6f794e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7305550", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f486b2", - "code" : "", - "nonce" : "0xab", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992694450", + "code" : "0x", + "nonce" : "171", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_21000_128.json index 3dd932435..fca8b3d23 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_5617_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_5617_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xce541c275547a4f42bc7871f330584ce3be5e8948a86316ca61fd0420f4c6ecc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3903758", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996096242", + "code" : "0x", + "nonce" : "86", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xce541c275547a4f42bc7871f330584ce3be5e8948a86316ca61fd0420f4c6ecc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xce541c275547a4f42bc7871f330584ce3be5e8948a86316ca61fd0420f4c6ecc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xce541c275547a4f42bc7871f330584ce3be5e8948a86316ca61fd0420f4c6ecc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xce541c275547a4f42bc7871f330584ce3be5e8948a86316ca61fd0420f4c6ecc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x3ae06e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3858542", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7291f92", - "code" : "", - "nonce" : "0x55", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996141458", + "code" : "0x", + "nonce" : "85", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_21000_96.json index d58284a23..d2a7b238e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_5617_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_5617_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x4ce54adecd3b94c2f33df3c9913fa9a4fa791a0e276dabfe68e9335dca2a7531", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3858542", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996141458", + "code" : "0x", + "nonce" : "85", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4ce54adecd3b94c2f33df3c9913fa9a4fa791a0e276dabfe68e9335dca2a7531", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4ce54adecd3b94c2f33df3c9913fa9a4fa791a0e276dabfe68e9335dca2a7531", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4ce54adecd3b94c2f33df3c9913fa9a4fa791a0e276dabfe68e9335dca2a7531", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4ce54adecd3b94c2f33df3c9913fa9a4fa791a0e276dabfe68e9335dca2a7531", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x3a304e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3813454", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a729cfb2", - "code" : "", - "nonce" : "0x54", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996186546", + "code" : "0x", + "nonce" : "84", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_28000_128.json index b40e99819..a2c91f49f 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_5617_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_5617_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9fbc671e30785285cc645cc9ce1acd58cdf14e5a1417cfd7f5f78633e8231b79", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7823933", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992176067", + "code" : "0x", + "nonce" : "183", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9fbc671e30785285cc645cc9ce1acd58cdf14e5a1417cfd7f5f78633e8231b79", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x69059684797cb84e59cbbb65a689b13f4eaca74c7b25e076776bb3e169064d24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x69059684797cb84e59cbbb65a689b13f4eaca74c7b25e076776bb3e169064d24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x69059684797cb84e59cbbb65a689b13f4eaca74c7b25e076776bb3e169064d24", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x769645", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7771717", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6ed69bb", - "code" : "", - "nonce" : "0xb6", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992228283", + "code" : "0x", + "nonce" : "182", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_28000_96.json index 5ca126e6d..3b7b3a069 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_5617_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_5617_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_5617_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x081e87e0366f5560f5f17d42fcd81e9332effca344a51dbca3872d01f5636a19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7771717", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992228283", + "code" : "0x", + "nonce" : "182", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x081e87e0366f5560f5f17d42fcd81e9332effca344a51dbca3872d01f5636a19", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9e5cda270da96c1a63a75cc10ee14d34c29864d604dc24b6f3162ab4ca0fc4cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9e5cda270da96c1a63a75cc10ee14d34c29864d604dc24b6f3162ab4ca0fc4cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9e5cda270da96c1a63a75cc10ee14d34c29864d604dc24b6f3162ab4ca0fc4cc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x75cacd", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7719629", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6ee3533", - "code" : "", - "nonce" : "0xb5", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992280371", + "code" : "0x", + "nonce" : "181", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_21000_128.json index 19623db2a..4a419d9c4 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_9935_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_9935_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x34c2e5c483777061c1d0caf04cf181237b1ce58cb1ddce5284cd26ae83136659", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4363726", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995636274", + "code" : "0x", + "nonce" : "96", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x34c2e5c483777061c1d0caf04cf181237b1ce58cb1ddce5284cd26ae83136659", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x34c2e5c483777061c1d0caf04cf181237b1ce58cb1ddce5284cd26ae83136659", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x34c2e5c483777061c1d0caf04cf181237b1ce58cb1ddce5284cd26ae83136659", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x34c2e5c483777061c1d0caf04cf181237b1ce58cb1ddce5284cd26ae83136659", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x41e4ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4318382", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7221b52", - "code" : "", - "nonce" : "0x5f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995681618", + "code" : "0x", + "nonce" : "95", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_21000_96.json index 1e0067e9a..0a313bb36 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_9935_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_9935_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x65045f49b5935acc31ad7f739bd7a9072f47f15f17bb93bcb20d801e1f7b74f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4318382", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995681618", + "code" : "0x", + "nonce" : "95", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x65045f49b5935acc31ad7f739bd7a9072f47f15f17bb93bcb20d801e1f7b74f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x65045f49b5935acc31ad7f739bd7a9072f47f15f17bb93bcb20d801e1f7b74f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x65045f49b5935acc31ad7f739bd7a9072f47f15f17bb93bcb20d801e1f7b74f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x65045f49b5935acc31ad7f739bd7a9072f47f15f17bb93bcb20d801e1f7b74f0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x41340e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4273166", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a722cbf2", - "code" : "", - "nonce" : "0x5e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995726834", + "code" : "0x", + "nonce" : "94", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_28000_128.json index 0154d505b..87e5e0cc5 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_9935_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_9935_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xb65f1eec4f51e2f8efe8720ca80f394a3fdd9cadf27561e790fd5ba2d652d3ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "8239292", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991760708", + "code" : "0x", + "nonce" : "193", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xb65f1eec4f51e2f8efe8720ca80f394a3fdd9cadf27561e790fd5ba2d652d3ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4ae903e879ddba13a502f9fcffb2a4e55c5ec2b285d59ce0e6338fbce76524a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4ae903e879ddba13a502f9fcffb2a4e55c5ec2b285d59ce0e6338fbce76524a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4ae903e879ddba13a502f9fcffb2a4e55c5ec2b285d59ce0e6338fbce76524a1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x7cec44", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "8186948", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6e713bc", - "code" : "", - "nonce" : "0xc0", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991813052", + "code" : "0x", + "nonce" : "192", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_28000_96.json index 60f3c4441..ddcdf196d 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9935_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_9935_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_9935_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x39b9b6082c88674f29b3bb5a24266a6c4acdc11bc2d37b98a371075fe282affe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "8186948", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991813052", + "code" : "0x", + "nonce" : "192", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x39b9b6082c88674f29b3bb5a24266a6c4acdc11bc2d37b98a371075fe282affe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x19bc205c9ea268e61468a9094f032bb7a2c3780bbc8fec5ee4cbb3aaf3176d6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x19bc205c9ea268e61468a9094f032bb7a2c3780bbc8fec5ee4cbb3aaf3176d6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x19bc205c9ea268e61468a9094f032bb7a2c3780bbc8fec5ee4cbb3aaf3176d6f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x7c204c", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "8134732", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6e7dfb4", - "code" : "", - "nonce" : "0xbf", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991865268", + "code" : "0x", + "nonce" : "191", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_21000_128.json index a253647c6..51334dee5 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_21000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_9_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_9_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xef7b42723cebaf950d85a83c365d8674fa96608178c46e82e88f3ca08799c662", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2329966", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997670034", + "code" : "0x", + "nonce" : "51", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xef7b42723cebaf950d85a83c365d8674fa96608178c46e82e88f3ca08799c662", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xef7b42723cebaf950d85a83c365d8674fa96608178c46e82e88f3ca08799c662", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xef7b42723cebaf950d85a83c365d8674fa96608178c46e82e88f3ca08799c662", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xef7b42723cebaf950d85a83c365d8674fa96608178c46e82e88f3ca08799c662", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x22e40e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2286606", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7411bf2", - "code" : "", - "nonce" : "0x32", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997713394", + "code" : "0x", + "nonce" : "50", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_21000_96.json index 93fc9e5db..343904b04 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_21000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_9_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_9_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc5cb63f8a50253fc815b780f4754c90a77601bb4f7acef8e26f8cc907d0329b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2286606", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997713394", + "code" : "0x", + "nonce" : "50", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc5cb63f8a50253fc815b780f4754c90a77601bb4f7acef8e26f8cc907d0329b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc5cb63f8a50253fc815b780f4754c90a77601bb4f7acef8e26f8cc907d0329b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc5cb63f8a50253fc815b780f4754c90a77601bb4f7acef8e26f8cc907d0329b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc5cb63f8a50253fc815b780f4754c90a77601bb4f7acef8e26f8cc907d0329b5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x223b2e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2243374", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a741c4d2", - "code" : "", - "nonce" : "0x31", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997756626", + "code" : "0x", + "nonce" : "49", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_28000_128.json index 16d71d8b8..95641fd3d 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_28000_128.json @@ -2,7 +2,7 @@ "ecmul_1-3_9_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_9_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xf79dfc35e1f658cb6afeb6b27bd1f2347864663b3791a5c8a59cf8615321cbfd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6406277", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993593723", + "code" : "0x", + "nonce" : "148", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf79dfc35e1f658cb6afeb6b27bd1f2347864663b3791a5c8a59cf8615321cbfd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xb27b376eb7343d793706ce568d484353698f89d92b0eefc5507a174974d0c285", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xb27b376eb7343d793706ce568d484353698f89d92b0eefc5507a174974d0c285", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb27b376eb7343d793706ce568d484353698f89d92b0eefc5507a174974d0c285", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x60fbcd", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6355917", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7030433", - "code" : "", - "nonce" : "0x93", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993644083", + "code" : "0x", + "nonce" : "147", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_28000_96.json index 264680781..b36c2d6ba 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_1-3_9_28000_96.json @@ -2,7 +2,7 @@ "ecmul_1-3_9_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_1-3_9_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (1, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x7170b025eab8313db2cdcf6165ed272ee38fbbf9bd8cd65e1616015f23fc3631", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6355917", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993644083", + "code" : "0x", + "nonce" : "147", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7170b025eab8313db2cdcf6165ed272ee38fbbf9bd8cd65e1616015f23fc3631", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc91ac9be9bcae8096eb62c12149811bbc37e7faef9b6f7bb7079fd8435ae7a8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc91ac9be9bcae8096eb62c12149811bbc37e7faef9b6f7bb7079fd8435ae7a8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc91ac9be9bcae8096eb62c12149811bbc37e7faef9b6f7bb7079fd8435ae7a8e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (1, 3) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x603795", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6305685", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a703c86b", - "code" : "", - "nonce" : "0x92", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993694315", + "code" : "0x", + "nonce" : "146", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_128.json index a84d04607..00f2389a4 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_0_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_0_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xee84dd6bef11f6049cc7003baf52da0d5de456163d957a542b39221b92551ed6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "656174", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999343826", + "code" : "0x", + "nonce" : "13", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xee84dd6bef11f6049cc7003baf52da0d5de456163d957a542b39221b92551ed6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xee84dd6bef11f6049cc7003baf52da0d5de456163d957a542b39221b92551ed6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xee84dd6bef11f6049cc7003baf52da0d5de456163d957a542b39221b92551ed6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xee84dd6bef11f6049cc7003baf52da0d5de456163d957a542b39221b92551ed6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x094ace", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "608974", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75ab532", - "code" : "", - "nonce" : "0x0c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999391026", + "code" : "0x", + "nonce" : "12", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_64.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_64.json index 39650a3ac..d0154a0a8 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_64.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_0_21000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_0_21000_64Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x3a63a55a4286819a3ed29f769958fd291248b8f232fe2107749cfa509541e5ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "703118", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999296882", + "code" : "0x", + "nonce" : "14", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x3a63a55a4286819a3ed29f769958fd291248b8f232fe2107749cfa509541e5ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3a63a55a4286819a3ed29f769958fd291248b8f232fe2107749cfa509541e5ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3a63a55a4286819a3ed29f769958fd291248b8f232fe2107749cfa509541e5ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3a63a55a4286819a3ed29f769958fd291248b8f232fe2107749cfa509541e5ea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0a032e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "656174", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a759fcd2", - "code" : "", - "nonce" : "0x0d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999343826", + "code" : "0x", + "nonce" : "13", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_80.json index 9ab9f9d38..4292507b3 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_80.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_0_21000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_0_21000_80Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xedf0b32999d81d2d61bdccc28eb4a5a7c210b3dc307f72767202e735083d3717", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "750190", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999249810", + "code" : "0x", + "nonce" : "15", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xedf0b32999d81d2d61bdccc28eb4a5a7c210b3dc307f72767202e735083d3717", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xedf0b32999d81d2d61bdccc28eb4a5a7c210b3dc307f72767202e735083d3717", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xedf0b32999d81d2d61bdccc28eb4a5a7c210b3dc307f72767202e735083d3717", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xedf0b32999d81d2d61bdccc28eb4a5a7c210b3dc307f72767202e735083d3717", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0aba8e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "703118", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7594572", - "code" : "", - "nonce" : "0x0e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999296882", + "code" : "0x", + "nonce" : "14", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_96.json index 190f452fe..1b2adae88 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_21000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_0_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_0_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x36f8585ea5a0c93392fbf6cfd9604df4aad5e484c1226ea587fc3f9648a45810", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "608974", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999391026", + "code" : "0x", + "nonce" : "12", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x36f8585ea5a0c93392fbf6cfd9604df4aad5e484c1226ea587fc3f9648a45810", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x36f8585ea5a0c93392fbf6cfd9604df4aad5e484c1226ea587fc3f9648a45810", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x36f8585ea5a0c93392fbf6cfd9604df4aad5e484c1226ea587fc3f9648a45810", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x36f8585ea5a0c93392fbf6cfd9604df4aad5e484c1226ea587fc3f9648a45810", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0892ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "561902", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75b6d12", - "code" : "", - "nonce" : "0x0b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999438098", + "code" : "0x", + "nonce" : "11", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_128.json index 165230dde..9aa717b06 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_0_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_0_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xce4ae53e2ea75eac59aa783c931d9bdc33376ce28e8e8e182d1179f10c8b68d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4848521", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995151479", + "code" : "0x", + "nonce" : "110", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xce4ae53e2ea75eac59aa783c931d9bdc33376ce28e8e8e182d1179f10c8b68d2", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0df194e6a98b910cf5e13a71c91d9915f944a6a1bc23f5bf67c8a9bd4e224b55", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0df194e6a98b910cf5e13a71c91d9915f944a6a1bc23f5bf67c8a9bd4e224b55", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc735da47efc461eb5f1ed3846af9eb92f5da23596033b8ca43a8936453cafe65", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x49726d", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4813421", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71a8d93", - "code" : "", - "nonce" : "0x6d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995186579", + "code" : "0x", + "nonce" : "109", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_64.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_64.json index 5a3078a4e..6eea24fa4 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_64.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_64.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_0_28000_64" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_0_28000_64Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x764658aa07cd60dcd5cfe68cb9e4464f330c2ab90996c33ff665bd9f7f6edbdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4883359", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995116641", + "code" : "0x", + "nonce" : "111", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x764658aa07cd60dcd5cfe68cb9e4464f330c2ab90996c33ff665bd9f7f6edbdf", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x44368dd498cd6bd521a42517bfc8680db950df409d73f61486f7a0a1c5ed3496", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x44368dd498cd6bd521a42517bfc8680db950df409d73f61486f7a0a1c5ed3496", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2fd1b6d3730c2d12b6ef1e26774f6796b9c6f53d8d54c3769b0c97c6a8a24116", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 64 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x49fb89", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4848521", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71a0477", - "code" : "", - "nonce" : "0x6e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995151479", + "code" : "0x", + "nonce" : "110", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_80.json index d1997e89a..c71c4d491 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_80.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_0_28000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_0_28000_80Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x337abb3dae8f4305dff0ddff7c8cf089c0b6c1058b2cb1078e70e41385e6835c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4918328", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995081672", + "code" : "0x", + "nonce" : "112", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x337abb3dae8f4305dff0ddff7c8cf089c0b6c1058b2cb1078e70e41385e6835c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd9538c4e94c7ccff4619a55c9b21def7fd7b07e978ffd8b897e5ee89860368f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd9538c4e94c7ccff4619a55c9b21def7fd7b07e978ffd8b897e5ee89860368f7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf72a3deb0b54c3894bcfb8b8b34bbd5e3f3b4791e18c01dfcba164902eac3d6b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x4a839f", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4883359", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7197c61", - "code" : "", - "nonce" : "0x6f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995116641", + "code" : "0x", + "nonce" : "111", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_96.json index 7272ec6f4..f691de1ba 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_0_28000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_0_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_0_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x29183ab32cc97bcc06d97b0ddc20e162c08f22d504d5295a50c215c84d9e7da5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4813421", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995186579", + "code" : "0x", + "nonce" : "109", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x29183ab32cc97bcc06d97b0ddc20e162c08f22d504d5295a50c215c84d9e7da5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc9f27960a9269cc4cd52e606964cc6e8adfd1692a7571ed309cfc15ac3626c80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc9f27960a9269cc4cd52e606964cc6e8adfd1692a7571ed309cfc15ac3626c80", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc5c66391c97954b8325a8c1b56ebb7bdbae49fbfda94b96078de0299ac60f75f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 0 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x48e9d4", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4778452", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71b162c", - "code" : "", - "nonce" : "0x6c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995221548", + "code" : "0x", + "nonce" : "108", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_21000_128.json index e91e47bd6..9d346639d 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_21000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_1456_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_1456_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc04252930038da87681608cdc73c280fbe0d446b3bd6a55373b9bd4bc22a8014", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2770094", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997229906", + "code" : "0x", + "nonce" : "61", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc04252930038da87681608cdc73c280fbe0d446b3bd6a55373b9bd4bc22a8014", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc04252930038da87681608cdc73c280fbe0d446b3bd6a55373b9bd4bc22a8014", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc04252930038da87681608cdc73c280fbe0d446b3bd6a55373b9bd4bc22a8014", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc04252930038da87681608cdc73c280fbe0d446b3bd6a55373b9bd4bc22a8014", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x298c0e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2722830", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a73a73f2", - "code" : "", - "nonce" : "0x3c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997277170", + "code" : "0x", + "nonce" : "60", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_21000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_21000_80.json index 647a87874..d87482c37 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_21000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_21000_80.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_1456_21000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_1456_21000_80Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x67e9d3abbb42c878cb328659e27b7c428785376f0c0059a10ece746d8b558872", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2817230", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997182770", + "code" : "0x", + "nonce" : "62", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x67e9d3abbb42c878cb328659e27b7c428785376f0c0059a10ece746d8b558872", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x67e9d3abbb42c878cb328659e27b7c428785376f0c0059a10ece746d8b558872", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x67e9d3abbb42c878cb328659e27b7c428785376f0c0059a10ece746d8b558872", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x67e9d3abbb42c878cb328659e27b7c428785376f0c0059a10ece746d8b558872", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x2a44ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2770094", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a739bb52", - "code" : "", - "nonce" : "0x3d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997229906", + "code" : "0x", + "nonce" : "61", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_21000_96.json index 06f6dbdd8..14746497a 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_21000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_1456_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_1456_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x0c68a20b1d03f4097579d48085e13966a1b94ce38ce6b9f503e4638d04bbc62a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2722830", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997277170", + "code" : "0x", + "nonce" : "60", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x0c68a20b1d03f4097579d48085e13966a1b94ce38ce6b9f503e4638d04bbc62a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0c68a20b1d03f4097579d48085e13966a1b94ce38ce6b9f503e4638d04bbc62a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0c68a20b1d03f4097579d48085e13966a1b94ce38ce6b9f503e4638d04bbc62a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0c68a20b1d03f4097579d48085e13966a1b94ce38ce6b9f503e4638d04bbc62a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x28d3ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2675694", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a73b2c12", - "code" : "", - "nonce" : "0x3b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997324306", + "code" : "0x", + "nonce" : "59", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_28000_128.json index e3b6ce30e..caeb2b3a1 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_28000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_1456_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_1456_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc2caf9f0810a738b32a99d1ec86fb9ac8f5261be7c98104d1a355eec9592c3dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6763590", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993236410", + "code" : "0x", + "nonce" : "158", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc2caf9f0810a738b32a99d1ec86fb9ac8f5261be7c98104d1a355eec9592c3dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x340d6d037ff8975b4ef45288e4a7d6abd7e40adb30d197ae082ba4d57f69836c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x340d6d037ff8975b4ef45288e4a7d6abd7e40adb30d197ae082ba4d57f69836c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x052ab2b94b12896fc7c3ff019e64beef8b02f781ba81b5d8ba6997e0f60be966", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x66aaea", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6728426", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6fd5516", - "code" : "", - "nonce" : "0x9d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993271574", + "code" : "0x", + "nonce" : "157", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_28000_80.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_28000_80.json index 9216ce826..3a0b10691 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_28000_80.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_28000_80.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_1456_28000_80" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_1456_28000_80Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc30344e4124e6c43750d53322e69f67e54063c38d8b4c261bb7ea26eb04773fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6798623", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993201377", + "code" : "0x", + "nonce" : "159", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc30344e4124e6c43750d53322e69f67e54063c38d8b4c261bb7ea26eb04773fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd32c37b8c2b494ec8a87c8bd3e514a05bd01ce6e2dc59c0a6d3dbc40b614df21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd32c37b8c2b494ec8a87c8bd3e514a05bd01ce6e2dc59c0a6d3dbc40b614df21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xced8e4477d1b198a0cd8d2b9f1906a48749520ad7670479bcda2a39fe33e34e0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 80 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x673446", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6763590", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6fccbba", - "code" : "", - "nonce" : "0x9e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993236410", + "code" : "0x", + "nonce" : "158", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_28000_96.json index 2f676341d..46f22c436 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1456_28000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_1456_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_1456_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x7183db345cd6dd17a007442e267af5fbba949bdf2ba167894386be0f0cb43cc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6728426", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993271574", + "code" : "0x", + "nonce" : "157", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xa97df6032909972db52b8144798569bb6169ec8b3e065841da96b3d866aa131e" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7183db345cd6dd17a007442e267af5fbba949bdf2ba167894386be0f0cb43cc3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2c30c2246d0c7c51912e6d2a4b86649d764ca95eaa3974b22a2560d8b51a2887", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2c30c2246d0c7c51912e6d2a4b86649d764ca95eaa3974b22a2560d8b51a2887", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x27784646d1d9cd479e44137627dededa1cb298c4cd07533d7b931d9b39471fa8", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 340282366920938463463374607431768211456 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x662211", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6693393", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6fdddef", - "code" : "", - "nonce" : "0x9c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993306607", + "code" : "0x", + "nonce" : "156", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x0467d6413c98fb304cd61014865afdb7b3b81fa53f7ef4046e6a833162c5bb5c" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_21000_128.json index 688b7e22c..8100fbdbb 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_21000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_1_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_1_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xc3e92171151258ea946866cba2b20805940c639e2fedeb50354c642fae15cd05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1362606", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998637394", + "code" : "0x", + "nonce" : "29", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc3e92171151258ea946866cba2b20805940c639e2fedeb50354c642fae15cd05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc3e92171151258ea946866cba2b20805940c639e2fedeb50354c642fae15cd05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc3e92171151258ea946866cba2b20805940c639e2fedeb50354c642fae15cd05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc3e92171151258ea946866cba2b20805940c639e2fedeb50354c642fae15cd05", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x14120e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1315342", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74fedf2", - "code" : "", - "nonce" : "0x1c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998684658", + "code" : "0x", + "nonce" : "28", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_21000_96.json index a38f80603..0df56f174 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_21000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_1_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_1_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x9fa5782767110156b2540fde3aef537b0266ce6b12266ef0e7af0cd428d3e7d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1315342", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998684658", + "code" : "0x", + "nonce" : "28", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9fa5782767110156b2540fde3aef537b0266ce6b12266ef0e7af0cd428d3e7d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9fa5782767110156b2540fde3aef537b0266ce6b12266ef0e7af0cd428d3e7d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9fa5782767110156b2540fde3aef537b0266ce6b12266ef0e7af0cd428d3e7d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9fa5782767110156b2540fde3aef537b0266ce6b12266ef0e7af0cd428d3e7d9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1359ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1268206", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a750a612", - "code" : "", - "nonce" : "0x1b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998731794", + "code" : "0x", + "nonce" : "27", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_28000_128.json index 995e40cc1..b82997098 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_28000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_1_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_1_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x04dbf66c11a470908c7697664f58da5d3dbe11facbc1b650c1cd752c00a11763", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5514135", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994485865", + "code" : "0x", + "nonce" : "126", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x04dbf66c11a470908c7697664f58da5d3dbe11facbc1b650c1cd752c00a11763", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x993f4924d3f05370d417554626c2e2ad23ecce1cad2fe73cab088b19fe270b10", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x993f4924d3f05370d417554626c2e2ad23ecce1cad2fe73cab088b19fe270b10", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x476f7e0d28bcbb9d33358f722ea827e9aacab5c4bcbc0c456decc0c3d869e32b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x539a3b", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5478971", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71065c5", - "code" : "", - "nonce" : "0x7d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994521029", + "code" : "0x", + "nonce" : "125", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_28000_96.json index 36d0398e6..e4a58f7d1 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_1_28000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_1_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_1_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x8fd9c296c394459357e2ce18eaeb420aa6ee63883e4248b6041e0457979cee49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5478971", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994521029", + "code" : "0x", + "nonce" : "125", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x556a3c03566b04196c534f5612f50167917d72e6ab9b687e10e72dbe0e0f9279" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8fd9c296c394459357e2ce18eaeb420aa6ee63883e4248b6041e0457979cee49", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4d2d1e60d72ecef08277f7565e5347d06a2ff409bab86c3ca8f017396ba10974", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4d2d1e60d72ecef08277f7565e5347d06a2ff409bab86c3ca8f017396ba10974", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x634f25dde1e94f7830d2efffd99aa9844ed6eabe5feeecd39ab7e148c2cf5ab0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 1 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x531162", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5443938", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a710ee9e", - "code" : "", - "nonce" : "0x7c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994556062", + "code" : "0x", + "nonce" : "124", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_21000_128.json index 4bdfa02f2..b464991ab 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_21000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_2_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_2_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x70f8c3b4d3d08fc885aef31047b358b36eb659c0f051b4e88c3a1deeafa5f0da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1802990", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998197010", + "code" : "0x", + "nonce" : "39", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x70f8c3b4d3d08fc885aef31047b358b36eb659c0f051b4e88c3a1deeafa5f0da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x70f8c3b4d3d08fc885aef31047b358b36eb659c0f051b4e88c3a1deeafa5f0da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x70f8c3b4d3d08fc885aef31047b358b36eb659c0f051b4e88c3a1deeafa5f0da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x70f8c3b4d3d08fc885aef31047b358b36eb659c0f051b4e88c3a1deeafa5f0da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1aca4e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1755726", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74935b2", - "code" : "", - "nonce" : "0x26", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998244274", + "code" : "0x", + "nonce" : "38", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_21000_96.json index 2ee590e06..19d890706 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_21000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_2_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_2_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x3e8a382ee8502032f0e162b97bf13557f6d9e18a7cefb497637bfd545c9fa384", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1755726", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998244274", + "code" : "0x", + "nonce" : "38", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x3e8a382ee8502032f0e162b97bf13557f6d9e18a7cefb497637bfd545c9fa384", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3e8a382ee8502032f0e162b97bf13557f6d9e18a7cefb497637bfd545c9fa384", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3e8a382ee8502032f0e162b97bf13557f6d9e18a7cefb497637bfd545c9fa384", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3e8a382ee8502032f0e162b97bf13557f6d9e18a7cefb497637bfd545c9fa384", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1a122e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1708590", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a749edd2", - "code" : "", - "nonce" : "0x25", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998291410", + "code" : "0x", + "nonce" : "37", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_28000_128.json index 485fd8f52..2a92303b4 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_28000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_2_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_2_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xf386ef5b2c166eb24fe7a372e3a9349aa60300984b4266509393d392d086d6ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5909910", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994090090", + "code" : "0x", + "nonce" : "136", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf386ef5b2c166eb24fe7a372e3a9349aa60300984b4266509393d392d086d6ae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x77e27ff76005fc22f340b2c510381483f4becc036a5fe0fb8b720b56e65f1a30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x77e27ff76005fc22f340b2c510381483f4becc036a5fe0fb8b720b56e65f1a30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x11377484df2e6d0a4ba4300d5f987c0209d38d5f8530cac50348ee06f0f3a3af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x59a43a", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5874746", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70a5bc6", - "code" : "", - "nonce" : "0x87", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994125254", + "code" : "0x", + "nonce" : "135", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_28000_96.json index 23551d1a4..59c5c1400 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_2_28000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_2_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_2_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xd03ebd49bfc309f55d69243e4c7089decda0ee3ee92f3e26c2e49b51aa4f03b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5874746", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994125254", + "code" : "0x", + "nonce" : "135", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x94b60ed39c6fe45858b5931190d93861a2d2538991194cdf9a39b5e83dec0827" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd03ebd49bfc309f55d69243e4c7089decda0ee3ee92f3e26c2e49b51aa4f03b6", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf24abc32a39fe114a9dc2164851d073d56f565c6beb2f767507df17879120baa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf24abc32a39fe114a9dc2164851d073d56f565c6beb2f767507df17879120baa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2d19c6ba5929cd7c1371f97c8e487dc5aed744507a7f4d77dda492227c0731dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 2 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x591b61", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5839713", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70ae49f", - "code" : "", - "nonce" : "0x86", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994160287", + "code" : "0x", + "nonce" : "134", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x8a5045bc7a493061be89fdbc32ea8ae69e8d8b55ebe445fa41fa534b1543ab50" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_21000_128.json index 1f3a2a461..d034d0bf0 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_21000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_5616_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_5616_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xf090706a8973ede411159f91278d73c3093807cb8e26cea68e3691761bff7a02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3354766", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996645234", + "code" : "0x", + "nonce" : "74", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf090706a8973ede411159f91278d73c3093807cb8e26cea68e3691761bff7a02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf090706a8973ede411159f91278d73c3093807cb8e26cea68e3691761bff7a02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf090706a8973ede411159f91278d73c3093807cb8e26cea68e3691761bff7a02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf090706a8973ede411159f91278d73c3093807cb8e26cea68e3691761bff7a02", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x3270ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3305710", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7318f12", - "code" : "", - "nonce" : "0x49", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996694290", + "code" : "0x", + "nonce" : "73", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_21000_96.json index fa38c915b..d6d7c2fcc 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_21000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_5616_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_5616_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x2516fc7e83f758fbcee90984a400ade212f343abd87af8ceedb48ad58f3b9eff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3305710", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996694290", + "code" : "0x", + "nonce" : "73", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2516fc7e83f758fbcee90984a400ade212f343abd87af8ceedb48ad58f3b9eff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x2516fc7e83f758fbcee90984a400ade212f343abd87af8ceedb48ad58f3b9eff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x2516fc7e83f758fbcee90984a400ade212f343abd87af8ceedb48ad58f3b9eff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2516fc7e83f758fbcee90984a400ade212f343abd87af8ceedb48ad58f3b9eff", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x31b1ce", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3256782", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7324e32", - "code" : "", - "nonce" : "0x48", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996743218", + "code" : "0x", + "nonce" : "72", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_28000_128.json index 931265a03..c4ba97718 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_28000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_5616_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_5616_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xd22567e88022078bf47bf4a4204816cb13b52e77a7c5f4e28a54b3a7ce859fea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7305550", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992694450", + "code" : "0x", + "nonce" : "171", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd22567e88022078bf47bf4a4204816cb13b52e77a7c5f4e28a54b3a7ce859fea", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf3b909651d5323ab128c9582fd7001afd3618b6f22c7712f1e6c364f3e2e4218", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf3b909651d5323ab128c9582fd7001afd3618b6f22c7712f1e6c364f3e2e4218", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xb88111373c785a6cd131cd301bbbfc217a4a9ebf61b164fbb49c16b30860713b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x6ee8f2", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7268594", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f5170e", - "code" : "", - "nonce" : "0xaa", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992731406", + "code" : "0x", + "nonce" : "170", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_28000_96.json index a79674d72..bef182bc9 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5616_28000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_5616_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_5616_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xd193a1529071956294beb7bda2a29779394446c51bd29e7a9bf55cb8c357b01e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7268594", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992731406", + "code" : "0x", + "nonce" : "170", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x289df36ee06bbcd57a9ce2a88d2bcda09715d42f96f7f23c48cdd54e2002f059" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd193a1529071956294beb7bda2a29779394446c51bd29e7a9bf55cb8c357b01e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x5dd9e9f8a79e80116f23efffb60e8a8e616b0d0bf40c9c20d5fec807524a6910", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5dd9e9f8a79e80116f23efffb60e8a8e616b0d0bf40c9c20d5fec807524a6910", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe6fb28b23bb1aeec5d116ace79461ac84d257321e967aed8557dbba8378b8999", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495616 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x6e5919", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7231769", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6f5a6e7", - "code" : "", - "nonce" : "0xa9", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992768231", + "code" : "0x", + "nonce" : "169", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xac1de87792e425a22b81bdf624dc1b24fee26f16e9a879172aebc261cc51a2fe" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_21000_128.json index 5ff678ac6..b8b3b26cf 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_21000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_5617_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_5617_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x77298f5c9ef604ed95b02800679313b5eb71e79768c19151cd2e863b59c4ddae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3813454", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996186546", + "code" : "0x", + "nonce" : "84", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x77298f5c9ef604ed95b02800679313b5eb71e79768c19151cd2e863b59c4ddae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x77298f5c9ef604ed95b02800679313b5eb71e79768c19151cd2e863b59c4ddae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x77298f5c9ef604ed95b02800679313b5eb71e79768c19151cd2e863b59c4ddae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x77298f5c9ef604ed95b02800679313b5eb71e79768c19151cd2e863b59c4ddae", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x39706e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3764334", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a72a8f92", - "code" : "", - "nonce" : "0x53", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996235666", + "code" : "0x", + "nonce" : "83", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_21000_96.json index 71b4a96b3..a82b34b09 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_21000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_5617_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_5617_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xd85ea4c964547e07e784e5dd0e805bf1e0e39b5f0c0e758d028563ffee8e9813", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3764334", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996235666", + "code" : "0x", + "nonce" : "83", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd85ea4c964547e07e784e5dd0e805bf1e0e39b5f0c0e758d028563ffee8e9813", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xd85ea4c964547e07e784e5dd0e805bf1e0e39b5f0c0e758d028563ffee8e9813", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xd85ea4c964547e07e784e5dd0e805bf1e0e39b5f0c0e758d028563ffee8e9813", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd85ea4c964547e07e784e5dd0e805bf1e0e39b5f0c0e758d028563ffee8e9813", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x38b10e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3715342", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a72b4ef2", - "code" : "", - "nonce" : "0x52", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996284658", + "code" : "0x", + "nonce" : "82", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_28000_128.json index 91f3ac509..be727d274 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_28000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_5617_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_5617_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x14815534bdbf1ddc75d223311d81dae7befb8db314e2064aa31bab95fcfe5465", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7719629", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992280371", + "code" : "0x", + "nonce" : "181", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x14815534bdbf1ddc75d223311d81dae7befb8db314e2064aa31bab95fcfe5465", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xefd407344d021addcdac7b692253d0f28d8a83c102a6abf8c1b68ea4f4f98400", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xefd407344d021addcdac7b692253d0f28d8a83c102a6abf8c1b68ea4f4f98400", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2b53c97ca82473028518b6274e310524af781bfd5414d464e3ddc64ee3fa074f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x753a31", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7682609", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6eec5cf", - "code" : "", - "nonce" : "0xb4", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992317391", + "code" : "0x", + "nonce" : "180", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_28000_96.json index 9d7a148c7..a583d265c 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_5617_28000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_5617_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_5617_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x6741b0565a93ce01d2fdd4982fcb578f777e01097bb91425fc2b98b1c1e77d07", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7682609", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992317391", + "code" : "0x", + "nonce" : "180", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x6741b0565a93ce01d2fdd4982fcb578f777e01097bb91425fc2b98b1c1e77d07", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcf12d51d85dda3e289362bffdefdd96d3aa41b7df1a847af1631553689d99f70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcf12d51d85dda3e289362bffdefdd96d3aa41b7df1a847af1631553689d99f70", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x327245f7d6a50c789098f2168de8d88b727908e55e8c067cb08e3c170c8a2f68", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 21888242871839275222246405745257275088548364400416034343698204186575808495617 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x74aa18", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "7645720", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6ef55e8", - "code" : "", - "nonce" : "0xb3", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992354280", + "code" : "0x", + "nonce" : "179", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_21000_128.json index 732e50d3c..ad867b60b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_21000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_9935_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_9935_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x12a3e5992c88eb96b92cb26c42adec33bc16cca193438786ca304c59a2035fc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4273166", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995726834", + "code" : "0x", + "nonce" : "94", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x12a3e5992c88eb96b92cb26c42adec33bc16cca193438786ca304c59a2035fc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x12a3e5992c88eb96b92cb26c42adec33bc16cca193438786ca304c59a2035fc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x12a3e5992c88eb96b92cb26c42adec33bc16cca193438786ca304c59a2035fc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x12a3e5992c88eb96b92cb26c42adec33bc16cca193438786ca304c59a2035fc0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x4073ae", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4223918", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7238c52", - "code" : "", - "nonce" : "0x5d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995776082", + "code" : "0x", + "nonce" : "93", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_21000_96.json index 26e0ecc11..aa6161d6d 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_21000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_9935_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_9935_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x40193e8a8d95765301612e2040fa36845499448c16786e68440f1b3569c07820", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4223918", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995776082", + "code" : "0x", + "nonce" : "93", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x40193e8a8d95765301612e2040fa36845499448c16786e68440f1b3569c07820", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x40193e8a8d95765301612e2040fa36845499448c16786e68440f1b3569c07820", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x40193e8a8d95765301612e2040fa36845499448c16786e68440f1b3569c07820", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x40193e8a8d95765301612e2040fa36845499448c16786e68440f1b3569c07820", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x3fb3ce", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4174798", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7244c32", - "code" : "", - "nonce" : "0x5c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995825202", + "code" : "0x", + "nonce" : "92", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_28000_128.json index 7598cd202..0a5a0225b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_28000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_9935_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_9935_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x507bd9112c93b2f58b84d414859d9327908922942c311a2debed849e7f0728c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "8134732", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991865268", + "code" : "0x", + "nonce" : "191", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x507bd9112c93b2f58b84d414859d9327908922942c311a2debed849e7f0728c9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xa003939afd5746467dbf78dcf2c4bf2a2ce2b22319decb0aaf4d34e7c1b094ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xa003939afd5746467dbf78dcf2c4bf2a2ce2b22319decb0aaf4d34e7c1b094ed", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xadc6908de8b5d54b79ea30cff49685c03d5d88b1b02483ff1f76c6d583136a21", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x7b8f30", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "8097584", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6e870d0", - "code" : "", - "nonce" : "0xbe", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991902416", + "code" : "0x", + "nonce" : "190", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_28000_96.json index fe5a0bf87..6a9e0dcaa 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9935_28000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_9935_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_9935_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x017897308c9ec17995f10225f7a284b7e68996b80c94ac811b9e2878bb4803cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "8097584", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991902416", + "code" : "0x", + "nonce" : "190", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x40c97882e95e71d48d97c8655188333e16470e807a99282b8795064ca6ca4dcf" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x017897308c9ec17995f10225f7a284b7e68996b80c94ac811b9e2878bb4803cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x6adc9579e9b24bfd28ae562cb8f4ff8b925e587ddb53adae2c9cda8e9a51e36f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x6adc9579e9b24bfd28ae562cb8f4ff8b925e587ddb53adae2c9cda8e9a51e36f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xcf69c6a812b08561c049893faca2364110ff84440d872df72421dddfb64dbfb3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 115792089237316195423570985008687907853269984665640564039457584007913129639935 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x7afe97", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "8060567", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6e90169", - "code" : "", - "nonce" : "0xbd", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999991939433", + "code" : "0x", + "nonce" : "189", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xa34b6e4f9c282ff62c1e6f53fd92ad8efd8346d9866333a95ab4506a8158afc7" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_21000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_21000_128.json index 0f502c37f..63a015e3c 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_21000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_21000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_9_21000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_9_21000_128Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xfe37cfc2e89377786a8ec348c74395dfb26e56e144b375adc5c1333f6fa51e3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2243374", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997756626", + "code" : "0x", + "nonce" : "49", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfe37cfc2e89377786a8ec348c74395dfb26e56e144b375adc5c1333f6fa51e3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xfe37cfc2e89377786a8ec348c74395dfb26e56e144b375adc5c1333f6fa51e3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xfe37cfc2e89377786a8ec348c74395dfb26e56e144b375adc5c1333f6fa51e3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xfe37cfc2e89377786a8ec348c74395dfb26e56e144b375adc5c1333f6fa51e3d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x21828e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2196110", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7427d72", - "code" : "", - "nonce" : "0x30", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997803890", + "code" : "0x", + "nonce" : "48", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_21000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_21000_96.json index d5e779d40..90b12c246 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_21000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_21000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_9_21000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_9_21000_96Filler.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xbc884ffb8b29fd23117837723d2209889c931a10139f9e176c3a9bfda7d5029e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2196110", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997803890", + "code" : "0x", + "nonce" : "48", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xbc884ffb8b29fd23117837723d2209889c931a10139f9e176c3a9bfda7d5029e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbc884ffb8b29fd23117837723d2209889c931a10139f9e176c3a9bfda7d5029e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbc884ffb8b29fd23117837723d2209889c931a10139f9e176c3a9bfda7d5029e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xbc884ffb8b29fd23117837723d2209889c931a10139f9e176c3a9bfda7d5029e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 21000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x20ca6e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2148974", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7433592", - "code" : "", - "nonce" : "0x2f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997851026", + "code" : "0x", + "nonce" : "47", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_28000_128.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_28000_128.json index 78f75cb8c..eea416625 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_28000_128.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_28000_128.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_9_28000_128" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_9_28000_128Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0xfcf1c3172b418c4a3e35d91f8249b31125828c29cafd43390df671155f6c7b97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6305685", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993694315", + "code" : "0x", + "nonce" : "146", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfcf1c3172b418c4a3e35d91f8249b31125828c29cafd43390df671155f6c7b97", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x004a1720dc82c4c06b629aaa964142c4bc07aee3e4799f16053ccb6b55554335", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x004a1720dc82c4c06b629aaa964142c4bc07aee3e4799f16053ccb6b55554335", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x2506b3f248ef2d76d9e5a07046f89acc31e0b08c12f28890a6b8ffbce697d389", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 128 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5fae39", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6270521", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70451c7", - "code" : "", - "nonce" : "0x91", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993729479", + "code" : "0x", + "nonce" : "145", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_28000_96.json b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_28000_96.json index a4efea197..ae28ca11e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_28000_96.json +++ b/GeneralStateTests/stZeroKnowledge/ecmul_7827-6598_9_28000_96.json @@ -2,7 +2,7 @@ "ecmul_7827-6598_9_28000_96" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecmul_7827-6598_9_28000_96Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", - "post" : { - "EIP150" : [ - { - "hash" : "0x2d62f43d484b37c483c83a4dae9478a42f9f00e797f5d436f6d145ea538b52f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6270521", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993729479", + "code" : "0x", + "nonce" : "145", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xf348aa9f55b137fd60af9c782c04ea7c52c0b193972d1c3aa63d78a110fa2e20" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2d62f43d484b37c483c83a4dae9478a42f9f00e797f5d436f6d145ea538b52f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x460af874c642587fbb541b3f564a071b9b4c069536f635d9dc6854404387a7da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x460af874c642587fbb541b3f564a071b9b4c069536f635d9dc6854404387a7da", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf6fd9b4079f6e8162991a13c3ae01cf220ded1710f3a430aa4be1c2157c89be0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the point (11999875504842010600789954262886096740416429265635183817701593963271973497827, 11843594000332171325303933275547366297934113019079887694534126289021216356598) and the factor 9 into the ECMUL precompile, truncating or expanding the input data to 96 bytes. Gives the execution 28000 bytes", "pre" : { - "0x0000000000000000000000000000000000000000" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5f2560", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6235488", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a704daa0", - "code" : "", - "nonce" : "0x90", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993764512", + "code" : "0x", + "nonce" : "144", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012b5760c06004356004013511151558576004356004013560200160043560040161014037604061026061014051610160600060076305f5e0fff11558576040610240526102406060806102c0828460006004601bf15050506102c08051602082012090506000556102c060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xc7b29565a7dd9915e6fd86d026aef2fc454506bae7f90e2f2bec5f25f01b2d95" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_bad_length_191.json b/GeneralStateTests/stZeroKnowledge/ecpairing_bad_length_191.json index 47134df7d..dc9242c5d 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_bad_length_191.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_bad_length_191.json @@ -2,7 +2,7 @@ "ecpairing_bad_length_191" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_bad_length_191Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x1e1345dfe7dc1861bf18cf55793ada80d6848bc7d3ce0b9ca46894e58e9fc3b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1442947", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998557053", + "code" : "0x", + "nonce" : "8", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1e1345dfe7dc1861bf18cf55793ada80d6848bc7d3ce0b9ca46894e58e9fc3b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x4977d2ec23781d85072d386b568e4ff21adf872b9452841d3ff1bcad1584d3f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x4977d2ec23781d85072d386b568e4ff21adf872b9452841d3ff1bcad1584d3f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4977d2ec23781d85072d386b568e4ff21adf872b9452841d3ff1bcad1584d3f5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1258db", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1202395", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a751a725", - "code" : "", - "nonce" : "0x07", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998797605", + "code" : "0x", + "nonce" : "7", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_bad_length_193.json b/GeneralStateTests/stZeroKnowledge/ecpairing_bad_length_193.json index 9c5ec3e3b..0ade28c06 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_bad_length_193.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_bad_length_193.json @@ -2,7 +2,7 @@ "ecpairing_bad_length_193" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_bad_length_193Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0xadd572327a003fb4b72339c9f1573696947e7496cd52c3a2c7219a4fa9093a3b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1683691", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998316309", + "code" : "0x", + "nonce" : "9", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xadd572327a003fb4b72339c9f1573696947e7496cd52c3a2c7219a4fa9093a3b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc7c356df842df5fa36f6d9c9f1e6a944d7414df7532d4dde9a7c60105a712fa3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc7c356df842df5fa36f6d9c9f1e6a944d7414df7532d4dde9a7c60105a712fa3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xc7c356df842df5fa36f6d9c9f1e6a944d7414df7532d4dde9a7c60105a712fa3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x160483", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1442947", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74dfb7d", - "code" : "", - "nonce" : "0x08", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998557053", + "code" : "0x", + "nonce" : "8", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_empty_data.json b/GeneralStateTests/stZeroKnowledge/ecpairing_empty_data.json index 0cc10b348..5288b83a3 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_empty_data.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_empty_data.json @@ -2,7 +2,7 @@ "ecpairing_empty_data" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_empty_dataFiller.json" }, "env" : { @@ -10,200 +10,303 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0xce722d058d45e35a7fac3e73817363f4beb4e77984618c284e9f3c7939c2034c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "396934", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999603066", + "code" : "0x", + "nonce" : "3", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xce722d058d45e35a7fac3e73817363f4beb4e77984618c284e9f3c7939c2034c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xbdaa65703e4351021ab338b05b8a1efba90fd5f3c20382c81dc5ce0d0a4baf5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xbdaa65703e4351021ab338b05b8a1efba90fd5f3c20382c81dc5ce0d0a4baf5d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3b9cd540a96d0ff0da955cdc3e40ca280d9754ebde888b8cef5e6c0c8ba10689", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x03dd71", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "253297", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a760228f", - "code" : "", - "nonce" : "0x02", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999746703", + "code" : "0x", + "nonce" : "2", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_empty_data_insufficient_gas.json b/GeneralStateTests/stZeroKnowledge/ecpairing_empty_data_insufficient_gas.json index fc044f398..642cdfe02 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_empty_data_insufficient_gas.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_empty_data_insufficient_gas.json @@ -2,7 +2,7 @@ "ecpairing_empty_data_insufficient_gas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_empty_data_insufficient_gasFiller.json" }, "env" : { @@ -10,200 +10,302 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0xd199ca081e365f66457f56dec55007d0f4e4c0ac44c5b1c047064f5ff4f82206", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "253297", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999746703", + "code" : "0x", + "nonce" : "2", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xd199ca081e365f66457f56dec55007d0f4e4c0ac44c5b1c047064f5ff4f82206", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xaeec25aad3e6bb1b7585fc658bd25d2800332cd8a03ac76e3e6d9e87915a422d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xaeec25aad3e6bb1b7585fc658bd25d2800332cd8a03ac76e3e6d9e87915a422d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xaeec25aad3e6bb1b7585fc658bd25d2800332cd8a03ac76e3e6d9e87915a422d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x02027a", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "131706", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a761fd86", - "code" : "", - "nonce" : "0x01", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999868294", + "code" : "0x", + "nonce" : "1", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_fail.json b/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_fail.json index 4f3ae2a19..a14825c73 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_fail.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_fail.json @@ -2,7 +2,7 @@ "ecpairing_one_point_fail" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_one_point_failFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x9f1e4799ff77a31ebfa430b90d539bbc234affe3600a735a52b788f95e392f71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "775229", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999224771", + "code" : "0x", + "nonce" : "5", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x9f1e4799ff77a31ebfa430b90d539bbc234affe3600a735a52b788f95e392f71", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x220850f2f4539e5c9ed1d4a1080c763302b5ff6160be8a39ffa18d2488b71a4e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x220850f2f4539e5c9ed1d4a1080c763302b5ff6160be8a39ffa18d2488b71a4e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x95f07f2f81ebf5dc8c350ff5c1997c854ed2add4d53c3e39410e0c8a14eaf981", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0881ee", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "557550", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75b7e12", - "code" : "", - "nonce" : "0x04", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999442450", + "code" : "0x", + "nonce" : "4", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_insufficient_gas.json b/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_insufficient_gas.json index 9c8927a36..b83466e10 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_insufficient_gas.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_insufficient_gas.json @@ -2,7 +2,7 @@ "ecpairing_one_point_insufficient_gas" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_one_point_insufficient_gasFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x91c39ab4277fa9f29528bb611a4727ccf026afccffdaed433ab86de36ea41bb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "557550", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999442450", + "code" : "0x", + "nonce" : "4", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x91c39ab4277fa9f29528bb611a4727ccf026afccffdaed433ab86de36ea41bb4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9a39b484a802dab9d68f3b8fbaa4e6f3bc6c2a6f1a5866e5980f6455f2dcd386", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9a39b484a802dab9d68f3b8fbaa4e6f3bc6c2a6f1a5866e5980f6455f2dcd386", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x9a39b484a802dab9d68f3b8fbaa4e6f3bc6c2a6f1a5866e5980f6455f2dcd386", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x060e86", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "396934", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a75df17a", - "code" : "", - "nonce" : "0x03", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999603066", + "code" : "0x", + "nonce" : "3", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_not_in_subgroup.json b/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_not_in_subgroup.json index 5272ccc5c..652cba243 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_not_in_subgroup.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_not_in_subgroup.json @@ -2,7 +2,7 @@ "ecpairing_one_point_not_in_subgroup" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_one_point_not_in_subgroupFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x84e576f89f2cc40b43b7a8cea292d708c036160a7fa4e2257d67d8f1aa3be6fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5415081", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994584919", + "code" : "0x", + "nonce" : "21", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x84e576f89f2cc40b43b7a8cea292d708c036160a7fa4e2257d67d8f1aa3be6fa", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe4636542f7dadb593130039483ae8e78604884419ffcc55e2ee2d7ca5f2e383a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe4636542f7dadb593130039483ae8e78604884419ffcc55e2ee2d7ca5f2e383a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe4636542f7dadb593130039483ae8e78604884419ffcc55e2ee2d7ca5f2e383a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x4f04c1", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5178561", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a714fb3f", - "code" : "", - "nonce" : "0x14", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994821439", + "code" : "0x", + "nonce" : "20", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_with_g1_zero.json b/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_with_g1_zero.json index 31b36b3c6..4d0d6b958 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_with_g1_zero.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_with_g1_zero.json @@ -2,7 +2,7 @@ "ecpairing_one_point_with_g1_zero" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_one_point_with_g1_zeroFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0xe691ddc420a32179958ebc45ecce0d82d8b7f46ff5aff678d766ecb1fe037a91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "992780", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999007220", + "code" : "0x", + "nonce" : "6", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xe691ddc420a32179958ebc45ecce0d82d8b7f46ff5aff678d766ecb1fe037a91", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x72fa7658bd8c70025779ee17c83bb488ca868dbd6195ed22766dc2c9cdbdf2e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x72fa7658bd8c70025779ee17c83bb488ca868dbd6195ed22766dc2c9cdbdf2e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd600f11c5d3cc9b3698eda95e8f6d1a8370a8081600000dff2d3aa7f134d1428", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0bd43d", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "775229", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7582bc3", - "code" : "", - "nonce" : "0x05", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999224771", + "code" : "0x", + "nonce" : "5", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_with_g2_zero.json b/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_with_g2_zero.json index 0d1a701b0..4250fa630 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_with_g2_zero.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_one_point_with_g2_zero.json @@ -2,7 +2,7 @@ "ecpairing_one_point_with_g2_zero" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_one_point_with_g2_zeroFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x3153c9ee774c336f3d708ee829720825b84e944ccfa98c15804400b4df42ba4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1202395", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998797605", + "code" : "0x", + "nonce" : "7", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x3153c9ee774c336f3d708ee829720825b84e944ccfa98c15804400b4df42ba4b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x768b6189efd66dc9bb7442022a01f21f62c5670abced09cef49d423fce04d88e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x768b6189efd66dc9bb7442022a01f21f62c5670abced09cef49d423fce04d88e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf93b34770dde9a7fc2506ae64f687915540a517388cf56cf359344a4d87853fc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x0f260c", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "992780", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a754d9f4", - "code" : "", - "nonce" : "0x06", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999999007220", + "code" : "0x", + "nonce" : "6", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_curve_order.json b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_curve_order.json index 491cc4482..f0e1e6d92 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_curve_order.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_curve_order.json @@ -2,7 +2,7 @@ "ecpairing_perturb_g2_by_curve_order" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_perturb_g2_by_curve_orderFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x1a9e22afb1b12795b81a7289785de87efc956f2e7b81b11116b3d448f322432e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6621681", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993378319", + "code" : "0x", + "nonce" : "26", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x1a9e22afb1b12795b81a7289785de87efc956f2e7b81b11116b3d448f322432e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x07b9b081d2a948eec89bfcc72a0d4bc1a870965bc4d0db91359523063c8c9a48", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x07b9b081d2a948eec89bfcc72a0d4bc1a870965bc4d0db91359523063c8c9a48", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x07b9b081d2a948eec89bfcc72a0d4bc1a870965bc4d0db91359523063c8c9a48", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x615e09", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6381065", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a702a1f7", - "code" : "", - "nonce" : "0x19", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993618935", + "code" : "0x", + "nonce" : "25", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_field_modulus.json b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_field_modulus.json index 3e135f039..997791a0e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_field_modulus.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_field_modulus.json @@ -2,7 +2,7 @@ "ecpairing_perturb_g2_by_field_modulus" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_perturb_g2_by_field_modulusFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0xfe31f918e70339f656e244bd5791f2b146bd03e6203eded4a1869777ab3f5ea5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6862169", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993137831", + "code" : "0x", + "nonce" : "27", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xfe31f918e70339f656e244bd5791f2b146bd03e6203eded4a1869777ab3f5ea5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x3aa6aeb8232d520cc9c0ebbb2ebfd931e25a3d5c6295751af401726977114f31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x3aa6aeb8232d520cc9c0ebbb2ebfd931e25a3d5c6295751af401726977114f31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x3aa6aeb8232d520cc9c0ebbb2ebfd931e25a3d5c6295751af401726977114f31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x6509f1", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6621681", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6fef60f", - "code" : "", - "nonce" : "0x1a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993378319", + "code" : "0x", + "nonce" : "26", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_field_modulus_again.json b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_field_modulus_again.json index bc5a86983..9d7571fc8 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_field_modulus_again.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_field_modulus_again.json @@ -2,7 +2,7 @@ "ecpairing_perturb_g2_by_field_modulus_again" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_perturb_g2_by_field_modulus_againFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x5949201fb0113c8d05cc147b78c2bbe47bb30d428ffe55370b6759ab9140a576", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "7102657", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999992897343", + "code" : "0x", + "nonce" : "28", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x5949201fb0113c8d05cc147b78c2bbe47bb30d428ffe55370b6759ab9140a576", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0abf8de2c72db70b3e64a46517654dcfba3c1667deeffe5e3cc6432ab84682f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0abf8de2c72db70b3e64a46517654dcfba3c1667deeffe5e3cc6432ab84682f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x0abf8de2c72db70b3e64a46517654dcfba3c1667deeffe5e3cc6432ab84682f1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x68b559", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6862169", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a6fb4aa7", - "code" : "", - "nonce" : "0x1b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993137831", + "code" : "0x", + "nonce" : "27", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_one.json b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_one.json index 94af43221..3b578c20d 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_one.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_g2_by_one.json @@ -2,7 +2,7 @@ "ecpairing_perturb_g2_by_one" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_perturb_g2_by_oneFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0xc69b4bac403392a660b13669222b538d4c51a9beeb6112745134ef6a8b041fee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6381065", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993618935", + "code" : "0x", + "nonce" : "25", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xc69b4bac403392a660b13669222b538d4c51a9beeb6112745134ef6a8b041fee", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x782450b00293142318da12f3a1d4f1492ea216439af3b7fc6c8d5a8185c9489c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x782450b00293142318da12f3a1d4f1492ea216439af3b7fc6c8d5a8185c9489c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x782450b00293142318da12f3a1d4f1492ea216439af3b7fc6c8d5a8185c9489c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x5db2a1", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "6140577", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7064d5f", - "code" : "", - "nonce" : "0x18", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993859423", + "code" : "0x", + "nonce" : "24", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_curve_order.json b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_curve_order.json index 252f4e9e7..e3b8e672b 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_curve_order.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_curve_order.json @@ -2,7 +2,7 @@ "ecpairing_perturb_zeropoint_by_curve_order" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_perturb_zeropoint_by_curve_orderFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0xb5b6c685070916ce04d6284beb5dbab9229622c981eb8b16a9a8a2cfc201f60a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5898041", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994101959", + "code" : "0x", + "nonce" : "23", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xb5b6c685070916ce04d6284beb5dbab9229622c981eb8b16a9a8a2cfc201f60a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x384c6e486ffebdaf8f435707ad093ab18be3bd41366c796523fd9522916c2d4d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x384c6e486ffebdaf8f435707ad093ab18be3bd41366c796523fd9522916c2d4d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x384c6e486ffebdaf8f435707ad093ab18be3bd41366c796523fd9522916c2d4d", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x564c51", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5655633", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70db3af", - "code" : "", - "nonce" : "0x16", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994344367", + "code" : "0x", + "nonce" : "22", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_field_modulus.json b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_field_modulus.json index 675d0c7da..85658fd05 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_field_modulus.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_field_modulus.json @@ -2,7 +2,7 @@ "ecpairing_perturb_zeropoint_by_field_modulus" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_perturb_zeropoint_by_field_modulusFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x0264f01acbe475db30203a1e4dc6602bf47ed47034bee1f055bbfc0b9e622d0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "6140577", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999993859423", + "code" : "0x", + "nonce" : "24", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x0264f01acbe475db30203a1e4dc6602bf47ed47034bee1f055bbfc0b9e622d0a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x807ee419dba581d8bcb22bc72bc958deab323a3f66625ddc1cdc8cbec426d5cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x807ee419dba581d8bcb22bc72bc958deab323a3f66625ddc1cdc8cbec426d5cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x807ee419dba581d8bcb22bc72bc958deab323a3f66625ddc1cdc8cbec426d5cb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x59ff39", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5898041", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a70a00c7", - "code" : "", - "nonce" : "0x17", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994101959", + "code" : "0x", + "nonce" : "23", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_one.json b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_one.json index ed9894f34..22c88979f 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_one.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_perturb_zeropoint_by_one.json @@ -2,7 +2,7 @@ "ecpairing_perturb_zeropoint_by_one" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_perturb_zeropoint_by_oneFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x2e80a81b4ca847d342589dd498542f60ccb69b573bd8a0f053d624cf2279a51c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5655633", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994344367", + "code" : "0x", + "nonce" : "22", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2e80a81b4ca847d342589dd498542f60ccb69b573bd8a0f053d624cf2279a51c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x92a4268284f54bdc75c55c2774f7563974a665e76c59a3299c405d3a9fb95291", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x92a4268284f54bdc75c55c2774f7563974a665e76c59a3299c405d3a9fb95291", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x92a4268284f54bdc75c55c2774f7563974a665e76c59a3299c405d3a9fb95291", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x52a0a9", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "5415081", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7115f57", - "code" : "", - "nonce" : "0x15", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994584919", + "code" : "0x", + "nonce" : "21", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_three_point_fail_1.json b/GeneralStateTests/stZeroKnowledge/ecpairing_three_point_fail_1.json index 6742c292e..448ce50e6 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_three_point_fail_1.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_three_point_fail_1.json @@ -2,7 +2,7 @@ "ecpairing_three_point_fail_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_three_point_fail_1Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x925f4f2fd5b9fcb874ac8cab186ab5233aa138ee6e635066d64ba912064c25e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "5178561", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999994821439", + "code" : "0x", + "nonce" : "20", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x925f4f2fd5b9fcb874ac8cab186ab5233aa138ee6e635066d64ba912064c25e3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xcf7e9b1c70315bda28a19e7645ef5e6147c056c5ce66a799ca2dd83657debc3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xcf7e9b1c70315bda28a19e7645ef5e6147c056c5ce66a799ca2dd83657debc3f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x7651593f3074b2f98e10627be8d4bd92916f8b26b59264ab4c618c8f6c63930c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x48eb8e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4778894", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a71b1472", - "code" : "", - "nonce" : "0x13", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995221106", + "code" : "0x", + "nonce" : "19", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_three_point_match_1.json b/GeneralStateTests/stZeroKnowledge/ecpairing_three_point_match_1.json index e2c5a4057..58893350e 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_three_point_match_1.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_three_point_match_1.json @@ -2,7 +2,7 @@ "ecpairing_three_point_match_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_three_point_match_1Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x2b4aa9597790ebcde4a081d8864b641dd014227b4bc9302e904f810c77837709", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4778894", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995221106", + "code" : "0x", + "nonce" : "19", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x2b4aa9597790ebcde4a081d8864b641dd014227b4bc9302e904f810c77837709", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xf9f33343d290b42a1a5049543ee5896d29c491a7ebb9c1c73f0e3191a32f7f54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xf9f33343d290b42a1a5049543ee5896d29c491a7ebb9c1c73f0e3191a32f7f54", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x1f237f242c1bf94385221220b27cfb5f3a3ea6edb7185aa334d3d72bb81a1ac7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x42f15b", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4387163", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7210ea5", - "code" : "", - "nonce" : "0x12", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995612837", + "code" : "0x", + "nonce" : "18", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_fail_1.json b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_fail_1.json index fac7dcb0e..818aa1edf 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_fail_1.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_fail_1.json @@ -2,7 +2,7 @@ "ecpairing_two_point_fail_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_two_point_fail_1Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x8eb9c6d0f1816f2d4a5bf0fef7de022016a6dccfb67823d65eb1594321c30411", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "1990412", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998009588", + "code" : "0x", + "nonce" : "10", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8eb9c6d0f1816f2d4a5bf0fef7de022016a6dccfb67823d65eb1594321c30411", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x0ba1f8931e77ead701f4dbb8e5db98db3c8492033b074243c33d177c16fd27d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x0ba1f8931e77ead701f4dbb8e5db98db3c8492033b074243c33d177c16fd27d5", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x4aa973607aac1132c72945aebbbba93d7287a17d50dcaf40b4dfb4615fc20200", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x19b0eb", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1683691", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a74a4f15", - "code" : "", - "nonce" : "0x09", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998316309", + "code" : "0x", + "nonce" : "9", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_fail_2.json b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_fail_2.json index 74e6b926a..6b84c719f 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_fail_2.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_fail_2.json @@ -2,7 +2,7 @@ "ecpairing_two_point_fail_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_two_point_fail_2Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x7b82a76cce5cf6f0b6ca35e57505269f5e143eae3d0e4ea3d67743f313e0e452", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4088634", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995911366", + "code" : "0x", + "nonce" : "17", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x7b82a76cce5cf6f0b6ca35e57505269f5e143eae3d0e4ea3d67743f313e0e452", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x07453b1d372952c312053646c92db7c2823e7828582d075b46fe660feb59c306", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x07453b1d372952c312053646c92db7c2823e7828582d075b46fe660feb59c306", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd5663cf851b8e6b656de2625a050b94fd0295246fc7621d8db22aabd066b4e81", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x39a4d9", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3777753", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a72a5b27", - "code" : "", - "nonce" : "0x10", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996222247", + "code" : "0x", + "nonce" : "16", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_1.json b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_1.json index 9d777ba16..82c6ce370 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_1.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_1.json @@ -2,7 +2,7 @@ "ecpairing_two_point_match_1" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_two_point_match_1Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x8b2d49ea990fcfd5f96df501cb7b4f8976ce997dea39859f947259bc4e94a888", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2597774", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997402226", + "code" : "0x", + "nonce" : "12", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x8b2d49ea990fcfd5f96df501cb7b4f8976ce997dea39859f947259bc4e94a888", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xc0eeb74f6e9d53e153c3f8a4ac80cfe77ea574c7894f6353960ee812a90c45b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xc0eeb74f6e9d53e153c3f8a4ac80cfe77ea574c7894f6353960ee812a90c45b9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf4a9c1a1bc442246e6f06473865abeefe0f736b8f282d65366f4785705c2b382", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x22edad", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2289069", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7411253", - "code" : "", - "nonce" : "0x0b", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997710931", + "code" : "0x", + "nonce" : "11", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_2.json b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_2.json index 1a2d81cce..6388610ec 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_2.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_2.json @@ -2,7 +2,7 @@ "ecpairing_two_point_match_2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_two_point_match_2Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x120c3fa18617bd055976381302aa08f6d8b677d5cb142461bb23e0396b1beb0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3156119", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996843881", + "code" : "0x", + "nonce" : "14", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x120c3fa18617bd055976381302aa08f6d8b677d5cb142461bb23e0396b1beb0f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x1f982284c930888a52c4a72e499a1ba5300b98f8e631a097103a4bd553c88efb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x1f982284c930888a52c4a72e499a1ba5300b98f8e631a097103a4bd553c88efb", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe3e17ab0feaf25d0f8135b4acaf920195e74705dfb7cbb0e880dd96405877bb0", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x2b7a76", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2849398", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a738858a", - "code" : "", - "nonce" : "0x0d", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997150602", + "code" : "0x", + "nonce" : "13", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_3.json b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_3.json index be6c3e1a5..3bbdbaff8 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_3.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_3.json @@ -2,7 +2,7 @@ "ecpairing_two_point_match_3" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_two_point_match_3Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0xf8052c066c915fd951b5d27a1bd183eaf038f2133854dc81ab501417e329be53", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3466936", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996533064", + "code" : "0x", + "nonce" : "15", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xf8052c066c915fd951b5d27a1bd183eaf038f2133854dc81ab501417e329be53", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x9a572567452805c60beb8e8c71b3ca67f90ef7ed5d4e8272b3cbccaf923ccd30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x9a572567452805c60beb8e8c71b3ca67f90ef7ed5d4e8272b3cbccaf923ccd30", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xf203beac6f3bbc6545cf73486ba7f16abf1d5f6dfe8b4a2fc32a6f4ff572ebb7", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x302897", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3156119", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a733d769", - "code" : "", - "nonce" : "0x0e", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996843881", + "code" : "0x", + "nonce" : "14", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_4.json b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_4.json index 477a1e1b5..df77da741 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_4.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_4.json @@ -2,7 +2,7 @@ "ecpairing_two_point_match_4" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_two_point_match_4Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x64c00e199de7a3dec327909267fde73b2df1a44d8fb1e1cd8d5b9a4a20f9f98c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "3777753", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996222247", + "code" : "0x", + "nonce" : "16", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x64c00e199de7a3dec327909267fde73b2df1a44d8fb1e1cd8d5b9a4a20f9f98c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x917132ff9b561ba6be0a1bfd6b2612e7a8275827bcb6390ba3c3295dd120e94c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x917132ff9b561ba6be0a1bfd6b2612e7a8275827bcb6390ba3c3295dd120e94c", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x747dc1886433d5271aed4707e6f4f06ac9243c3649095620ba1ad0b95456b441", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x34e6b8", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "3466936", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a72f1948", - "code" : "", - "nonce" : "0x0f", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999996533064", + "code" : "0x", + "nonce" : "15", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_5.json b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_5.json index 01a26c309..281d1ad82 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_5.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_match_5.json @@ -2,7 +2,7 @@ "ecpairing_two_point_match_5" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_two_point_match_5Filler.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x4a01befb3fe37fab4d285f001c81ddb4a0b8aeaced73c0f748ca0aff57ecc1dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "4387163", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995612837", + "code" : "0x", + "nonce" : "18", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x4a01befb3fe37fab4d285f001c81ddb4a0b8aeaced73c0f748ca0aff57ecc1dd", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x8306ec38a636e2658928c5fa3323cb6ec4f609be4a78310b2d216b3544ac2aa9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x8306ec38a636e2658928c5fa3323cb6ec4f609be4a78310b2d216b3544ac2aa9", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0x8157fd0cb12602ad5fec80cd679f9ffe4b82cfb6d732dee8d8e77e4c6abdc241", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x3e633a", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "4088634", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a7259cc6", - "code" : "", - "nonce" : "0x11", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999995911366", + "code" : "0x", + "nonce" : "17", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_oog.json b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_oog.json index 63d467047..51dbf09cb 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_oog.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_two_point_oog.json @@ -2,7 +2,7 @@ "ecpairing_two_point_oog" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_two_point_oogFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0x3ccf482802eaa2b6808c06d3767e9a1256831ae988321940cd989ce764051107", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2849398", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997150602", + "code" : "0x", + "nonce" : "13", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0x3ccf482802eaa2b6808c06d3767e9a1256831ae988321940cd989ce764051107", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0xe57acbd61f44548db10f45f39aefe6ebd8ec03f4993183f9f88839405dcad808", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0xe57acbd61f44548db10f45f39aefe6ebd8ec03f4993183f9f88839405dcad808", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xe57acbd61f44548db10f45f39aefe6ebd8ec03f4993183f9f88839405dcad808", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x27a38e", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "2597774", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a73c5c72", - "code" : "", - "nonce" : "0x0c", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997402226", + "code" : "0x", + "nonce" : "12", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/ecpairing_two_points_with_one_g2_zero.json b/GeneralStateTests/stZeroKnowledge/ecpairing_two_points_with_one_g2_zero.json index b9fc2f0d5..96c2c831d 100644 --- a/GeneralStateTests/stZeroKnowledge/ecpairing_two_points_with_one_g2_zero.json +++ b/GeneralStateTests/stZeroKnowledge/ecpairing_two_points_with_one_g2_zero.json @@ -2,7 +2,7 @@ "ecpairing_two_points_with_one_g2_zero" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/ecpairing_two_points_with_one_g2_zeroFiller.json" }, "env" : { @@ -10,201 +10,304 @@ "currentDifficulty" : "0x020000", "currentGasLimit" : "0x5f5e100", "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", + "currentTimestamp" : "1000", "previousHash" : "0xc6745cf3cada515bbfb9573261c82547e0b8f9e3d5dd382e464704a84e47b5ad" }, - "explanation" : "Puts the given data into the ECPAIRING precompile", - "post" : { - "EIP150" : [ - { - "hash" : "0xdd53e6b9dbf6b8ab90d03c2c8124094acad3e441f7bfd550f4ec7912200d4efe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "3535353535353535353535353535353535353535" : { + "balance" : "2289069", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999997710931", + "code" : "0x", + "nonce" : "11", + "storage" : { + } + }, + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", + "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", + "nonce" : "1", + "storage" : { + "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" + } + }, + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } + }, + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", + "storage" : { + } } } - ], - "EIP158" : [ - { - "hash" : "0xdd53e6b9dbf6b8ab90d03c2c8124094acad3e441f7bfd550f4ec7912200d4efe", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Frontier" : [ - { - "hash" : "0x25dc4312771ff948d92ad0974103819566de340566aaf267fc2470a2f1c388c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x25dc4312771ff948d92ad0974103819566de340566aaf267fc2470a2f1c388c4", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ], - "Metropolis" : [ - { - "hash" : "0xd60c5b452aa9118422ec3fd03b82fafbfe640cf0085300bf046b33ba2e8bce31", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - } - ] - }, + } + ], + "explanation" : "Puts the given data into the ECPAIRING precompile", "pre" : { - "0x0000000000000000000000000000000000000001" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000001" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000002" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000002" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000003" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000003" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000004" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000004" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000005" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000005" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000006" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000006" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000007" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000007" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x0000000000000000000000000000000000000008" : { - "balance" : "0x01", - "code" : "", - "nonce" : "0x00", + "0000000000000000000000000000000000000008" : { + "balance" : "1", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "10a1c1cb95c92ec31d3f22c66eef1d9f3f258c6b" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "13cbb8d99c6c4e0f2728c7d72606e78a29c4e224" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "24143873e0e0815fdcbcffdbe09c979cbf9ad013" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x3535353535353535353535353535353535353535" : { - "balance" : "0x1e5f0c", - "code" : "", - "nonce" : "0x00", + "3535353535353535353535353535353535353535" : { + "balance" : "1990412", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x598443f1880ef585b21f1d7585bd0577402861e5" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "598443f1880ef585b21f1d7585bd0577402861e5" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x77db2bebba79db42a978f896968f4afce746ea1f" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "77db2bebba79db42a978f896968f4afce746ea1f" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "7d577a597b2742b498cb5cf0c26cdcd726d39e6e" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { - "balance" : "0x0de0b6b3a745a0f4", - "code" : "", - "nonce" : "0x0a", + "82a978b3f5962a5b0957d9ee9eef472ee55b42f1" : { + "balance" : "999999999998009588", + "code" : "0x", + "nonce" : "10", "storage" : { } }, - "0x90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "90f0b1ebbba1c1936aff7aaf20a7878ff9e04b6c" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xc305c901078781c232a2a521c2af7980f8385ee9" : { - "balance" : "0x00", + "c305c901078781c232a2a521c2af7980f8385ee9" : { + "balance" : "0", "code" : "0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a0526330c8d1da600051141561012c576107806004356004013511151558576004356004013560200160043560040161014037602061092061014051610160600060086305f5e0fff11558576020610900526109006040806109608284600060046018f150505061096080516020820120905060005561096060206020820352604081510160206001820306601f820103905060208203f350005b", - "nonce" : "0x01", + "nonce" : "1", "storage" : { "0x00" : "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, - "0xdceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "dceceaf3fc5c0a63d195d69b1a90011b7b19650d" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } }, - "0xe0fc04fa2d34a66b779fd5cee748268032a146c0" : { - "balance" : "0x0de0b6b3a7640000", - "code" : "", - "nonce" : "0x00", + "e0fc04fa2d34a66b779fd5cee748268032a146c0" : { + "balance" : "1000000000000000000", + "code" : "0x", + "nonce" : "0", "storage" : { } } diff --git a/GeneralStateTests/stZeroKnowledge/pairingTest.json b/GeneralStateTests/stZeroKnowledge/pairingTest.json index 1131da74e..ca63db0df 100644 --- a/GeneralStateTests/stZeroKnowledge/pairingTest.json +++ b/GeneralStateTests/stZeroKnowledge/pairingTest.json @@ -2,295 +2,111 @@ "pairingTest" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/pairingTestFiller.json" }, "env" : { - "currentCoinbase" : "0x68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0xd5ce6f", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "14012015", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x5c5b3e5167e203e991e417e4cbf745186e761703eae5c20b0ee2c57b9255a12e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x18f0c4e790d40cc323d2c1dfd5e82c0146d3ccebbadafc4a08cfefa6250e7bc6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5c5b3e5167e203e991e417e4cbf745186e761703eae5c20b0ee2c57b9255a12e", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x56bb2be6b645fa88500ec29e16868aee5ebae70899db41c879b4853d5c1682f1", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe881dea44861973eb011a559f1708683ccba4ad13fcad543f888950efcf8f9d1", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5c5b3e5167e203e991e417e4cbf745186e761703eae5c20b0ee2c57b9255a12e", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - } - ], - "EIP158" : [ - { - "hash" : "0x5c5b3e5167e203e991e417e4cbf745186e761703eae5c20b0ee2c57b9255a12e", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x18f0c4e790d40cc323d2c1dfd5e82c0146d3ccebbadafc4a08cfefa6250e7bc6", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5c5b3e5167e203e991e417e4cbf745186e761703eae5c20b0ee2c57b9255a12e", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x56bb2be6b645fa88500ec29e16868aee5ebae70899db41c879b4853d5c1682f1", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe881dea44861973eb011a559f1708683ccba4ad13fcad543f888950efcf8f9d1", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5c5b3e5167e203e991e417e4cbf745186e761703eae5c20b0ee2c57b9255a12e", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "Frontier" : [ - { - "hash" : "0x5f9ef2675f3fee1e5a985ae3ebede371e1df715c9f31499781812d8678382219", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe978160439d570a46eb7e749435c263f7e81a3e0d5094133ab997f20f516230c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5f9ef2675f3fee1e5a985ae3ebede371e1df715c9f31499781812d8678382219", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf1e67fc826713edf44254899f2fa1e6bfc3d663ec3f294612bb5f570b9540331", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3ddb9b271f2d9ea99d7043601ac7aa59b37b154833a15a3c9ef31b7de7e3b6dd", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5f9ef2675f3fee1e5a985ae3ebede371e1df715c9f31499781812d8678382219", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - } - ], - "Homestead" : [ - { - "hash" : "0x5f9ef2675f3fee1e5a985ae3ebede371e1df715c9f31499781812d8678382219", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe978160439d570a46eb7e749435c263f7e81a3e0d5094133ab997f20f516230c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5f9ef2675f3fee1e5a985ae3ebede371e1df715c9f31499781812d8678382219", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf1e67fc826713edf44254899f2fa1e6bfc3d663ec3f294612bb5f570b9540331", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3ddb9b271f2d9ea99d7043601ac7aa59b37b154833a15a3c9ef31b7de7e3b6dd", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5f9ef2675f3fee1e5a985ae3ebede371e1df715c9f31499781812d8678382219", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 0, + 1, + 2, + 3, + 4 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x362169c629338834b04b604eb489ac8e254691229316876af170514ffacf6748", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5557bd71d6abd128e93cfe64356ee8814dee96996ea35dfdbd1b4bfee3b23afd", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x362169c629338834b04b604eb489ac8e254691229316876af170514ffacf6748", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x4b858a9be4e3c032b56403a4863a35996911c3482028c9b0bcac7f6ac07ce85b", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x0c559703fa7f27a6e2c7ef412dd51a6be27ed26c5da485e4f9da85790ecace57", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe494f19de42ebcdaa353d06c06f51efd8ed11ff27e44e40892b2163360962871", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 5 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x60203560205260403560405260603560605260803560805260a03560a05260c03560c05260e03560e052610100356101005261012035610120526101403561014052610160356101605261018035610180526101a0356101a0526101c0356101c0526101e0356101e052610200356102005261022035610220526102403561024052610260356102605261028035610280526102a0356102a0526102c0356102c0526102e0356102e05260206103e86000356020600060086207a120f26000556103e851600155", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{(MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96)) (MSTORE 128 (CALLDATALOAD 128)) (MSTORE 160 (CALLDATALOAD 160)) (MSTORE 192 (CALLDATALOAD 192)) (MSTORE 224 (CALLDATALOAD 224)) (MSTORE 256 (CALLDATALOAD 256)) (MSTORE 288 (CALLDATALOAD 288)) (MSTORE 320 (CALLDATALOAD 320)) (MSTORE 352 (CALLDATALOAD 352)) (MSTORE 384 (CALLDATALOAD 384)) (MSTORE 416 (CALLDATALOAD 416)) (MSTORE 448 (CALLDATALOAD 448)) (MSTORE 480 (CALLDATALOAD 480)) (MSTORE 512 (CALLDATALOAD 512)) (MSTORE 544 (CALLDATALOAD 544)) (MSTORE 576 (CALLDATALOAD 576)) (MSTORE 608 (CALLDATALOAD 608)) (MSTORE 640 (CALLDATALOAD 640)) (MSTORE 672 (CALLDATALOAD 672)) (MSTORE 704 (CALLDATALOAD 704)) (MSTORE 736 (CALLDATALOAD 736)) [[0]](CALLCODE 500000 8 0 32 (CALLDATALOAD 0) 1000 32) [[1]] (MLOAD 1000) }", + "nonce" : "0", "storage" : { } }, - "0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x6000356000526020356020527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000060405260406103e86060600060006007624c4b40f26000556103e85160015561040851600255", - "nonce" : "0x00", + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000) [[0]](CALLCODE 5000000 7 0 0 96 1000 64) [[1]](MLOAD 1000) [[2]](MLOAD 1032) }", + "nonce" : "0", "storage" : { } }, - "0xd94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x60003560005260203560205260403560405260603560605260406103e86080600060006006624c4b40f26000556103e85160015561040851600255", - "nonce" : "0x00", + "d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{ (MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96)) [[0]](CALLCODE 5000000 6 0 0 128 1000 64) [[1]](MLOAD 1000) [[2]](MLOAD 1032) }", + "nonce" : "0", "storage" : { } } @@ -308,14 +124,14 @@ "0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba" ], "gasLimit" : [ - "0x989680" + "10000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroKnowledge/pointAdd.json b/GeneralStateTests/stZeroKnowledge/pointAdd.json index 27636a8c9..4292b0b4a 100644 --- a/GeneralStateTests/stZeroKnowledge/pointAdd.json +++ b/GeneralStateTests/stZeroKnowledge/pointAdd.json @@ -2,441 +2,203 @@ "pointAdd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/pointAddFiller.json" }, "env" : { - "currentCoinbase" : "0x68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x3d37ef", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "4012015", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xfc2d0546645ea4bbad810aa715d5141902368bd596ab38a8c2185f1e0639fcfc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe10a403372c5982def00604a6ebb53e8e6bdd5f3993917b4e11521568ca84a4a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xab4bbe86a8d8d586d29f2bf25ebaa402c98b7425e344ac06982dc1c304ec8557", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x591b12323d63703aed4cdaa4924f3923d4304965a764e10e394b435a76964c73", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x591b12323d63703aed4cdaa4924f3923d4304965a764e10e394b435a76964c73", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xab4bbe86a8d8d586d29f2bf25ebaa402c98b7425e344ac06982dc1c304ec8557", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xab4bbe86a8d8d586d29f2bf25ebaa402c98b7425e344ac06982dc1c304ec8557", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xab4bbe86a8d8d586d29f2bf25ebaa402c98b7425e344ac06982dc1c304ec8557", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x170d0128ed0e201c068370fd7d2429445bace8d339307985111a77dab1cf270f", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1411856d5b370963368eabee7adef1d3c8eb522316b6cc57a790fc826b75e4d3", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0xfc2d0546645ea4bbad810aa715d5141902368bd596ab38a8c2185f1e0639fcfc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe10a403372c5982def00604a6ebb53e8e6bdd5f3993917b4e11521568ca84a4a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xab4bbe86a8d8d586d29f2bf25ebaa402c98b7425e344ac06982dc1c304ec8557", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x591b12323d63703aed4cdaa4924f3923d4304965a764e10e394b435a76964c73", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x591b12323d63703aed4cdaa4924f3923d4304965a764e10e394b435a76964c73", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xab4bbe86a8d8d586d29f2bf25ebaa402c98b7425e344ac06982dc1c304ec8557", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xab4bbe86a8d8d586d29f2bf25ebaa402c98b7425e344ac06982dc1c304ec8557", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xab4bbe86a8d8d586d29f2bf25ebaa402c98b7425e344ac06982dc1c304ec8557", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x170d0128ed0e201c068370fd7d2429445bace8d339307985111a77dab1cf270f", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1411856d5b370963368eabee7adef1d3c8eb522316b6cc57a790fc826b75e4d3", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 0 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3", + "0x02" : "0x15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4" + } } } - ], - "Frontier" : [ - { - "hash" : "0x2e2f03222166685705aec467cd7ba94b095695ced1e02a5c76d3c11713871753", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3bfc585877c04428fb5b68fa51a19b6b83bcac4e71ed4ad2cf1420823467d7df", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb03cbbf0c551f8437471354b45b82662060baeecc5a555b28499712ed0572ea", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf156f3a0d3e4d651120b5caf740f41fff27db28c8bd0e7416fa9123f0df7dceb", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf156f3a0d3e4d651120b5caf740f41fff27db28c8bd0e7416fa9123f0df7dceb", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb03cbbf0c551f8437471354b45b82662060baeecc5a555b28499712ed0572ea", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb03cbbf0c551f8437471354b45b82662060baeecc5a555b28499712ed0572ea", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb03cbbf0c551f8437471354b45b82662060baeecc5a555b28499712ed0572ea", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1961b08d3d86642d4ce9928a17d4ac527b0312e3eca230dad3bd137eac7d3c83", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe9cee7d3ca659e3c78532018d90a6c80998b608763b82d3f733980dceafaff14", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 1 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0x2e2f03222166685705aec467cd7ba94b095695ced1e02a5c76d3c11713871753", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3bfc585877c04428fb5b68fa51a19b6b83bcac4e71ed4ad2cf1420823467d7df", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb03cbbf0c551f8437471354b45b82662060baeecc5a555b28499712ed0572ea", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf156f3a0d3e4d651120b5caf740f41fff27db28c8bd0e7416fa9123f0df7dceb", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf156f3a0d3e4d651120b5caf740f41fff27db28c8bd0e7416fa9123f0df7dceb", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb03cbbf0c551f8437471354b45b82662060baeecc5a555b28499712ed0572ea", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb03cbbf0c551f8437471354b45b82662060baeecc5a555b28499712ed0572ea", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbb03cbbf0c551f8437471354b45b82662060baeecc5a555b28499712ed0572ea", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1961b08d3d86642d4ce9928a17d4ac527b0312e3eca230dad3bd137eac7d3c83", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe9cee7d3ca659e3c78532018d90a6c80998b608763b82d3f733980dceafaff14", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 2, + 5, + 6 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xbc7c2678fafc7453de279a7020b9035901b865a6bec9b09ccab29f1d88ce824f", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x645935999698e46d5db1cd8ad6bebf4fac87ce9154853837b36636257a5958e9", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbe6d24e74bd3a68da67c8e760f9d13900576ebd03a32b0ec2f6fb078cfbb6341", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9ba2685459fa21e76036ad168bd0d77cbf7861e50cc6ed1dcb2638c73bb35dd3", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9ba2685459fa21e76036ad168bd0d77cbf7861e50cc6ed1dcb2638c73bb35dd3", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbe6d24e74bd3a68da67c8e760f9d13900576ebd03a32b0ec2f6fb078cfbb6341", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbe6d24e74bd3a68da67c8e760f9d13900576ebd03a32b0ec2f6fb078cfbb6341", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 3, + 4 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2", + "0x02" : "0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba" + } } - }, - { - "hash" : "0x8edf799d5dc81e49c2e83ed86ccb4627706dd710374896dcd78d3d8e6bbdf83c", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 7 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286", + "0x02" : "0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4" + } } - }, - { - "hash" : "0x58db0ee3997ab3e1ea2f16d10efcf76cb0053046ee226b84753b178e3117908c", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 8 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49", + "0x02" : "0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f" + } } - }, - { - "hash" : "0xb9d723f21bec219760ba385cadd544739dabe936c75e95483cf163bcd1acdf0f", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 9 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x059a381fec09e29448a58ae8905f41d1eb8ff0ed755aa0f827821aefde02ec7d", + "0x02" : "0x269d2516bf8c4f5798cc1267162e59add561e5537a328fe0f28a252fa287a72a" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600035600052602035602052604035604052606035606052604060c860806000600060066207a120f260005560c85160015560e851600255", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{(MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96)) [[0]](CALLCODE 500000 6 0 0 128 200 64) [[1]] (MLOAD 200) [[2]] (MLOAD 232) }", + "nonce" : "0", "storage" : { } } @@ -455,14 +217,14 @@ "0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroKnowledge/pointAddTrunc.json b/GeneralStateTests/stZeroKnowledge/pointAddTrunc.json index d0845f5d7..d3ac46507 100644 --- a/GeneralStateTests/stZeroKnowledge/pointAddTrunc.json +++ b/GeneralStateTests/stZeroKnowledge/pointAddTrunc.json @@ -2,441 +2,243 @@ "pointAddTrunc" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/pointAddTruncFiller.json" }, "env" : { - "currentCoinbase" : "0x68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x3d37ef", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "4012015", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x77db8deafc5b606f2bcee660c34a5d9c2a329c2220767c9424f8d82eeb093e7a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x257433ff3f8192afcdba0a058109fb1f38209eb42d51cba4f6785637a7e93a7c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8f5cf03ee422dd3b1b3963a54aa2defdab39caa826902cd2bba54220580681d2", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xccccf31592768397d73aef5b4fcc022f318b50c446e2c170106b8292c70cb11a", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xccccf31592768397d73aef5b4fcc022f318b50c446e2c170106b8292c70cb11a", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8f5cf03ee422dd3b1b3963a54aa2defdab39caa826902cd2bba54220580681d2", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8f5cf03ee422dd3b1b3963a54aa2defdab39caa826902cd2bba54220580681d2", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8f5cf03ee422dd3b1b3963a54aa2defdab39caa826902cd2bba54220580681d2", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe71b04b6636a77260982da8e238fe6c0738c0dc3eef695dc49f8b9d18d46d4b2", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfe61d36b921f8002f7123210a7b141b749d2648c179a0fdaf8a17b056392ee4e", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "EIP158" : [ - { - "hash" : "0x77db8deafc5b606f2bcee660c34a5d9c2a329c2220767c9424f8d82eeb093e7a", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x257433ff3f8192afcdba0a058109fb1f38209eb42d51cba4f6785637a7e93a7c", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8f5cf03ee422dd3b1b3963a54aa2defdab39caa826902cd2bba54220580681d2", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xccccf31592768397d73aef5b4fcc022f318b50c446e2c170106b8292c70cb11a", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xccccf31592768397d73aef5b4fcc022f318b50c446e2c170106b8292c70cb11a", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8f5cf03ee422dd3b1b3963a54aa2defdab39caa826902cd2bba54220580681d2", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8f5cf03ee422dd3b1b3963a54aa2defdab39caa826902cd2bba54220580681d2", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8f5cf03ee422dd3b1b3963a54aa2defdab39caa826902cd2bba54220580681d2", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe71b04b6636a77260982da8e238fe6c0738c0dc3eef695dc49f8b9d18d46d4b2", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfe61d36b921f8002f7123210a7b141b749d2648c179a0fdaf8a17b056392ee4e", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 0 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x02" + } } } - ], - "Frontier" : [ - { - "hash" : "0xbc2a5065f1ea98490a6f357e52cc825dc107a28bd3a2b4079f9ec01efb0d1bd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x849467386e020945ba35864662789d426ecd300a5b9be8d28726a1059e2cffca", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x14f2e00014c7336278d10099c859b16ce25935f0c96b76b85b165416763c1c80", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x628fa5c8cd0469b704b791baffb3a7acba0086ede79c6852c0b29ddd4ca0bf0c", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x628fa5c8cd0469b704b791baffb3a7acba0086ede79c6852c0b29ddd4ca0bf0c", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x14f2e00014c7336278d10099c859b16ce25935f0c96b76b85b165416763c1c80", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x14f2e00014c7336278d10099c859b16ce25935f0c96b76b85b165416763c1c80", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x14f2e00014c7336278d10099c859b16ce25935f0c96b76b85b165416763c1c80", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8521d2ff3780ff6c54d5b87fe45983d0fc8caad5cc14e52d1477bce88aa7a58c", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x89536d28ed4140093f7418b831b868d037def35509a896948e7e45a9e2d0d7b6", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 1 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } } } - ], - "Homestead" : [ - { - "hash" : "0xbc2a5065f1ea98490a6f357e52cc825dc107a28bd3a2b4079f9ec01efb0d1bd1", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x849467386e020945ba35864662789d426ecd300a5b9be8d28726a1059e2cffca", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x14f2e00014c7336278d10099c859b16ce25935f0c96b76b85b165416763c1c80", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x628fa5c8cd0469b704b791baffb3a7acba0086ede79c6852c0b29ddd4ca0bf0c", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x628fa5c8cd0469b704b791baffb3a7acba0086ede79c6852c0b29ddd4ca0bf0c", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x14f2e00014c7336278d10099c859b16ce25935f0c96b76b85b165416763c1c80", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x14f2e00014c7336278d10099c859b16ce25935f0c96b76b85b165416763c1c80", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x14f2e00014c7336278d10099c859b16ce25935f0c96b76b85b165416763c1c80", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8521d2ff3780ff6c54d5b87fe45983d0fc8caad5cc14e52d1477bce88aa7a58c", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x89536d28ed4140093f7418b831b868d037def35509a896948e7e45a9e2d0d7b6", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 2 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2", + "0x02" : "0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xc707641fdc57ec1a99e3261e2865c59e568d9036ef7398045d9b111de7ccfabc", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdbf20365b5afc1402c45e18a233287c9d6c39bf14b05e8a4c99ec30950ae2f9b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb0ce5de9aa369fccb35e86235eacdfa70334b275be7182c3b4c5ed73efa59cc8", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x540b3cb4e6d2da68541718289f83ca5455212cf1908d9f7da66d839cc30afaee", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x80d730d2af4077a0dfe2ef3202e517747c0cf83d180b22a5c4c14c02811cfe60", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 5, + 6 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x00", + "0x01" : "0x00", + "0x02" : "0x00" + } } - }, - { - "hash" : "0x4b2005438899b130472dab32ccef12b8ff23541108d03368493fafcc2aa07574", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 3 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2", + "0x02" : "0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba" + } } - }, - { - "hash" : "0x4b2005438899b130472dab32ccef12b8ff23541108d03368493fafcc2aa07574", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 4 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x00", + "0x02" : "0x00" + } } - }, - { - "hash" : "0xb0ce5de9aa369fccb35e86235eacdfa70334b275be7182c3b4c5ed73efa59cc8", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 7 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2", + "0x02" : "0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba" + } } - }, - { - "hash" : "0x37d3404202ed5a50740d558adfb076df81bf29db807d26aa6d33866594782180", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 8 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2", + "0x02" : "0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba" + } } - }, - { - "hash" : "0x712f5d3c6b0dcb3d52252c331cf6803f87d9f73b5c69e7930993faaadb70d3d5", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 9 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd2", + "0x02" : "0x16da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x600035600052602035602052604035604052606035606052604060c860406000600060066207a120f260005560c85160015560e851600255", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{(MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96)) [[0]](CALLCODE 500000 6 0 0 64 200 64) [[1]] (MLOAD 200) [[2]] (MLOAD 232) }", + "nonce" : "0", "storage" : { } } @@ -455,14 +257,14 @@ "0x0f25929bcb43d5a57391564615c9e70a992b10eafa4db109709649cf48c50dd216da2f5cb6be7a0aa72c440c53c9bbdfec6c36c7d515536431b3a865468acbba00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002" ], "gasLimit" : [ - "0x0f4240" + "1000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroKnowledge/pointMulAdd.json b/GeneralStateTests/stZeroKnowledge/pointMulAdd.json index be9ab8656..722d30bae 100644 --- a/GeneralStateTests/stZeroKnowledge/pointMulAdd.json +++ b/GeneralStateTests/stZeroKnowledge/pointMulAdd.json @@ -2,401 +2,278 @@ "pointMulAdd" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/pointMulAddFiller.json" }, "env" : { - "currentCoinbase" : "0x68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x3d37ef", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "4012015", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0xdb4c17355650cd977ef0fecd9579eb3d82c957063e0256de225402ef796089af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcccc5db9d06059853cbc0ebb807bfe837f71b021889b818a096eee35099bc84a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x77d29d66072f359113db678e7169f2872212d975606e891ba35df9757d1d19a0", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5225f2c835a3c0c9ec3e435fc010257cf650d4ca439c508b9be24aaf06eb4e2f", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf2b87d61bedfcdb7e60cf436257300029e47bfa2b7f93b2b4522a2b90d7b1d68", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7c234e0c800258681f0afb35b5729d57c2dab7e528e97e677b16cc661cc04ad1", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x30e321271efb7374308a2c87d28016dd7731f0863b902f8569248bf0b7994e72", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x658da3df2e232a7c3fd89afa50f5c4e535c4eac2013fe2a639248b9d2394acdd", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xade3d9feab82416a96b359c81740efaa515aa880bee40c96875ecbd7b5fb63b6", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0xdb4c17355650cd977ef0fecd9579eb3d82c957063e0256de225402ef796089af", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcccc5db9d06059853cbc0ebb807bfe837f71b021889b818a096eee35099bc84a", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x77d29d66072f359113db678e7169f2872212d975606e891ba35df9757d1d19a0", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5225f2c835a3c0c9ec3e435fc010257cf650d4ca439c508b9be24aaf06eb4e2f", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf2b87d61bedfcdb7e60cf436257300029e47bfa2b7f93b2b4522a2b90d7b1d68", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7c234e0c800258681f0afb35b5729d57c2dab7e528e97e677b16cc661cc04ad1", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x30e321271efb7374308a2c87d28016dd7731f0863b902f8569248bf0b7994e72", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x658da3df2e232a7c3fd89afa50f5c4e535c4eac2013fe2a639248b9d2394acdd", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xade3d9feab82416a96b359c81740efaa515aa880bee40c96875ecbd7b5fb63b6", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 0 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286", + "0x0b" : "0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4", + "0x14" : "0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286", + "0x15" : "0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4" + } } } - ], - "Frontier" : [ - { - "hash" : "0x007e6c7ce50c8eab0f476a289f7520a7aead57ea74c18ea64a7d483d6801f56b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa0ce8cf578f0fd9f281797d0cc938632ebfe593d7f7b7d7f39832a3ba1257280", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6039f619e9bdcc70e2f6cca9ec9f5d3a47f63ab0225ed33fdf9760de2cccbe31", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9d161ea3c78ba36dbab78233763ebd00985c0e5ccd187a016beb55c77fac7c64", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x690c97e6a6e184b24c381a95adc2820f51c95e630b13fdab30a2636b7c614033", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcccc5db9d06059853cbc0ebb807bfe837f71b021889b818a096eee35099bc84a", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x60c8a25f609d54afde83733c28d7fba796f4e0443a64fa50b6f02d1a6594fdd6", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x23a4c690f1d98bd974973bf2fc61eb364c9061991a9f4b4145c23206915b7e52", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x54e4c0861adfc77971395b94f1b4b97fc3bb85fca8070f4d40913628aa9e622d", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 1 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49", + "0x0b" : "0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f", + "0x14" : "0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49", + "0x15" : "0x018683193ae021a2f8920fed186cde5d9b1365116865281ccf884c1f28b1df8f" + } } } - ], - "Homestead" : [ - { - "hash" : "0x007e6c7ce50c8eab0f476a289f7520a7aead57ea74c18ea64a7d483d6801f56b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa0ce8cf578f0fd9f281797d0cc938632ebfe593d7f7b7d7f39832a3ba1257280", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6039f619e9bdcc70e2f6cca9ec9f5d3a47f63ab0225ed33fdf9760de2cccbe31", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9d161ea3c78ba36dbab78233763ebd00985c0e5ccd187a016beb55c77fac7c64", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x690c97e6a6e184b24c381a95adc2820f51c95e630b13fdab30a2636b7c614033", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xcccc5db9d06059853cbc0ebb807bfe837f71b021889b818a096eee35099bc84a", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x60c8a25f609d54afde83733c28d7fba796f4e0443a64fa50b6f02d1a6594fdd6", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x23a4c690f1d98bd974973bf2fc61eb364c9061991a9f4b4145c23206915b7e52", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x54e4c0861adfc77971395b94f1b4b97fc3bb85fca8070f4d40913628aa9e622d", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 2 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ], - "Metropolis" : [ - { - "hash" : "0xfdd08d76f9a6ca38f67c7d5c754cdaf3dc3e0cb047b5eade661492b19f9f4f43", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8a3ff5ed30666d021815dcf353abd5d0ab1f3142a31ccc91473047cad64d784b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6acc8adb96e7ebfb3c9d7df0e8b661700e61f2536e949fd98dabac3f69e30938", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xe34486d17d11de75b37b3f4c59a8dbe32c7edd6af038b11cdb67564c45fdbd3e", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 3 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x255e468453d7636cc1563e43f7521755f95e6c56043c7321b4ae04e772945fb0", + "0x0b" : "0x0225c5f1623620fd84bfbab2d861a9d1e570f7727c540f403085998ebaf407c4", + "0x14" : "0x255e468453d7636cc1563e43f7521755f95e6c56043c7321b4ae04e772945fb0", + "0x15" : "0x0225c5f1623620fd84bfbab2d861a9d1e570f7727c540f403085998ebaf407c4" + } } - }, - { - "hash" : "0xad6510f9e1a66f34e0c5778256536b4e35e58afc4dee260a746f81ac720b0eb3", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 4 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49", + "0x0b" : "0x2eddcb59a6517e86bfbe35c9691479fffc6e0580000ca2706c983ff7afcb1db8", + "0x14" : "0x1f4d1d80177b1377743d1901f70d7389be7f7a35a35bfd234a8aaee615b88c49", + "0x15" : "0x2eddcb59a6517e86bfbe35c9691479fffc6e0580000ca2706c983ff7afcb1db8" + } } - }, - { - "hash" : "0x5ecf847501d6aa3b7b8fc0f9295b56f71304c64dbb7e11c72c253fa5eecfea5b", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 5 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x255e468453d7636cc1563e43f7521755f95e6c56043c7321b4ae04e772945fb0", + "0x0b" : "0x0225c5f1623620fd84bfbab2d861a9d1e570f7727c540f403085998ebaf407c4", + "0x14" : "0x255e468453d7636cc1563e43f7521755f95e6c56043c7321b4ae04e772945fb0", + "0x15" : "0x0225c5f1623620fd84bfbab2d861a9d1e570f7727c540f403085998ebaf407c4" + } } - }, - { - "hash" : "0x316f9c3512ac88f19bac4e171f11f1830b1ab7ebbb91fc0a13437c16bdb23d68", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 6 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286", + "0x0b" : "0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4", + "0x14" : "0x1de49a4b0233273bba8146af82042d004f2085ec982397db0d97da17204cc286", + "0x15" : "0x0217327ffc463919bef80cc166d09c6172639d8589799928761bcd9f22c903d4" + } } - }, - { - "hash" : "0xf47f3b37c855b7ab62421dace94aa7a6d4e6d69b0bddd14850b9a051b2a085c1", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 7 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0a" : "0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3", + "0x0b" : "0x15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4", + "0x14" : "0x01", + "0x15" : "0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45" + } } - }, - { - "hash" : "0xe3cd5e302c35284d4fc6b0927fe0d6d20dae65f136654550fdd461ff5b640a00", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 8 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x60003560005260203560205260403560405260603560605260803560805260a03560a05260c03560c052604061012c60806000600060066207a120f2600055604061019060606080600060076207a120f260015561012c51600a5561014c51600b55610190516014556101b051601555601454600a5414600255601554600b5414600355", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{(MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96)) (MSTORE 128 (CALLDATALOAD 128)) (MSTORE 160 (CALLDATALOAD 160)) (MSTORE 192 (CALLDATALOAD 192)) [[0]](CALLCODE 500000 6 0 0 128 300 64) [[1]](CALLCODE 500000 7 0 128 96 400 64) [[10]] (MLOAD 300) [[11]] (MLOAD 332) [[20]] (MLOAD 400) [[21]] (MLOAD 432) [[2]] (EQ (SLOAD 10) (SLOAD 20)) [[3]] (EQ (SLOAD 11) (SLOAD 21))}", + "nonce" : "0", "storage" : { } } @@ -414,14 +291,14 @@ "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000130644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000" ], "gasLimit" : [ - "0x1e8480" + "2000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } diff --git a/GeneralStateTests/stZeroKnowledge/pointMulAdd2.json b/GeneralStateTests/stZeroKnowledge/pointMulAdd2.json index 5d1ae3d05..b88531483 100644 --- a/GeneralStateTests/stZeroKnowledge/pointMulAdd2.json +++ b/GeneralStateTests/stZeroKnowledge/pointMulAdd2.json @@ -2,1561 +2,736 @@ "pointMulAdd2" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.57f8eb2b.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.16292201.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stZeroKnowledge/pointMulAdd2Filler.json" }, "env" : { - "currentCoinbase" : "0x68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", + "currentCoinbase" : "68795C4AA09D6f4Ed3E5DeDDf8c2AD3049A601da", "currentDifficulty" : "0x020000", - "currentGasLimit" : "0x3d37ef", - "currentNumber" : "0x01", - "currentTimestamp" : "0x03e8", - "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + "currentGasLimit" : "4012015", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" }, - "post" : { - "EIP150" : [ - { - "hash" : "0x099995373db9aa82b8617f3dbded893194750c9eb48d80e5ba4e6ce7a476754b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x099995373db9aa82b8617f3dbded893194750c9eb48d80e5ba4e6ce7a476754b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa24302134a57596354674f8a0007d989c96a16ed7211fbad6df522fb49c9d878", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x90e6577579a7229c9192b1cc6de63ac61a40a4ba4c6be4e4de08586300ceb144", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34ae9e7f0bffa1dfbebec453cc449b6dc755d98fb2a8f7c6c08cf63918a070e9", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x099995373db9aa82b8617f3dbded893194750c9eb48d80e5ba4e6ce7a476754b", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34ae9e7f0bffa1dfbebec453cc449b6dc755d98fb2a8f7c6c08cf63918a070e9", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34ae9e7f0bffa1dfbebec453cc449b6dc755d98fb2a8f7c6c08cf63918a070e9", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34ae9e7f0bffa1dfbebec453cc449b6dc755d98fb2a8f7c6c08cf63918a070e9", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34ae9e7f0bffa1dfbebec453cc449b6dc755d98fb2a8f7c6c08cf63918a070e9", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba9088ad9a36e436dafb25deb8e3fb5577e3db859aee2ceaaf60b7cc980cc232", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb5c8cc1f4b0dc0b762c0b43e8413645f35fae78309e2d22ca2f89581323be1ba", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4075f62b15852ad832d028c0105d71cff60bd6cbbaf65ab6c72fa61db62169e", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x54e4c0861adfc77971395b94f1b4b97fc3bb85fca8070f4d40913628aa9e622d", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x19ab871d98105842629ce19eb9885e2f9493c5e2d1d14e7651086eb78d849883", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7780c564a3b9218a331811d9cdf102b11563c95dace0163c07775d870b29f430", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x08bd91e5dbc82cadb21b80108ddf9e1038039ebc3e64aded168f5c482727d136", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa45b863d60dbd8f260f3cc05e2c9266f50e489cc75b0c3f5d61b82bdf1ca392d", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5225f2c835a3c0c9ec3e435fc010257cf650d4ca439c508b9be24aaf06eb4e2f", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfdad31fc9872516fec2bfd31aa52a934f99738a7cda9c651a62a8b8d43be8615", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x77d29d66072f359113db678e7169f2872212d975606e891ba35df9757d1d19a0", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf880202d5a6a3409da9bdd153531813171ed131ad90defd06c5177f26bba7263", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdb4c17355650cd977ef0fecd9579eb3d82c957063e0256de225402ef796089af", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa45b863d60dbd8f260f3cc05e2c9266f50e489cc75b0c3f5d61b82bdf1ca392d", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdb4c17355650cd977ef0fecd9579eb3d82c957063e0256de225402ef796089af", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7780c564a3b9218a331811d9cdf102b11563c95dace0163c07775d870b29f430", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xade3d9feab82416a96b359c81740efaa515aa880bee40c96875ecbd7b5fb63b6", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x19ab871d98105842629ce19eb9885e2f9493c5e2d1d14e7651086eb78d849883", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba9088ad9a36e436dafb25deb8e3fb5577e3db859aee2ceaaf60b7cc980cc232", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x23a4c690f1d98bd974973bf2fc61eb364c9061991a9f4b4145c23206915b7e52", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4075f62b15852ad832d028c0105d71cff60bd6cbbaf65ab6c72fa61db62169e", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdb4c17355650cd977ef0fecd9579eb3d82c957063e0256de225402ef796089af", - "indexes" : { - "data" : 31, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfb5132406918563cb0fe74db59e9ce0b630a69638cd94c225602dee469eceba8", - "indexes" : { - "data" : 32, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa0ce8cf578f0fd9f281797d0cc938632ebfe593d7f7b7d7f39832a3ba1257280", - "indexes" : { - "data" : 33, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4075f62b15852ad832d028c0105d71cff60bd6cbbaf65ab6c72fa61db62169e", - "indexes" : { - "data" : 34, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdb4c17355650cd977ef0fecd9579eb3d82c957063e0256de225402ef796089af", - "indexes" : { - "data" : 35, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfb5132406918563cb0fe74db59e9ce0b630a69638cd94c225602dee469eceba8", - "indexes" : { - "data" : 36, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa0ce8cf578f0fd9f281797d0cc938632ebfe593d7f7b7d7f39832a3ba1257280", - "indexes" : { - "data" : 37, - "gas" : 0, - "value" : 0 + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Frontier", + "Homestead", + "EIP150", + "EIP158" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ], - "EIP158" : [ - { - "hash" : "0x099995373db9aa82b8617f3dbded893194750c9eb48d80e5ba4e6ce7a476754b", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x099995373db9aa82b8617f3dbded893194750c9eb48d80e5ba4e6ce7a476754b", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa24302134a57596354674f8a0007d989c96a16ed7211fbad6df522fb49c9d878", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x90e6577579a7229c9192b1cc6de63ac61a40a4ba4c6be4e4de08586300ceb144", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34ae9e7f0bffa1dfbebec453cc449b6dc755d98fb2a8f7c6c08cf63918a070e9", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x099995373db9aa82b8617f3dbded893194750c9eb48d80e5ba4e6ce7a476754b", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34ae9e7f0bffa1dfbebec453cc449b6dc755d98fb2a8f7c6c08cf63918a070e9", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34ae9e7f0bffa1dfbebec453cc449b6dc755d98fb2a8f7c6c08cf63918a070e9", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34ae9e7f0bffa1dfbebec453cc449b6dc755d98fb2a8f7c6c08cf63918a070e9", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x34ae9e7f0bffa1dfbebec453cc449b6dc755d98fb2a8f7c6c08cf63918a070e9", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba9088ad9a36e436dafb25deb8e3fb5577e3db859aee2ceaaf60b7cc980cc232", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb5c8cc1f4b0dc0b762c0b43e8413645f35fae78309e2d22ca2f89581323be1ba", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4075f62b15852ad832d028c0105d71cff60bd6cbbaf65ab6c72fa61db62169e", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x54e4c0861adfc77971395b94f1b4b97fc3bb85fca8070f4d40913628aa9e622d", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x19ab871d98105842629ce19eb9885e2f9493c5e2d1d14e7651086eb78d849883", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7780c564a3b9218a331811d9cdf102b11563c95dace0163c07775d870b29f430", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x08bd91e5dbc82cadb21b80108ddf9e1038039ebc3e64aded168f5c482727d136", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa45b863d60dbd8f260f3cc05e2c9266f50e489cc75b0c3f5d61b82bdf1ca392d", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5225f2c835a3c0c9ec3e435fc010257cf650d4ca439c508b9be24aaf06eb4e2f", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfdad31fc9872516fec2bfd31aa52a934f99738a7cda9c651a62a8b8d43be8615", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x77d29d66072f359113db678e7169f2872212d975606e891ba35df9757d1d19a0", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xf880202d5a6a3409da9bdd153531813171ed131ad90defd06c5177f26bba7263", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdb4c17355650cd977ef0fecd9579eb3d82c957063e0256de225402ef796089af", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa45b863d60dbd8f260f3cc05e2c9266f50e489cc75b0c3f5d61b82bdf1ca392d", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdb4c17355650cd977ef0fecd9579eb3d82c957063e0256de225402ef796089af", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x7780c564a3b9218a331811d9cdf102b11563c95dace0163c07775d870b29f430", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xade3d9feab82416a96b359c81740efaa515aa880bee40c96875ecbd7b5fb63b6", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x19ab871d98105842629ce19eb9885e2f9493c5e2d1d14e7651086eb78d849883", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba9088ad9a36e436dafb25deb8e3fb5577e3db859aee2ceaaf60b7cc980cc232", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x23a4c690f1d98bd974973bf2fc61eb364c9061991a9f4b4145c23206915b7e52", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4075f62b15852ad832d028c0105d71cff60bd6cbbaf65ab6c72fa61db62169e", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdb4c17355650cd977ef0fecd9579eb3d82c957063e0256de225402ef796089af", - "indexes" : { - "data" : 31, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfb5132406918563cb0fe74db59e9ce0b630a69638cd94c225602dee469eceba8", - "indexes" : { - "data" : 32, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa0ce8cf578f0fd9f281797d0cc938632ebfe593d7f7b7d7f39832a3ba1257280", - "indexes" : { - "data" : 33, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4075f62b15852ad832d028c0105d71cff60bd6cbbaf65ab6c72fa61db62169e", - "indexes" : { - "data" : 34, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xdb4c17355650cd977ef0fecd9579eb3d82c957063e0256de225402ef796089af", - "indexes" : { - "data" : 35, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfb5132406918563cb0fe74db59e9ce0b630a69638cd94c225602dee469eceba8", - "indexes" : { - "data" : 36, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa0ce8cf578f0fd9f281797d0cc938632ebfe593d7f7b7d7f39832a3ba1257280", - "indexes" : { - "data" : 37, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 0 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ], - "Frontier" : [ - { - "hash" : "0xbf100fc0e0f8fd395c4363e98e18a8b2b203c180eef787f36e0e5e05e3173785", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbf100fc0e0f8fd395c4363e98e18a8b2b203c180eef787f36e0e5e05e3173785", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa3c6feded8e2cb56c3f74484a4edb397893a94ff42bc825dc62e4bec26bc3c41", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x90c3f360efc56af9809bf54adc3ae977842dd7fb85b72ce789a1b5a4c596ea90", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfa0c64ef35e7b50e17986f3d198e68caf261467161547635e03bacbd5d923b06", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbf100fc0e0f8fd395c4363e98e18a8b2b203c180eef787f36e0e5e05e3173785", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfa0c64ef35e7b50e17986f3d198e68caf261467161547635e03bacbd5d923b06", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfa0c64ef35e7b50e17986f3d198e68caf261467161547635e03bacbd5d923b06", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfa0c64ef35e7b50e17986f3d198e68caf261467161547635e03bacbd5d923b06", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfa0c64ef35e7b50e17986f3d198e68caf261467161547635e03bacbd5d923b06", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x50ca843cdbb87278a629a4d7f5a13fe081de36db9f035b2f50f08e9bd318a3ca", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x98bd5cd1fc925c4dbbd4df5170fbf5631bb8a3fdf8fb9f394e0ff39bfaec7884", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1d3e79c423951f633fd7ddef4cdf9ae9b947cbc41c9bd6f80f6857b5151272b0", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1139dbb444198001b813713cc3e35417c33df8125dc9bc6882a967678de32b85", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8630c102f472815ef7bb8c1635d9242bffcccb3b4bd3ec9d3b424e2fd8586268", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11d80b5480bdea35f6444e8a3a7d6122c2037b61e1a3a53c5a1c4bef824c7856", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xade3d9feab82416a96b359c81740efaa515aa880bee40c96875ecbd7b5fb63b6", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1537743d83195813739113dd61bafaeec36e0671f34259256f9ece177d4aaefe", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9d161ea3c78ba36dbab78233763ebd00985c0e5ccd187a016beb55c77fac7c64", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfb5132406918563cb0fe74db59e9ce0b630a69638cd94c225602dee469eceba8", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6039f619e9bdcc70e2f6cca9ec9f5d3a47f63ab0225ed33fdf9760de2cccbe31", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba9088ad9a36e436dafb25deb8e3fb5577e3db859aee2ceaaf60b7cc980cc232", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x007e6c7ce50c8eab0f476a289f7520a7aead57ea74c18ea64a7d483d6801f56b", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1537743d83195813739113dd61bafaeec36e0671f34259256f9ece177d4aaefe", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x007e6c7ce50c8eab0f476a289f7520a7aead57ea74c18ea64a7d483d6801f56b", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11d80b5480bdea35f6444e8a3a7d6122c2037b61e1a3a53c5a1c4bef824c7856", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x54e4c0861adfc77971395b94f1b4b97fc3bb85fca8070f4d40913628aa9e622d", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8630c102f472815ef7bb8c1635d9242bffcccb3b4bd3ec9d3b424e2fd8586268", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x50ca843cdbb87278a629a4d7f5a13fe081de36db9f035b2f50f08e9bd318a3ca", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa50dfb0c797c487b66f13c8a1e2c2594f8ed4814c9e0eae9245664fd56705282", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1d3e79c423951f633fd7ddef4cdf9ae9b947cbc41c9bd6f80f6857b5151272b0", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x007e6c7ce50c8eab0f476a289f7520a7aead57ea74c18ea64a7d483d6801f56b", - "indexes" : { - "data" : 31, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4075f62b15852ad832d028c0105d71cff60bd6cbbaf65ab6c72fa61db62169e", - "indexes" : { - "data" : 32, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2bf638a7a3e259091b2bdbae3f16b5ed470ccd619a4fd88134e9150f71bb843b", - "indexes" : { - "data" : 33, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1d3e79c423951f633fd7ddef4cdf9ae9b947cbc41c9bd6f80f6857b5151272b0", - "indexes" : { - "data" : 34, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x007e6c7ce50c8eab0f476a289f7520a7aead57ea74c18ea64a7d483d6801f56b", - "indexes" : { - "data" : 35, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4075f62b15852ad832d028c0105d71cff60bd6cbbaf65ab6c72fa61db62169e", - "indexes" : { - "data" : 36, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2bf638a7a3e259091b2bdbae3f16b5ed470ccd619a4fd88134e9150f71bb843b", - "indexes" : { - "data" : 37, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 12, + 26 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } } } - ], - "Homestead" : [ - { - "hash" : "0xbf100fc0e0f8fd395c4363e98e18a8b2b203c180eef787f36e0e5e05e3173785", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbf100fc0e0f8fd395c4363e98e18a8b2b203c180eef787f36e0e5e05e3173785", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa3c6feded8e2cb56c3f74484a4edb397893a94ff42bc825dc62e4bec26bc3c41", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x90c3f360efc56af9809bf54adc3ae977842dd7fb85b72ce789a1b5a4c596ea90", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfa0c64ef35e7b50e17986f3d198e68caf261467161547635e03bacbd5d923b06", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xbf100fc0e0f8fd395c4363e98e18a8b2b203c180eef787f36e0e5e05e3173785", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfa0c64ef35e7b50e17986f3d198e68caf261467161547635e03bacbd5d923b06", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfa0c64ef35e7b50e17986f3d198e68caf261467161547635e03bacbd5d923b06", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfa0c64ef35e7b50e17986f3d198e68caf261467161547635e03bacbd5d923b06", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfa0c64ef35e7b50e17986f3d198e68caf261467161547635e03bacbd5d923b06", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x50ca843cdbb87278a629a4d7f5a13fe081de36db9f035b2f50f08e9bd318a3ca", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x98bd5cd1fc925c4dbbd4df5170fbf5631bb8a3fdf8fb9f394e0ff39bfaec7884", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1d3e79c423951f633fd7ddef4cdf9ae9b947cbc41c9bd6f80f6857b5151272b0", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1139dbb444198001b813713cc3e35417c33df8125dc9bc6882a967678de32b85", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8630c102f472815ef7bb8c1635d9242bffcccb3b4bd3ec9d3b424e2fd8586268", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11d80b5480bdea35f6444e8a3a7d6122c2037b61e1a3a53c5a1c4bef824c7856", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xade3d9feab82416a96b359c81740efaa515aa880bee40c96875ecbd7b5fb63b6", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1537743d83195813739113dd61bafaeec36e0671f34259256f9ece177d4aaefe", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x9d161ea3c78ba36dbab78233763ebd00985c0e5ccd187a016beb55c77fac7c64", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfb5132406918563cb0fe74db59e9ce0b630a69638cd94c225602dee469eceba8", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x6039f619e9bdcc70e2f6cca9ec9f5d3a47f63ab0225ed33fdf9760de2cccbe31", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xba9088ad9a36e436dafb25deb8e3fb5577e3db859aee2ceaaf60b7cc980cc232", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x007e6c7ce50c8eab0f476a289f7520a7aead57ea74c18ea64a7d483d6801f56b", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1537743d83195813739113dd61bafaeec36e0671f34259256f9ece177d4aaefe", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x007e6c7ce50c8eab0f476a289f7520a7aead57ea74c18ea64a7d483d6801f56b", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x11d80b5480bdea35f6444e8a3a7d6122c2037b61e1a3a53c5a1c4bef824c7856", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x54e4c0861adfc77971395b94f1b4b97fc3bb85fca8070f4d40913628aa9e622d", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x8630c102f472815ef7bb8c1635d9242bffcccb3b4bd3ec9d3b424e2fd8586268", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x50ca843cdbb87278a629a4d7f5a13fe081de36db9f035b2f50f08e9bd318a3ca", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xa50dfb0c797c487b66f13c8a1e2c2594f8ed4814c9e0eae9245664fd56705282", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1d3e79c423951f633fd7ddef4cdf9ae9b947cbc41c9bd6f80f6857b5151272b0", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x007e6c7ce50c8eab0f476a289f7520a7aead57ea74c18ea64a7d483d6801f56b", - "indexes" : { - "data" : 31, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4075f62b15852ad832d028c0105d71cff60bd6cbbaf65ab6c72fa61db62169e", - "indexes" : { - "data" : 32, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2bf638a7a3e259091b2bdbae3f16b5ed470ccd619a4fd88134e9150f71bb843b", - "indexes" : { - "data" : 33, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x1d3e79c423951f633fd7ddef4cdf9ae9b947cbc41c9bd6f80f6857b5151272b0", - "indexes" : { - "data" : 34, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x007e6c7ce50c8eab0f476a289f7520a7aead57ea74c18ea64a7d483d6801f56b", - "indexes" : { - "data" : 35, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xc4075f62b15852ad832d028c0105d71cff60bd6cbbaf65ab6c72fa61db62169e", - "indexes" : { - "data" : 36, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2bf638a7a3e259091b2bdbae3f16b5ed470ccd619a4fd88134e9150f71bb843b", - "indexes" : { - "data" : 37, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 10 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3", + "0x0b" : "0x1a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83", + "0x14" : "0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3", + "0x15" : "0x1a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83" + } } } - ], - "Metropolis" : [ - { - "hash" : "0x279a5f00a044f1474bbe735b5e7890e4b37825633b1ca77a8ba58851aa2e50b3", - "indexes" : { - "data" : 0, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x279a5f00a044f1474bbe735b5e7890e4b37825633b1ca77a8ba58851aa2e50b3", - "indexes" : { - "data" : 1, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xae13c7eed2e5ae15bddb61a988c7ae2d5610b588797ec78e3116fb9cd78da505", - "indexes" : { - "data" : 2, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x06d86ed36416ba3059f4af54adde0b741b41bac3ed392d33a86a801ea66a0ff0", - "indexes" : { - "data" : 3, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb41d64dda916323a30bd8fab8ff20bf518fb7570061a73d87ee7a9134a40ed39", - "indexes" : { - "data" : 4, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x279a5f00a044f1474bbe735b5e7890e4b37825633b1ca77a8ba58851aa2e50b3", - "indexes" : { - "data" : 5, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb41d64dda916323a30bd8fab8ff20bf518fb7570061a73d87ee7a9134a40ed39", - "indexes" : { - "data" : 6, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb41d64dda916323a30bd8fab8ff20bf518fb7570061a73d87ee7a9134a40ed39", - "indexes" : { - "data" : 7, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb41d64dda916323a30bd8fab8ff20bf518fb7570061a73d87ee7a9134a40ed39", - "indexes" : { - "data" : 8, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xb41d64dda916323a30bd8fab8ff20bf518fb7570061a73d87ee7a9134a40ed39", - "indexes" : { - "data" : 9, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2152859b0e2002c97fd87e79364173d78a9baabe22f50f77ceec1c75b1f1b6e4", - "indexes" : { - "data" : 10, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x2eb9b1b682a68234c704c1fadd34306fd834f696cd440059d63d786a29a7b827", - "indexes" : { - "data" : 11, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x3b0ef39dbfbcdf536150482a715a8a27fed7b71d168de56e0c78b72935c86de1", - "indexes" : { - "data" : 12, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0x5d9ddea9b5352618cdca6c6cd9b59ad6144d16b4327f5e9d90d99dfa61fd1b7e", - "indexes" : { - "data" : 13, - "gas" : 0, - "value" : 0 - } - }, - { - "hash" : "0xfd6eff3a1167ada508f4aec721a54a41bb2e58d70b922b82231e59829df47e57", - "indexes" : { - "data" : 14, - "gas" : 0, - "value" : 0 + }, + { + "indexes" : { + "data" : [ + 11 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x0769bf9ac56bea3ff40232bcb1b6bd159315d84715b8e679f2d355961915abf0", + "0x0b" : "0x05acb4b400e90c0063006a39f478f3e865e306dd5cd56f356e2e8cd8fe7edae6", + "0x14" : "0x0769bf9ac56bea3ff40232bcb1b6bd159315d84715b8e679f2d355961915abf0", + "0x15" : "0x05acb4b400e90c0063006a39f478f3e865e306dd5cd56f356e2e8cd8fe7edae6" + } } - }, - { - "hash" : "0x4d77efacf36544fe4e36b673674b41ec0c3c6d3f54a78a2e36abf06c8ec6eda7", - "indexes" : { - "data" : 15, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 13, + 15 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3", + "0x0b" : "0x15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4", + "0x14" : "0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3", + "0x15" : "0x15ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4" + } } - }, - { - "hash" : "0x528b6ac3bd126173820f53592f5a462c0b6b78d85a9e868fad01826eb8dbc669", - "indexes" : { - "data" : 16, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 14 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x01", + "0x0b" : "0x02", + "0x14" : "0x01", + "0x15" : "0x02" + } } - }, - { - "hash" : "0x6b4d9fc560e6930d6100d7be7f48b8562b43b188aed05bba96e8cd0109181242", - "indexes" : { - "data" : 17, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 16 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x01", + "0x0b" : "0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45", + "0x14" : "0x01", + "0x15" : "0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45" + } } - }, - { - "hash" : "0xc1195ca9ba4051a2fa9b1f3a50d29a778692ea0ddd31818cabd103a955d96795", - "indexes" : { - "data" : 18, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 17 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0a" : "0x113aeccecdaf57cd8c0aace591774949dcdaf892555fa86726fa7e679b89c067", + "0x0b" : "0x0bffba84127a19abde488a8251a9a3fce33b34a76f96aafb11ab4a6cef3e9979" + } } - }, - { - "hash" : "0xd8257f6478704ede044e9e2f2159498c512efacccfaf68b5a70cc4055318cbc4", - "indexes" : { - "data" : 19, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 18 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x1fd3b816d9951dcb9aa9797d25e51a865987703ae83cd69c4658679f0350ae2b", + "0x0b" : "0x29ce3d80a74ddc13784beb25ca9fbfd048a3265a32c6f38b92060c5093a0e7a7", + "0x14" : "0x1fd3b816d9951dcb9aa9797d25e51a865987703ae83cd69c4658679f0350ae2b", + "0x15" : "0x29ce3d80a74ddc13784beb25ca9fbfd048a3265a32c6f38b92060c5093a0e7a7" + } } - }, - { - "hash" : "0xd4766f84384b51c13925f4715fac073c3926509fea4308467c6b57c231796ed5", - "indexes" : { - "data" : 20, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 19 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628", + "0x0b" : "0x069ef5e376c0a1ea82f9dfc2e0001a7f385d655eef9a6f976c7a5d2c493ea3ad", + "0x14" : "0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628", + "0x15" : "0x069ef5e376c0a1ea82f9dfc2e0001a7f385d655eef9a6f976c7a5d2c493ea3ad" + } } - }, - { - "hash" : "0xd96acef16a40aadaf900b29ee5268247911e48597a3aa031822c029356aee44b", - "indexes" : { - "data" : 21, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 20 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0a" : "0x1fd3b816d9951dcb9aa9797d25e51a865987703ae83cd69c4658679f0350ae2b", + "0x0b" : "0x29ce3d80a74ddc13784beb25ca9fbfd048a3265a32c6f38b92060c5093a0e7a7", + "0x14" : "0x2c15ed1902e189486ab6b625aa982510aef6246b21a1e1bcea382da4d735e8ba", + "0x15" : "0x02103e58cbd2fa8081763442ab46c26a9b8051e9b049c3948c8d7d0e139c5e3f" + } } - }, - { - "hash" : "0x2b73b4e262b2400f4b4f34c35d2781d1f135feb57f8bb2b26de06ea4af2995c3", - "indexes" : { - "data" : 22, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 21 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0a" : "0x1d78954c630b3895fbbfafac1294f2c0158879fdc70bfe18222890e7bfb66fba", + "0x0b" : "0x101c3346e98b136a7078aebd427dced763722d77e3d7985342e0bffcc6ea4d56" + } } - }, - { - "hash" : "0x416dd8c1beccf69d0c1740b8b7658f072f8ed31b2c47f3bb4a84a5fe9497b52c", - "indexes" : { - "data" : 23, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 22 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x2fa739d4cde056d8fd75427345cbb34159856e06a4ffad64159c4773f23fbf4b", + "0x0b" : "0x1eed5d5325c31fc89dd541a13d7f63b981fae8d4bf78a6b08a38a601fcfea97b", + "0x14" : "0x2fa739d4cde056d8fd75427345cbb34159856e06a4ffad64159c4773f23fbf4b", + "0x15" : "0x1eed5d5325c31fc89dd541a13d7f63b981fae8d4bf78a6b08a38a601fcfea97b" + } } - }, - { - "hash" : "0xe472b3121dacde83988649f31106c13ae56eef004f2777cf9483083e20e8e4e4", - "indexes" : { - "data" : 24, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 23 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d352", + "0x0b" : "0x1d701ec9e3fca50e84777f0f68caff5bff48cf6a6bd4428462ae9366cf0582b0", + "0x14" : "0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d352", + "0x15" : "0x1d701ec9e3fca50e84777f0f68caff5bff48cf6a6bd4428462ae9366cf0582b0" + } } - }, - { - "hash" : "0x53d61830caafd21e7c960909ba92fc1ea83a1623695d4ccfcc075b6d5a0e78be", - "indexes" : { - "data" : 25, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 24 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0a" : "0x2fa739d4cde056d8fd75427345cbb34159856e06a4ffad64159c4773f23fbf4b", + "0x0b" : "0x1eed5d5325c31fc89dd541a13d7f63b981fae8d4bf78a6b08a38a601fcfea97b", + "0x14" : "0x08e2142845db159bd105879a109fe7a6f254ed3ddae0e9cd8a2aeae05e5f647b", + "0x15" : "0x221108ee615499d2e0a1113ca1a858a34e055f9da2d30e6e6ab392b049944a92" + } } - }, - { - "hash" : "0xe3cd5e302c35284d4fc6b0927fe0d6d20dae65f136654550fdd461ff5b640a00", - "indexes" : { - "data" : 26, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 25 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x0769bf9ac56bea3ff40232bcb1b6bd159315d84715b8e679f2d355961915abf0", + "0x0b" : "0x2ab799bee0489429554fdb7c8d086475319e63b40b9c5b57cdf1ff3dd9fe2261", + "0x14" : "0x0769bf9ac56bea3ff40232bcb1b6bd159315d84715b8e679f2d355961915abf0", + "0x15" : "0x2ab799bee0489429554fdb7c8d086475319e63b40b9c5b57cdf1ff3dd9fe2261" + } } - }, - { - "hash" : "0x11812760659d8f51f1b68d5bbcb54a7e2e2311bcc2a5694985a53b14463e87c3", - "indexes" : { - "data" : 27, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 27 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x01", + "0x0b" : "0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45", + "0x14" : "0x01", + "0x15" : "0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45" + } } - }, - { - "hash" : "0x2152859b0e2002c97fd87e79364173d78a9baabe22f50f77ceec1c75b1f1b6e4", - "indexes" : { - "data" : 28, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 28 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3", + "0x0b" : "0x1a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83", + "0x14" : "0x030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd3", + "0x15" : "0x1a76dae6d3272396d0cbe61fced2bc532edac647851e3ac53ce1cc9c7e645a83" + } } - }, - { - "hash" : "0xc0e84c607dc1eb171f26cf6c397e89154df8ff9a927545aaaf55126ae0c87b3a", - "indexes" : { - "data" : 29, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 29 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x01", + "0x0b" : "0x02", + "0x14" : "0x01", + "0x15" : "0x02" + } } - }, - { - "hash" : "0xe2d2285edda753a52176f3d47223fc39faf18b6824e260096f64845fcf18eedb", - "indexes" : { - "data" : 30, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 30 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0a" : "0x113aeccecdaf57cd8c0aace591774949dcdaf892555fa86726fa7e679b89c067", + "0x0b" : "0x246493eeceb7867dda07bb342fd7b460b44635e9f8db1f922a7541a9e93e63ce" + } } - }, - { - "hash" : "0x30639c7df38853bd10f9bcacac48a99dd8749b59ea6a71f13e260413dfe263b9", - "indexes" : { - "data" : 31, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 31 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x1fd3b816d9951dcb9aa9797d25e51a865987703ae83cd69c4658679f0350ae2b", + "0x0b" : "0x069610f239e3c41640045a90b6e1988d4ede443735aad701aa1a7fc644dc15a0", + "0x14" : "0x1fd3b816d9951dcb9aa9797d25e51a865987703ae83cd69c4658679f0350ae2b", + "0x15" : "0x069610f239e3c41640045a90b6e1988d4ede443735aad701aa1a7fc644dc15a0" + } } - }, - { - "hash" : "0x7d6e117cd58f4068a7e1703a1f74cb6b80a5fdc742d2abe55329993c7956447a", - "indexes" : { - "data" : 32, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 32 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628", + "0x0b" : "0x29c5588f6a70fe3f355665f3a1813dde5f24053278d75af5cfa62eea8f3e599a", + "0x14" : "0x0ccbec17235f5b9cc5e42f3df6364a76ecdd0101ddda8fc5dc0ba0b59c0e5628", + "0x15" : "0x29c5588f6a70fe3f355665f3a1813dde5f24053278d75af5cfa62eea8f3e599a" + } } - }, - { - "hash" : "0x344d0a015172d6cf16ff9c71b617903b88edb4a15e1dee0d115cf48fc669fbeb", - "indexes" : { - "data" : 33, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 33 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0a" : "0x1fd3b816d9951dcb9aa9797d25e51a865987703ae83cd69c4658679f0350ae2b", + "0x0b" : "0x069610f239e3c41640045a90b6e1988d4ede443735aad701aa1a7fc644dc15a0", + "0x14" : "0x2c15ed1902e189486ab6b625aa982510aef6246b21a1e1bcea382da4d735e8ba", + "0x15" : "0x2e54101a155ea5a936da1173d63a95f2fc0118a7b82806f8af930f08c4e09f08" + } } - }, - { - "hash" : "0x7b299dbc968c673dfac2ccdbc778d5bebd8125e09a448db1849023096bf2b7be", - "indexes" : { - "data" : 34, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 34 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0a" : "0x1d78954c630b3895fbbfafac1294f2c0158879fdc70bfe18222890e7bfb66fba", + "0x0b" : "0x20481b2bf7a68cbf47d796f93f038986340f3d19849a3239f93fcc1a1192aff1" + } } - }, - { - "hash" : "0xa986a14ec804cc35f23dab24804e0c2c92013376624d84b8b7cdf25435c6c8e5", - "indexes" : { - "data" : 35, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 35 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x2fa739d4cde056d8fd75427345cbb34159856e06a4ffad64159c4773f23fbf4b", + "0x0b" : "0x1176f11fbb6e80611a7b04154401f4a4158681bca8f923dcb1e7e614db7e53cc", + "0x14" : "0x2fa739d4cde056d8fd75427345cbb34159856e06a4ffad64159c4773f23fbf4b", + "0x15" : "0x1176f11fbb6e80611a7b04154401f4a4158681bca8f923dcb1e7e614db7e53cc" + } } - }, - { - "hash" : "0x4eb617792b1e75ae718a6a9d9cc61b902634b22db61c35fcf3888d53c6cf3cd6", - "indexes" : { - "data" : 36, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 36 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01", + "0x0a" : "0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d352", + "0x0b" : "0x12f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a97", + "0x14" : "0x2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d352", + "0x15" : "0x12f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a97" + } } - }, - { - "hash" : "0x1b1b23dd934c118297b04c2272938b73768f2ceb6e9d8736afb988221104d505", - "indexes" : { - "data" : 37, - "gas" : 0, - "value" : 0 + } + }, + { + "indexes" : { + "data" : [ + 37 + ], + "gas" : -1, + "value" : -1 + }, + "network" : [ + "Metropolis" + ], + "result" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x0a" : "0x2fa739d4cde056d8fd75427345cbb34159856e06a4ffad64159c4773f23fbf4b", + "0x0b" : "0x1176f11fbb6e80611a7b04154401f4a4158681bca8f923dcb1e7e614db7e53cc", + "0x14" : "0x08e2142845db159bd105879a109fe7a6f254ed3ddae0e9cd8a2aeae05e5f647b", + "0x15" : "0x0e5345847fdd0656d7af3479dfd8ffba497c0af3c59ebc1ed16cf9668ee8b2b5" + } } } - ] - }, + } + ], "pre" : { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x0de0b6b3a7640000", + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000000000", "code" : "", - "nonce" : "0x01", + "nonce" : "1", "storage" : { } }, - "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { - "balance" : "0x00", - "code" : "0x60003560005260203560205260403560405260603560605260803560805260a03560a05260c03560c052604061012c60806000600060066207a120f2600055604061019060606080600060076207a120f260015561012c51600a5561014c51600b55610190516014556101b051601555601454600a5414600255601554600b5414600355", - "nonce" : "0x00", + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "", + "code" : "{(MSTORE 0 (CALLDATALOAD 0)) (MSTORE 32 (CALLDATALOAD 32)) (MSTORE 64 (CALLDATALOAD 64)) (MSTORE 96 (CALLDATALOAD 96)) (MSTORE 128 (CALLDATALOAD 128)) (MSTORE 160 (CALLDATALOAD 160)) (MSTORE 192 (CALLDATALOAD 192)) [[0]](CALLCODE 500000 6 0 0 128 300 64) [[1]](CALLCODE 500000 7 0 128 96 400 64) [[10]] (MLOAD 300) [[11]] (MLOAD 332) [[20]] (MLOAD 400) [[21]] (MLOAD 432) [[2]] (EQ (SLOAD 10) (SLOAD 20)) [[3]] (EQ (SLOAD 11) (SLOAD 21))}", + "nonce" : "0", "storage" : { } } @@ -1603,14 +778,14 @@ "2f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d35212f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a972f588cffe99db877a4434b598ab28f81e0522910ea52b45f0adaa772b2d5d35212f42fa8fd34fb1b33d8c6a718b6590198389b26fc9d8808d971f8b009777a9700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe" ], "gasLimit" : [ - "0x1e8480" + "2000000" ], - "gasPrice" : "0x01", - "nonce" : "0x01", - "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xb94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "gasPrice" : "1", + "nonce" : "1", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : [ - "0x00" + "0" ] } } -- cgit v1.2.3